はじめに
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サーバーが読み込まれたことが示されています。
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言語でのみ効果的に動作する設計になっています。
ここで会話を中段します。
/quit
次に、q chat -r
コマンドを実行します。すると、前回の会話の内容を要約した内容が表示されました。
私たちの会話では、Amazon Bedrock Guardrailsがサポートしている言語について調査しました。結論として、Amazon Bedrock Guardrailsは現在、英語、フランス語、スペイン語の3つの自然言語のみをサポートしており、日本語を含むその他の言語では効果的に機能しないことが分かりました。
そのまま会話を続けてみます。すると、前回の会話の内容をもとに会話を続けることができました。
> その情報が掲載されている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
オプションのヘルプには、以下のように記載されています。
Resumes the previous conversation from this directory
この説明から、resume
オプションは、"同一ディレクトリ"での直前の会話を再開することができるようです。
実際に試してみます。一度会話を中断します。
/quit
次に、他のディレクトリに移動します。
$ cd ../var/tmp
$ q chat -r
すると、さきほどとは異なり前回の会話の要約は表示されませんでした。
前回の会話の要約を求めましたが、会話の履歴はないといった回答が得られました。ディレクトリを移動すると resume
オプションは効かないことがわかりました。
再度、会話を中断します。もとのディレクトリに戻り、q chat -r
コマンドを実行します。
$ cd /tmp
$ q chat -r
すると、前回の会話の要約が表示されました。もとのディレクトリを移動しても、もとのディレクトリに戻れば会話を再開できることがわかりました。
他にも、ターミナルをexit
で閉じた場合でも、q chat -r
コマンドを実行すると前回の会話の要約が表示されました。不意にターミナルを閉じてしまった場合やディレクトリごとに一時的な会話をしている場合に、便利そうです。
会話の履歴を保存、読み込みする
resume
オプションは直前の会話を再開することができますが、会話の履歴を保存することはできません。会話の履歴を保存するには、/save
コマンドを使用します。会話の履歴を呼び出すには、/load
コマンドを使用します。
会話の履歴を保存する
/save
コマンドで任意のファイル名を指定することで、会話の履歴やQ CLIの思考過程を保存することができます。
/save chat_history.json
このコマンドを実行すると、会話の履歴がJSONファイルに保存されます。
このように、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
オプションとは異なり、別のディレクトリでも会話の履歴を読み込むことができることがわかりました。
作業を中断する際に会話履歴を保存した場合や、プロジェクトごとに会話履歴を管理したい場合、別の端末で作業を再開したい場合などに有用です。
履歴をクリアする
すべての会話履歴をクリアするには、/clear
コマンドを使用します。
/clear
まとめ
Q CLIに追加されたresume
オプションと/save
コマンド、/load
コマンドを使うことで、会話の履歴を保存して読み込むことができます。
resume
オプションは、ターミナルを閉じた場合でももとのディレクトリに戻れば会話を再開できます。/save
と/load
コマンドの組み合わせで、会話履歴を作業単位やプロジェクト単位などに分けてJSONファイルで管理できます。過去の会話履歴をもとに新たな作業を行いたい場合など、様々な用途で活用できるのではないでしょうか。