3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon Q Developer CLI v1.10.1で、会話の履歴管理を試す

Posted at

はじめに

Amazon Q Developer のコマンドラインエージェント、Amazon Q Developer CLI(以下、Q CLI)v1.10.0が2025年5月16日にリリースされました。(翌日には、いくつかの不具合が修正されたv1.10.1がリリースされました。)
このアップデートにより、Q CLIの会話の履歴管理ができるようになりました。いままでのQ CLIでは、会話の履歴管理ができませんでしたが、v1.10.0では、会話履歴に関する以下の機能が追加されました。

  • 同一ディレクトリでの直前の会話を再開する resume オプション
  • q chatの会話をJSONファイルに保存する /saveコマンド
  • /saveコマンドで保存したJSONファイルを読み込む /loadコマンド

本記事ではこれらの機能を試してみます。
Q CLIのインストールは、参考情報にあげているリンク先を参考にしてください。

環境

  • Q CLI v1.10.0以上

参考情報

Q CLI起動時のアスキーアート

q chatコマンドでQ CLIを起動すると、以下のようなアスキーアートが表示されます。"Did you know?"欄ではさっそく直前の会話を再開する resume オプションのことを教えてくれました。

検証した環境ではAWS Documentation MCP Serverを設定しているので、起動時にMCPサーバーが読み込まれたことが示されています。

Q CLI起動時のアスキーアート

resume オプション

q chatコマンドのヘルプオプションを実行すると、resume オプションの説明が表示されます。説明のため、ヘルプの出力を一部省略しています。q chat -rもしくはq chat --resumeコマンドで、同一ディレクトリでの直前の会話を再開すると書かれています。

 ❯ q chat --help
AI assistant in your terminal

Usage: qchat chat [OPTIONS] [INPUT]

Arguments:
  [INPUT]  The first question to ask

Options:
(一部省略)
  -r, --resume                    Resumes the previous conversation from this directory
(一部省略)

実際に試してみます。/tmpディレクトリに移動して、q chatコマンドを実行します。

$ pwd
/tmp
$ q chat
> Amazon Bedrock Guardrailsがサポートしている言語は何? 言語とは、例えば英語や日本語といったものです。

すると、Q CLIはAWS Documentation MCP Serverを使って以下のような回答を出力しました。

Amazon Bedrock Guardrailsがサポートしている言語について調べます。AWS公式ドキュメントを検索して確認しましょう。

(途中省略)

Amazon Bedrock Guardrailsがサポートしている言語について調査した結果をお伝えします。

Amazon Bedrock Guardrailsは現在、以下の3つの自然言語をサポートしています:

• 英語 (English)
• フランス語 (French)
• スペイン語 (Spanish)

AWS公式ドキュメントによると、これら以外の言語(日本語や中国語など)では、Guardrailsの機能は効果的に動作
しません。ドキュメントには「Guardrails will be ineffective with anyother language」(他の言語では
Guardrailsは効果がありません)と明記されています。

Guardrailsは、有害なコンテンツの検出やフィルタリング、特定のトピックの拒否、単語フィルター、機密情報
フィルターなどの機能を提供していますが、これらの機能は上記3言語でのみ効果的に動作する設計になっています。

q chatの回答

ここで会話を中段します。

/quit

次に、q chat -rコマンドを実行します。すると、前回の会話の内容を要約した内容が表示されました。

私たちの会話では、Amazon Bedrock Guardrailsがサポートしている言語について調査しました。結論として、Amazon Bedrock Guardrailsは現在、英語、フランス語、スペイン語の3つの自然言語のみをサポートしており、日本語を含むその他の言語では効果的に機能しないことが分かりました。

q chat -rの結果

そのまま会話を続けてみます。すると、前回の会話の内容をもとに会話を続けることができました。

> その情報が掲載されているURLを教えて

Amazon Bedrock Guardrailsがサポートしている言語(英語、フランス語、スペイン語)についての情報が掲載されているURLは以下になります:

https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html

このドキュメントの中で、「Important」というラベルの付いた注意書きに「AmazonBedrock Guardrails supports English, French, and Spanish in natural language. Guardrails will be ineffective with any other language.」と明記されています。

resumeオプションを実行したあとの会話

異なるディレクトリでresumeオプションを実行する

resume オプションのヘルプには、以下のように記載されています。

Resumes the previous conversation from this directory

この説明から、resumeオプションは、"同一ディレクトリ"での直前の会話を再開することができるようです。
実際に試してみます。一度会話を中断します。

/quit

次に、他のディレクトリに移動します。

$ cd ../var/tmp
$ q chat -r

すると、さきほどとは異なり前回の会話の要約は表示されませんでした。

image.png

前回の会話の要約を求めましたが、会話の履歴はないといった回答が得られました。ディレクトリを移動すると resume オプションは効かないことがわかりました。

ディレクトリを移動してresumeオプションを実行した結果

再度、会話を中断します。もとのディレクトリに戻り、q chat -rコマンドを実行します。

$ cd /tmp
$ q chat -r

すると、前回の会話の要約が表示されました。もとのディレクトリを移動しても、もとのディレクトリに戻れば会話を再開できることがわかりました。

もとのディレクトリでresumeオプションを実行した結果

他にも、ターミナルをexitで閉じた場合でも、q chat -rコマンドを実行すると前回の会話の要約が表示されました。不意にターミナルを閉じてしまった場合やディレクトリごとに一時的な会話をしている場合に、便利そうです。

会話の履歴を保存、読み込みする

resumeオプションは直前の会話を再開することができますが、会話の履歴を保存することはできません。会話の履歴を保存するには、/saveコマンドを使用します。会話の履歴を呼び出すには、/loadコマンドを使用します。

会話の履歴を保存する

/saveコマンドで任意のファイル名を指定することで、会話の履歴やQ CLIの思考過程を保存することができます。

/save chat_history.json

このコマンドを実行すると、会話の履歴がJSONファイルに保存されます。

saveコマンドで会話の履歴を保存する

このように、AWS Documentation MCP ServerをTool Useで利用する様子が保存されています。
会話履歴の中身

会話の履歴を読み込む

/loadコマンドで、/saveコマンドで保存したJSONファイルを読み込むことができます。ディレクトリを移動して、/loadコマンドを実行してみます。

$ cd /var/tmp
$ q chat

会話履歴を保存したJSONファイルを読み込みます。

> /load /tmp/chat_history.json

このように、/saveコマンドで保存した会話の履歴が読み込まれました。そして、前回の会話の要約を求めたところ、最初の質問である「Amazon Bedrock Guardrailsがサポートしている言語について」と、「ドキュメントのURLについて」の回答が要約されたものが表示されました。resumeオプションとは異なり、別のディレクトリでも会話の履歴を読み込むことができることがわかりました。
作業を中断する際に会話履歴を保存した場合や、プロジェクトごとに会話履歴を管理したい場合、別の端末で作業を再開したい場合などに有用です。

loadコマンドで会話の履歴を読み込む

履歴をクリアする

すべての会話履歴をクリアするには、/clearコマンドを使用します。

/clear

まとめ

Q CLIに追加されたresumeオプションと/saveコマンド、/loadコマンドを使うことで、会話の履歴を保存して読み込むことができます。
resumeオプションは、ターミナルを閉じた場合でももとのディレクトリに戻れば会話を再開できます。/save/loadコマンドの組み合わせで、会話履歴を作業単位やプロジェクト単位などに分けてJSONファイルで管理できます。過去の会話履歴をもとに新たな作業を行いたい場合など、様々な用途で活用できるのではないでしょうか。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?