機能

コンテキストメンション(Context mentions)

@メンションを使用してプロジェクトの特定の要素をBobの会話内で直接参照し、正確でコンテキストに応じた支援を受けられます。

メンションの種類

コンテキストメンションを使用すると、プロジェクトのさまざまな要素を参照できます:

メンションの種類形式説明使用例
ファイル@/path/to/file.tsリクエストのコンテキストにファイル内容を含めますExplain the function in @/src/utils.ts
フォルダ@/path/to/folderフォルダ直下のすべてのファイルの内容を含めます(非再帰的)Analyze the code in @/src/components
Problems@problemsIBM Bob の「問題(Problems)」パネルの診断内容を含めます@problems Fix all errors in my code
ターミナル@terminal最近のターミナルコマンドとその出力を含めますFix the errors shown in @terminal
Gitコミット@a1b2c3dハッシュで特定のコミットを参照しますWhat changed in commit @a1b2c3d?
Gitの変更@git-changesコミットされていない変更を表示しますSuggest a message for @git-changes
URL@https://example.comウェブサイトのコンテンツを取り込みますSummarize @https://docusaurus.io/

ファイルメンション

ファイルメンションは最も一般的に使用されるタイプで、特定のファイルの内容をBobとの会話に含めることができます。

機能詳細
形式@/path/to/file.ts(ワークスペースのルートから常に / で始めます)
提供するもの行番号付きの完全なファイル内容
対応ファイルテキストファイル、PDF、およびDOCXファイル(テキスト抽出あり)
対応場所初期リクエスト、フィードバックへの応答、およびフォローアップメッセージ
制限事項非常に大きなファイルは切り捨てられる場合があります。バイナリファイルはサポートされていません
ヒント:

大きなファイルの場合は、ファイルのパスの後に行番号を続けることで、特定のセクションをメンションできます。例えば @/src/app.js:10-20 と指定すると、10〜20行目のみを含めることができます。

フォルダメンション

フォルダメンションを使用すると、一度に複数のファイルを参照でき、ディレクトリからより広いコンテキストを提供できます。

機能詳細
形式@/path/to/folder(末尾のスラッシュなし)
提供するものディレクトリ内のすべてのファイルの完全な内容
含まれるものフォルダ直下の非バイナリテキストファイルの内容(非再帰的)
最適な用途ディレクトリ内の複数のファイルからコンテキストを提供する場合
ヒント大きなディレクトリをメンションする際は、context window の制限に注意してください
注意:

フォルダメンションは非再帰的です。つまり、指定されたフォルダの直下にあるファイルのみが含まれ、サブフォルダ内のファイルは含まれません。

Problemsメンション

Problemsメンションは、IBM Bobの「問題」パネルから診断情報を取り込み、複数の問題を一度に解決するのに役立ちます。

機能詳細
形式@problems
提供するものIBM Bob の「問題」パネルからのすべてのエラーと警告
含まれるものファイルパス、行番号、および診断メッセージ
グループ化分かりやすくするために、ファイルごとに整理された問題
最適な用途手動でコピーすることなくエラーを修正する場合

使用例: @problems Can you help me fix all these issues?

ターミナルメンション

ターミナルメンションは最近のコマンド出力をキャプチャし、ビルドエラーのデバッグやコマンド結果の分析をサポートします。

機能詳細
形式@terminal
キャプチャするもの最後のコマンドとその完全な出力
保持するものターミナルの状態(ターミナルはクリアされません)
制限事項表示可能なターミナルバッファの内容に制限されます
最適な用途ビルドエラーのデバッグやコマンド出力の分析
ヒント

ビルドの失敗をトラブルシューティングするときは、 What is wrong with @terminal? と入力してみることで、手動で出力をコピーすることなく、エラーに関する即座の洞察を得ることができます。

Gitメンション

Gitメンションは、コミットや変更を参照することで、バージョン管理の作業をサポートします。

タイプ形式提供するもの制限事項
コミット@a1b2c3dコミットメッセージ、作成者、日付、および完全な diffGitリポジトリ内でのみ機能します
作業中の変更@git-changesgit status の出力とコミットされていない変更の diffGitリポジトリ内でのみ機能します

使用例: What's the purpose of @a1b2c3d? または Suggest a commit message for @git-changes

URLメンション

URLメンションを使用すると、Bobとの会話で外部のウェブコンテンツを参照できます。

機能詳細
形式@https://example.com
処理ヘッドレブラウザを使用してコンテンツを取得します
クリーンアップスクリプト、スタイル、およびナビゲーション要素を削除します
出力読みやすさのためにコンテンツを Markdown に変換します
制限事項複雑なページは完全に変換されない場合があります
ヒント:

URLメンションはドキュメントを参照するのに便利です。 Can you explain @https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise を試して、公式ドキュメントをコンテキストとして使用して概念の理解を深めてみてください。

コンテキストメンションの使用方法

チャット入力欄に @ と入力して、提案 dropdown を表示させます。

入力を続けて提案をフィルタリングするか、矢印キーを使用して移動します。

Enter キーまたはマウスのクリックで選択します。

1つのリクエストで複数のメンションを組み合わせる:「Fix @problems in @/src/component.ts」

ヒント:

テキストを選択した状態でキーボードショートカット + L を使用すると、それをチャットに追加できます。

dropdown には以下が自動的に提案されます:

  • 最近開いたファイル
  • 表示されているフォルダ
  • 最近の Git コミット
  • 特別なキーワード(problemsterminalgit-changes
  • 現在開いているすべてのファイル(除外設定やディレクトリフィルタに関係なく)

dropdown はノイズを減らすために、node_modules.gitdistout などの一般的なディレクトリを自動的に除外します。ただし、手動で入力した場合はその内容を含めることができます。

ヒント:

1つのリクエストで複数のメンションを組み合わせることができます。Compare @/src/v1/api.js with @/src/v2/api.js and explain the differences を試してみてください。

重要な挙動

除外ファイルとの相互作用

コンテキストメンションは、除外されたファイルと相互作用する際に特定の挙動を示します:

挙動説明
.bobignore のバイパスファイルおよびフォルダの @mentions は、コンテキストのコンテンツを取得する際に .bobignore のチェックをバイパスします。直接メンションされた場合は、除外されたファイルの内容も含まれます。
.gitignore のバイパス同様に、ファイルおよびフォルダの @mentions は、コンテンツを取得する際に .gitignore ルールを考慮しません。
Gitコマンドの尊重Git関連のメンション(@git-changes@commit-hash)は、Gitコマンドに依存しているため、.gitignore を尊重します。

コンテキストメンションは除外ルールをバイパスするため、通常はBobやGitによって無視される特定のファイルを参照できます。この機能は、生成されたファイルや、通常無視されるその他のコンテンツについて議論する必要がある場合に特に便利です。

まとめ

コンテキストメンションは、プロジェクトの要素を正確に参照できるようにすることで、Bobとのやり取りを強化します。コードをコピー&ペーストしたり、ファイルの場所を説明したりする代わりに、議論している内容を直接参照できます。

異なるメンションタイプの効果的な組み合わせ:

  • Fix @problems in @/src/components and explain what was wrong
  • Review @git-changes and suggest improvements
  • Compare @/v1/api.js with @https://api-docs.example.com and check for inconsistencies

コンテキストメンションを効果的に使用することで、Bobとより正確にコミュニケーションをとり、より的を絞った支援を受けることができます。

このトピックはいかがですか?