[アップデート] Amazon Q Developer で実験的な機能を有効化するための「/experiment」スラッシュコマンドが追加されていたので使ってみた
いわさです。
Amazon Q Developer CLI には実験的なベータ機能が搭載されています。
それらの機能はデフォルトでは無効化されており、個別に有効化することで利用することが出来ます。
v1.15.0 から、個別のベータ機能を有効化するための/experiment
スラッシュコマンドが提供されるようになりました。
今回こちらの機能を使って Amazon Q Developer CLI のナレッジベース機能を有効化してみましたので、その流れを紹介します。
なお、ナレッジベース機能自体を本格的に検証しているわけではありませんので、そちらは別途検証して紹介したいと思います。
有効化
有効化の流れなどは以下のドキュメントにも記載されています。スラッシュコマンドの実装が v1.15.0 なので、利用バージョンのみ注意が必要です。
対象バージョンであれば、experiment
の存在が確認できるはずです。
> /help
q (Amazon Q Chat)
Usage: /<COMMAND>
Commands:
quit Quit the application
clear Clear the conversation history
agent Manage agents
context Manage context files for the chat session
editor Open $EDITOR (defaults to vi) to compose a prompt
reply Open $EDITOR with the most recent assistant message quoted for reply
compact Summarize the conversation to free up context space
tools View tools and permissions
issue Create a new Github issue or make a feature request
changelog View changelog for Amazon Q CLI
prompts View and retrieve prompts
hooks View context hooks
usage Show current session's context window usage
mcp See mcp server loaded
model Select a model for the current conversation session
experiment Toggle experimental features
subscribe Upgrade to a Q Developer Pro subscription for increased query limits
save Save the current conversation
load Load a previous conversation
todos View, manage, and resume to-do lists
help Print this message or the help of the given subcommand(s)
:
ありましたね。
ではexperiment
を使ってみましょう。
> /experiment
⚠ Experimental features may be changed or removed at any time
? Select an experiment to toggle ›
❯ Knowledge [OFF] Enables persistent context storage and retrieval across chat sessions (/knowledge)
Thinking [OFF] Enables complex reasoning with step-by-step thought processes
Tangent Mode [OFF] Enables entering into a temporary mode for sending isolated conversations (/tangent)
Todo Lists [OFF] Enables Q to create todo lists that can be viewed and managed using /todos
Checkpoint [OFF] Enables workspace checkpoints to snapshot, list, expand, diff, and restore files (/checkpoint)
Note: Cannot be used in tangent mode (to avoid mixing up conversation history)
Context Usage Indicator [OFF] Shows context usage percentage in the prompt (e.g., [rust-agent] 6% >)
なるほど。試験的なベータ機能がいくつか列挙され、ここで有効化ができるみたいです。
デフォルトは全部オフになってますね。
/knowledge コマンドを有効化してみる
今回は上記の中から Knowledge 機能を有効化してみましょう。
本日はあまりこの個別のベータ機能について掘り下げるつもりはないのですが、Amazon Q Developer CLI ではコンテキストをコントロールするためのアプローチがいくつかあります。
ナレッジベースは大規模なコードベースあるいはドキュメントのセットを利用する場合に適していて、特徴としてはナレッジーベースの場合は検索時のみ有効になりセッションコンテキストなどと異なって常にアクティブでコンテキストが消費される形式ではありません。
また、セッションを跨いでも永続性があるので、実際にどの程度機能するかわからないですが、名前のとおりナレッジベースとして機能させることが出来ます。
まず、有効化する前は次のようにエラーとなります。
> /knowledge show
Knowledge tool is disabled. Enable it with: q settings chat.enableKnowledge true
💡 Your knowledge base data is preserved and will be available when re-enabled.
ベータ機能は利用にあたってはやはり有効化が必要みたいです。
ということで、先程の/experiment
で Knowledge を有効化してみましょう。
> /experiment
Knowledge experiment enabled
そうすると、/knowledge
スラッシュコマンドが使えるようになります。軽く見てみましょう。
> /knowledge
(Beta) Manage knowledge base for persistent context storage. Requires "q settings chat.enableKnowledge true"
Usage: /knowledge <COMMAND>
Commands:
show Display the knowledge base contents
add Add a file or directory to knowledge base
remove Remove specified knowledge base entry by path
update Update a file or directory in knowledge base
clear Remove all knowledge base entries
status Show background operation status
cancel Cancel a background operation
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
なるほど。/knowledge add
でファイルやディレクトリを追加してから使う感じっぽいですね。
追加してみます。
> /knowledge add docs/src
🚀 Started indexing 'docs/src'
📁 Path: /Users/iwasa.takahito/work/hoge1001qdev/docs/src
🆔 Operation ID: fc5fe470
>
そうすると、インデックスが作成されはじめます。
/knowledge status
コマンドで進捗を確認出来ました。
> /knowledge status
📚 Total knowledge base entries: 0 (0 persistent, 0 volatile)
📊 Active Operations:
📈 Queue Status: 1 active, 0 waiting (max 3 concurrent)
🔄 fc5fe470 | Indexing 'docs/src'
██▓░░░░░░░░░░░░░░░░░░░░░░░░░░░ 7% (730/9291) Generating embeddings (730/9291) | Elapsed: 39s | ETA: 456s
> /knowledge status
📚 Total knowledge base entries: 0 (0 persistent, 0 volatile)
📊 Active Operations:
📈 Queue Status: 1 active, 0 waiting (max 3 concurrent)
🔄 fc5fe470 | Indexing 'docs/src'
███▓░░░░░░░░░░░░░░░░░░░░░░░░░░ 11% (1100/9291) Generating embeddings (1100/9291) | Elapsed: 58s | ETA: 438s
このインデックス作成が完了されるまでは、まだナレッジベースコンテンツとしては表示されないみたいですね。
/knowledge show
をしてみても何も表示されませんでした。
> /knowledge show
👤 Agent (q_cli_default):
<none>
その後少し待って、インデックス作成が完了したようです。
> /knowledge status
📚 Total knowledge base entries: 1 (1 persistent, 0 volatile)
✅ No active operations
> /knowledge show
👤 Agent (q_cli_default):
📂 docs/src (09692fd0)
Knowledge context for docs/src
3198 items • Best • 09/30 20:56
3198 件のファイルがインデックスに取り込まれたようです。
ただ、このあと問い合わせをしてみたのですが、どうもうまくナレッジベース検索をしてくれませんでした。
本題から逸れるのでここの深堀りは今日はしないのですが、問い合わせ方法のコツがあるのかな...誰か知ってたら教えてください。
さいごに
本日は Amazon Q Developer で実験的な機能を有効化するための「/experiment」スラッシュコマンドが追加されていたので使ってみました。
有効化した機能はベータ版なので予告なく変更/削除される可能性があるので、利用にあたってはその前提で判断して使いましょう。
ああ、これほしかったーみたいな機能が結構あったりするので、開発環境などで試しに使ってみるのはおもしろいですね。