Amazon Q Developper CLIを試してみる(q chat編)
Amazon Q Developper CLIを試してみる
やりたい事がありすぎて触れていなかったので周回遅れで手を動してみたいと思います。
全部触ると長くなりそうなの事が判明した為、本記事ではq chatのみです。
触ってみたよーというだけの内容ですが、宜しければ斜め読み程度にお付き合いいただければ幸いです。
公式ブログ(日本語)
公式ドキュメント
インストール
brew install amazon-q
q --version
サブコマンド一覧を確認
※2025/4/20時点
まずはhelpを実行(説明文翻訳済)
q --help
q (Amazon Q CLI)
Popular Subcommands Usage: q [subcommand]
╭────────────────────────────────────────────────────╮
│ chat Amazon Qとチャットする │
│ translate 自然言語からシェルへの翻訳 │
│ doctor インストールに関する問題をデバッグする │
│ settings インストールに関する問題をデバッグする │
│ quit アプリを終了する │
╰────────────────────────────────────────────────────╯
To see all subcommands, use:
❯ q --help-all
全てのサブコマンドを見るには
q --help-all
を叩いてねとの事で実行(説明文翻訳済)
q --help-all
USAGE:
q [OPTIONS] [SUBCOMMAND]
Commands:
debug アプリをデバッグする
settings 外観と動作をカスタマイズする
setup CLI コンポーネントをセットアップする
update Amazon Q アプリケーションを更新する
diagnostic 診断テストを実行する
init 指定したシェル用の設定ファイルを生成する
theme テーマを取得または設定する
issue 新しい GitHub issue を作成する
login ログインする
logout ログアウトする
whoami 現在のユーザー情報を表示する
user アカウントを管理する
doctor 一般的な問題を修正・診断する
launch デスクトップアプリを起動する
quit デスクトップアプリを終了する
restart デスクトップアプリを再起動する
integrations システム統合を管理する
translate 自然言語をシェルコマンドに変換する
dashboard ダッシュボードを開く
chat ターミナル内のAIアシスタント
inline シェル補完機能(インライン)
help このメッセージ、または指定したサブコマンドのヘルプを表示する
Options:
-v, --verbose...
ログの詳細度を上げる(冗長モード)
--help-all
すべてのサブコマンドのヘルプを表示する
-h, --help
ヘルプを表示する
-V, --version
バージョン情報を表示する
とりあえずq chatを体験してみる
事前にTLで見かけていましたが、既に日本語対応済みの様子。
(日本語出来ない時を先に触ってみるべきだったが時既に遅し)
新しい設定をせずに日本語で話しかけると日本語で返ってくる模様。
q chat
Hi, I'm Amazon Q. Ask me anything.
Things to try
• Fix the build failures in this project.
• List my s3 buckets in us-west-2.
• Write unit tests for my application.
• Help me understand my git status.
/tools View and manage tools and permissions
/issue Report an issue or make a feature request
/profile (Beta) Manage profiles for the chat session
/context (Beta) Manage context files for a profile
/compact Summarize the conversation to free up context space
/help Show the help dialogue
/quit Quit the application
Use Ctrl(^) + j to provide multi-line prompts.
> 以降は日本語で対応してください。
はい、これからは日本語で対応いたします。何かお手伝いできることがありましたら、お気軽にお尋ねください。
> それぞれの機能について再度詳細な説明をお願い出来ますか(何が出来るのか)
⠹ Thinking...
もちろん、Amazon Q CLIの各コマンドの詳細な説明をいたします。
### /tools - ツールと権限の表示と管理
• Amazon Qが使用できるツールの一覧を表示します
• ツールの権限設定を確認・変更できます
• 特定のツールの使用を許可または制限することができます
### /issue - 問題の報告や機能リクエスト
• Amazon Qの使用中に発生した問題を報告できます
• 新しい機能のリクエストを送信できます
• フィードバックを開発チームに直接伝えることができます
### /profile - (ベータ) チャットセッションのプロファイル管理
• 異なるプロファイルを作成・管理できます
• プロファイルごとに異なる設定や環境を保存できます
• 用途に応じたプロファイルを切り替えて使用できます
### /context - (ベータ) プロファイルのコンテキストファイル管理
• チャットの文脈として使用するファイルを追加・削除できます
• コードやドキュメントなどのファイルをコンテキストとして提供できます
• Amazon Qがより適切な回答を提供するための情報源として活用できます
### /compact - コンテキスト領域を解放するための会話の要約
• 長い会話履歴を要約して、コンテキスト容量を節約します
• 重要なポイントを保持しながら、会話を簡潔にまとめます
• 長時間の対話セッションを続ける際に有用です
### /help - ヘルプダイアログの表示
• 利用可能なコマンドの一覧と簡単な説明を表示します
• Amazon Qの使い方に関する基本的な情報を提供します
• 困ったときにサポート情報を確認できます
### /quit - アプリケーションの終了
• 現在のAmazon Qセッションを終了します
• アプリケーションを完全に閉じます
• 終了時にセッション情報は保存されません
これらのコマンドを使って、Amazon Q CLIをより効率的に活用することができます。何か特定のコマンドについてさらに詳しく知
りたい場合は、お気軽にお尋ねください。
> これらを使いたい場合はこのチャットが継続中に例えば /tools 等入力すれば良いですか?
はい、その通りです。これらのコマンドを使用する場合は、チャットセッションが継続中に、そのままコマンドを入力するだけで
実行できます。
例えば、ツールと権限を管理したい場合は、このチャット内で単に「/tools」と入力して送信します。すると、Amazon Qが利用可
能なツールの一覧や権限設定のインターフェースが表示されます。
同様に、他のコマンドも使いたい場合は:
• 問題を報告したい場合は「/issue」
• プロファイルを管理したい場合は「/profile」
• コンテキストファイルを管理したい場合は「/context」
• 会話を要約したい場合は「/compact」
• ヘルプを表示したい場合は「/help」
• アプリケーションを終了したい場合は「/quit」
と、このチャット内で入力するだけで各機能にアクセスできます。スラッシュ(/)で始まるこれらのコマンドは、通常の会話とは区別され、システムコマンドとして認識されます。
/tools
> /tools
Current tool permissions:
- fs_read Trusted [Default]
- report_issue Trusted [Default]
- fs_write Per-request [Default]
- execute_bash Write-only commands [Default]
- use_aws Write-only commands [Default]
Use /tools help to edit permissions.
> こちらも先程同様それぞれに日本語で詳細な説明をつけてください。
### fs_read - Trusted [Default]
ファイルシステムの読み取り操作が信頼されています。Amazon Qはファイルやディレクトリの内容を読み取り、表示することができます。デフォルトで許可されています。
### report_issue - Trusted [Default]
問題報告機能が信頼されています。Amazon Qの使用中に発生した問題を報告するための機能が有効になっています。デフォルトで許可されています。
### fs_write - Per-request [Default]
ファイルシステムへの書き込み操作はリクエストごとに許可が必要です。Amazon Qがファイルを作成・編集する際には、その都度ユーザーの承認が求められます。デフォルト設定です。
### execute_bash - Write-only commands [Default]
Bashコマンドの実行は書き込み専用コマンドに制限されています。システムに影響を与える可能性のあるコマンドは制限され、安全なコマンドのみが実行できます。デフォルト設定です。
### use_aws - Write-only commands [Default]
AWS CLIの使用は書き込み専用コマンドに制限されています。AWSリソースに対する読み取り操作は許可されますが、変更を加える操作は制限されています。デフォルト設定です。
「Use /tools help to edit permissions」は、これらの権限設定を変更したい場合は「/tools help」コマンドを使用して詳細なヘルプを表示できることを示しています。
(翻訳済)
/tools help
ツールの権限
デフォルトでは、Amazon Q は特定のツールを使用する前に許可を求めます。
どのツールを信頼するかを設定することで、確認なしで使用できるようになります。
これらの設定は、このセッション中のみ有効です。
使用方法: /tools [サブコマンド]
説明
現在のツールとその権限設定を表示します。
権限設定では、ユーザー確認が必要かどうかを示します。
信頼されたツールは確認なしで使用されます。
または、ツールの権限を変更するためのサブコマンドを指定してください。
使用可能なサブコマンド
help tools コマンドの説明を表示する
trust <ツール名> 指定したツールをセッション中信頼する
untrust <ツール名> ツールを都度確認モードに戻す
trustall すべてのツールを信頼する(非推奨の /acceptall と同等)
reset すべてのツールの権限をデフォルトにリセットする
試しにfs_writeのデフォルト挙動を確認
> このディレクトリに test.txt を作成して「こんにちは」と書いてください。
ファイルを作成するリクエストを実行します。現在のディレクトリ(/Users/hoge/Desktop/fuga)に「test.txt
」というファイルを作成し、「こんにちは」という内容を書き込みます。
[Tool Request] Write to filesystem
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Path: /Users/hoge/Desktop/fuga/test.txt
+ 1: こんにちは
Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]:
> y
Writing to filesystem...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Creating: /Users/hoge/Desktop/fuga/test.txt
🟢 Completed in 0.6s
「test.txt」ファイルを正常に作成し、「こんにちは」という内容を書き込みました。ファイルは現在のディレクトリ(/Users/
hoge/Desktop/fuga)に保存されています。
確認を求められた後yと回答した事で作成されています。
fs_writeをtrustしてみます。
> /tools trust fs_write
Tool 'fs_write' is now trusted. I will not ask for confirmation before running this tool.
ツール『fs_write』が信頼されるようになりました。このツールを実行する前に確認を求めることはしません。との事
> このディレクトリに test2.txt を作成して「こんにちは2」と書いてください。
ファイルを作成するリクエストを実行します。
[Tool Request - Trusted] Write to filesystem
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Path: /Users/hoge/Desktop/fuga/test2.txt
+ 1: こんにちは2
Writing to filesystem...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Creating: /Users/hoge/Desktop/fuga/test2.txt
🟢 Completed in 0.0s
「test2.txt」ファイルを正常に作成し、「こんにちは2」という内容を書き込みました。ファイルは現在のディレクトリ(/Users/
hoge/Desktop/fuga)に保存されています。
今度はy/n/tを聞かれませんでした。
Per-requestだった状態で以下のように問われた際、前述の通り「t」という選択肢があったのでそこからでも簡単に指示出来そうです。
Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]:
このアクションを許可しますか?セッションでこのツールを信頼する(常に許可する)には『t』を使う。[y/n/t]:
確認も含めuntrustに戻しておきます。
> /tools untrust fs_write
Tool 'fs_write' set to per-request confirmation.
aws cli実行を伴うアクションを自然言語で試していない事に気づいたので、このタイミングですがS3バケットの一覧を表示してみてもらいます。(バケット名は適当に変換済)
> S3バケットの一覧を表示してください
AWS S3バケットの一覧を表示するために、AWS CLIを使用します。us-west-2リージョンのS3バケットを確認します。
[Tool Request - Trusted] Use AWS CLI
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Running aws cli command:
Service name: s3api
Operation name: list-buckets
Parameters:
Profile name: default
Region: us-west-2
Label: S3バケット一覧の取得
Using AWS CLI...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
🟢 Completed in 2.350s
S3バケットの一覧を取得しました。以下が現在のアカウントに存在するバケットです:
1. hoge-bucket (作成日: 2024-12-07)
2. fuga-bucket (作成日: 2024-11-09)
3. piyo-bucket (作成日: 2022-11-05)
4. foo-bucket (作成日: 2022-11-06)
5. bar-bucket (作成日: 2024-11-12)
6. buzz-bucket (作成日: 2023-09-03)
7. hoge-bucket2 (作成日: 2024-11-09)
8. hoge-bucket3 (作成日: 2024-11-12)
9. hoge-bucket4 (作成日: 2022-10-30)
10. hoge-bucket5 (作成日: 2024-11-12)
他にも多数のバケットがあります。特定のバケットについて詳細情報が必要な場合は、お知らせください。
us-west-2リージョンのと言っていますが、実際には東京のバケット等も一覧かしてくれています。
続いて、「空のバケット全部教えてね」と聞いてみます。
> オブジェクトが存在しない空のバケットを一覧化してください
空のバケット(オブジェクトが存在しないバケット)を確認するために、各バケットのオブジェクト数を確認します。
[Tool Request] Execute shell command
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
I will run the following shell command:
for bucket in $(aws s3api list-buckets --query "Buckets[].Name" --output text); do count=$(aws s3api list-objects-v2 --bucket $bucket --query "length(Contents[])" --output text 2>/dev/null || echo "Error"); echo "$bucket: $count"; done
Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]:
> y
Executing `for bucket in $(aws s3api list-buckets --query "Buckets[].Name" --output text); do count=$(aws s3api list-objects-v2 --bucket $bucket --query "length(Contents[])" --output text 2>/dev/null || echo "Error"); echo "$bucket: $count"; done`...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
hoge-bucket1: Error
hoge-bucket2: Error
hoge-bucket3: 3
hoge-bucket4: Error
hoge-bucket5: 14
...(※省略)
🟢 Completed in 50.660s
バケットのオブジェクト数を確認しました。「Error」と表示されているバケットは、アクセス権限の問題か空である可能性があり
ます。以下が空である可能性が高いバケットの一覧です:
1. hoge-bucket1
2. hoge-bucket2
3. hoge-bucket4
...(※省略)
これらのバケットは「Error」と表示されていますが、これはアクセス権限がないか、バケットが空である可能性があります。より
正確に確認するには、各バケットに対する適切な権限が必要です。
削除を命じてみます。
> hoge-bucket1を削除してください
AWS S3バケットを削除する前に、いくつか確認が必要です。S3バケットを削除するには、まずバケットが空である必要があります
。先ほどの確認では「hoge-bucket1」バケットにアクセスできなかったため、まずバケットの内容を確認し、必要に応じてオブジェクトを削除してから、バケット自体を削除する必要があります。
まず、バケットの内容を確認してみましょう。
[Tool Request - Trusted] Use AWS CLI
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Running aws cli command:
Service name: s3api
Operation name: list-objects-v2
Parameters:
- bucket: "hoge-bucket1"
Profile name: default
Region: us-west-2
Label: バケット内のオブジェクト確認
Using AWS CLI...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
🟢 Completed in 2.700s
バケットの内容を確認しましたが、オブジェクトが存在しないようです。次にバケットを削除します。
[Tool Request] Use AWS CLI
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Running aws cli command:
Service name: s3api
Operation name: delete-bucket
Parameters:
- bucket: "hoge-bucket1"
Profile name: default
Region: us-west-2
Label: S3バケットの削除
Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]:
> y
Using AWS CLI...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
🟢 Completed in 2.303s
「hoge-bucket1」バケットを正常に削除しました。
バケットの削除が完了し、エラーは発生しませんでした。このバケットはもうAWSアカウントに存在しません。
/issue
特に問題は発生していないのですが、/issueを実行してみようとしました。
なんらか上手く動作しませんでしたが、githubのIssueページをブラウザで開くだけとの事で、一旦そこまで注力する事もないので飛ばす事にします。
一連のq chatとのやりとりをGPTに要約させたのが以下
/issue コマンドの概要
/issue をチャットで入力すると、GitHub の問題報告テンプレートページがブラウザで開く仕組み。
送信しなくてもOK。内容を見るだけでも可。
🔍 テンプレートが開かない主な理由
ポップアップブロックやブラウザ設定の制限
システムやCLIの権限設定による制限
コマンドの 入力方法が不適切(他の文章と一緒など)
一時的な ネットワークエラー
正しい使い方
チャット内で 単独で /issue とだけ入力するのが正しい方法です。
それでも開かない場合は、Amazon Q CLI のバージョンや設定を確認してください。
Amazon Q CLIの「/issue」コマンドは、システムのデフォルトブラウザを使用して問題報告テンプレートを開こうとします。
Amazon Q CLI自体には、使用するブラウザを指定する設定はありません。
/compact
> /compact
✔ Conversation history has been compacted successfully!
• The assistant has access to all previous tool executions, code analysis, and discussion details
• The assistant will reference specific information from the summary when relevant
• Use '/compact --summary' to view summaries when compacting
> /compact --summary
Conversation too short to compact.
✔ 会話履歴は正常にコンパクト化されました!
- アシスタントは、以前のすべてのツール実行、コード解析、およびディスカッションの詳細にアクセスできます。
- アシスタントは、関連する場合、サマリーから特定の情報を参照します。
- '/compact --summary' を使用して、コンパクト化時にサマリーを表示します。
/compact --summary
会話をコンパクトにするには短すぎる。
/compact コマンドとは?
チャット履歴(会話のコンテキスト)を圧縮・要約して、メモリ使用量を抑えるための機能
要約された内容は、Amazon Q が今後の応答で「過去の内容を参照する」際に使われる
/compact --summary とは?
「実際にどう要約されたか」をユーザーが確認できるオプション
/profile
> /profile help
(Beta) Profile Management
Profiles allow you to organize and manage different sets of context files for different projects or tasks.
Available commands
help Show an explanation for the profile command
list List all available profiles
create <name> Create a new profile with the specified name
delete <name> Delete the specified profile
set <name> Switch to the specified profile
rename <old> <new> Rename a profile
Notes
• The "global" profile contains context files that are available in all profiles
• The "default" profile is used when no profile is specified
• You can switch between profiles to work on different projects
• Each profile maintains its own set of context files
(ベータ版)プロファイル管理
プロファイルを使うことで、異なるプロジェクトやタスクに応じてコンテキストファイルのセットを整理・管理できます。利用可能なコマンド
help 説明を表示します
list すべてのプロファイルを一覧表示します
create <name> 指定した名前で新しいプロファイルを作成します
delete <name> 指定したプロファイルを削除します
set <name> 指定したプロファイルに切り替えます
rename <old> <new> プロファイルの名前を変更しますメモ
「global」プロファイルには、すべてのプロファイルで利用可能なコンテキストファイルが含まれます
「default」プロファイルは、プロファイルが指定されていない場合に使用されます
プロファイルを切り替えることで、異なるプロジェクト間の作業を簡単に分けることができます
各プロファイルは独自のコンテキストファイルセットを保持します
/context
> /context
(Beta) Context Rule Management
Context rules determine which files are included in your Amazon Q session.
The files matched by these rules provide Amazon Q with additional information
about your project or environment. Adding relevant files helps Q generate
more accurate and helpful responses.
Available commands
help Show an explanation for the context command
show [--expand] Display the context rule configuration and matched files
--expand: Print out each matched file's content
add [--global] [--force] <paths...>
Add context rules (filenames or glob patterns)
--global: Add to global rules (available in all profiles)
--force: Include even if matched files exceed size limits
rm [--global] <paths...> Remove specified rules from current profile
--global: Remove specified rules globally
clear [--global] Remove all rules from current profile
--global: Remove global rules
Notes
• You can add specific files or use glob patterns (e.g., "*.py", "src/**/*.js")
• Profile rules apply only to the current profile
• Global rules apply across all profiles
• Context is preserved between chat sessions
(ベータ版)コンテキストルール管理
コンテキストルールは、Amazon Q セッションで使用されるファイルを決定します。
これらのルールに一致するファイルは、プロジェクトや環境に関する追加情報を Amazon Q に提供します。
関連するファイルを追加することで、より正確で役立つ回答が得られます。利用可能なコマンド
help
context コマンドの説明を表示しますshow [--expand]
コンテキストルールの設定内容と一致するファイルを表示します
--expand: 各一致ファイルの内容も表示しますadd [--global] [--force] <paths...>
コンテキストルール(ファイル名やグロブパターン)を追加します
--global: すべてのプロファイルに適用されるグローバルルールとして追加
--force: ファイルサイズ制限を超えていても強制的に追加しますrm [--global] <paths...>
指定したルールを現在のプロファイルから削除します
--global: 指定したルールをグローバルから削除しますclear [--global]
現在のプロファイルからすべてのルールを削除します
--global: グローバルルールをすべて削除します
メモ
特定のファイルだけでなく、グロブパターン(例: ".py"、"src/**/.js")も指定可能
プロファイルルールは現在のプロファイルにのみ適用されます
グローバルルールはすべてのプロファイルに適用されます
チャットセッション間でコンテキストは保持されます
機能要約
コンテキストルールを使って、プロジェクト関連ファイルを Amazon Q に読み込ませることができる。
対象ファイルは、ファイル名や *.ts のようなワイルドカードで指定可能。
プロファイルごとのルールと、すべてのプロファイルで共有されるグローバルルールがある。
マッチしたファイルは、Q の回答精度を向上させるために使われる。
一度設定したルールやファイル情報は、セッションをまたいで保持される。
CLIコマンドでルールの追加・削除・表示が可能。
先ほど作成したこんにちわファイルを読み込ませてみたいと思います。
> context add test.txt
I'll add the file test.txt to your context. Let me check if this file exists and add its contents to your context.
[Tool Request - Trusted] Read from filesystem
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Reading file: /Users/hoge/Desktop/fuga/test.txt, all lines
Reading from filesystem...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Reading: test.txt
🟢 Completed in 0.0s
I've added the file test.txt to your context. The file contains the text "こんにちは" (which means "Hello" in
Japanese).
This matches what was mentioned in your conversation summary, where it was noted that you previously used fs_write to
create this file with the content "こんにちは".
> これってさっきfs_readがTrustedだったはずだけど、自然言語でこのファイル読んでよって言うのと何が違うの?コマンド化している意味は?
ご質問ありがとうございます。「context add」コマンドと通常の自然言語でファイルを読むよう依頼することの違いについて説明
します。
「context add」は特別なサブコマンドで、ファイルの内容を読み込むだけでなく、そのファイルを「コンテキスト」として追加し
ます。これにより、そのファイルの内容が会話の背景情報として保持され、今後の会話で参照できるようになります。
一方、自然言語で「このファイルを読んでください」と依頼した場合は:
1. ファイルの内容は一時的に表示されるだけで、自動的にコンテキストとして保存されません
2. 単にファイルの内容を確認するだけの一回限りの操作になります
会話の要約にも記載されていたように、「/context」コマンドはコンテキストファイル管理のための特別な機能です。これにより
、特定のファイルを会話の背景情報として明示的に追加し、その情報を継続的に参照できるようになります。
fs_readツールがTrustedであっても、「context add」はファイルを読むだけでなく、そのファイルをコンテキストとして登録する
という追加の機能を提供しています。これにより、複雑なプロジェクトやコードベースについて会話する際に、重要なファイルを
背景情報として常に参照できるようになります。
※ /profileと /contextについては以下ちゃんとした記事があるようでした。
/quit
無言で終了しました。
終わりに
--help-allに表示されていた他のコマンドもこの後試すつもりですが、一記事としては長いので今回はここまでにしたいと思います。
有難うございました。
Discussion