ツール
Bobがファイルの読み取り、コードの編集、コマンドの実行、サブエージェントの生成、MCP統合の使用、モードの切り替えに特殊なツールをどのように使用してコーディング・ワークフローを効率化するかを学びます。
ツール・ワークフロー
Bobと作業する際、Bobは適切なアクションを決定します。各ステップで、Bobは:
- リクエストに基づいて適切なツールを選択します
- レビューのためにパラメータと共にツールを提示します
- 承認されたツールを実行し、結果を表示します
- タスクが完了するまでこのプロセスを続けます
ツール・カテゴリー
Bobのツールは主な機能によってグループ化されています。 これらのカテゴリーを理解することで、Bobがさまざまなタスクをどのように実行するかを理解できます。
読み取りツール
読み取りツールにより、Bobは変更を加えることなくファイルの内容にアクセスし、コード構造を理解できます。
| ツール | 目的 | 使用例 |
|---|---|---|
read_file | オプションの行範囲を指定してファイルの内容を読み取ります | 設定ファイルの表示、ソース・コードの検査 |
glob | 名前パターンでファイルを検索します(例:**/*.ts) | テスト・ファイルの特定、すべてのコンポーネントの検索 |
grep | 正規表現パターンでファイル内容を検索します | 関数定義の検索、TODOの特定 |
list_files | ファイルとディレクトリーをリストします | 単一ディレクトリーの構造を参照 |
GetSymbolsOverview | ファイル内のトップレベル・シンボルを取得します | 詳細に入る前にファイル構造を理解 |
FindSymbol | オプションの深さを指定して名前パスでシンボルを検索します | クラス、メソッド、関数に移動 |
FindReferencingSymbols | シンボルへのすべての参照を検索します | 関数や型がどこで使用されているかを理解 |
Bobは、リクエストがコードのレビュー、パターンの検索、プロジェクト構造の検査を含む場合に読み取りツールを使用します。
書き込みツール
書き込みツールにより、Bobは新しいファイルを作成したり、既存のコードを変更したりできます。
| ツール | 目的 | 使用例 |
|---|---|---|
write_file | 新しいファイルを作成するか、既存のファイルを完全に書き換えます | 新しいコンポーネントの生成、設定ファイルの作成 |
apply_diff | ファイルの特定の部分に正確で対象を絞った変更を適用します | 関数ロジックの更新、バグの修正、コードのリファクタリング |
insert_content | ファイルの特定の位置に新しい行を挿入します | インポートの追加、新しい関数の挿入 |
search_and_replace | ファイル内のテキストまたは正規表現パターンを検索して置換します | 変数の名前変更、繰り返しパターンの更新 |
Bobは、リクエストがファイルの作成、機能の実装、バグの修正、コードのリファクタリングを含む場合に書き込みツールを使用します。
コマンド・ツール
コマンド・ツールにより、Bobはコマンドを実行し、システム操作を実行できます。
| ツール | 目的 | 使用例 |
|---|---|---|
execute_command | ワークスペースでCLIコマンドを実行します | 依存関係のインストール、テストの実行、プロジェクトのビルド |
Bobは、リクエストがコマンドの実行、パッケージのインストール、スクリプトの実行、システム操作の実行を含む場合にコマンド・ツールを使用します。
サブエージェント・ツール
サブエージェント・ツールにより、Bobは独立したエージェントを生成して、独自の分離されたコンテキストで焦点を絞った自己完結型の作業を処理できます。
| ツール | 目的 | 使用例 |
|---|---|---|
spawn_subagent | 独自のコンテキスト・ウィンドウを持つ独立したエージェントを作成します | コードベースのセクションを調査し、メイン・コンテキストを汚染せずに情報を収集 |
サブエージェントの仕組み
サブエージェントはメインの会話から独立して実行されます。独自のコンテキスト・ウィンドウを持ち、割り当てられたタスクを実行し、結果の要約をBobに返します。これにより、サブエージェントは、メインの会話に大量の無関係なコンテンツを追加する作業に役立ちます。
Bobはサブエージェントを控えめに使用します。デフォルトは常に作業を直接実行することです。サブエージェントは、次のすべてが当てはまる場合にのみ検討されます:
- タスクが明確に自己完結しており、要約のみが必要
- メイン・コンテキストに大量の無関係なコンテンツを追加する
- 1つまたは2つの直接ツール呼び出しでは達成できない
サブエージェントには2つのタイプがあります:
| タイプ | 説明 |
|---|---|
explore | 読み取り専用のコードベース探索、より軽量なモデルで実行 |
general | 完全なツール・アクセス、デフォルト・モデルで実行 |
デフォルトでは、サブエージェントは親の会話履歴を参照しません。fork_context: trueを設定すると、以前の決定、制約、またはユーザー設定を理解する必要がある場合に、会話履歴がサブエージェントに渡されます。
Bobは、単純なファイル読み取り、クイック検索、単一ツール操作、または関連するコンテキストがすでにあるタスクにはサブエージェントを使用しません。
サブタスク・ツール
サブタスク・ツールにより、Bobは新しい名前付きタスク・インスタンスを作成でき、UIで独自の専用会話として実行されます。
| ツール | 目的 | 使用例 |
|---|---|---|
start_subtask | タイトル、指示、オプションのTodoリストを持つ新しいタスクを作成します | 大きなリクエストを独自の会話スレッドを持つ追跡されたサブタスクに分割 |
サブタスクの仕組み
サブタスクは完全に独立したタスクで、UIに独自のブレッドクラムと会話履歴で表示されます。サブエージェント(バックグラウンドで静かに実行され、要約のみを返す)とは異なり、サブタスクは可視的でインタラクティブです。進行状況を追跡し、出力を確認し、その中で会話を続けることができます。
Bobは、リクエストが専用の追跡と別の会話スレッドから恩恵を受けるほど複雑な場合にサブタスクを使用します。サブタスクには次のものを指定できます:
- UIブレッドクラムに表示されるタイトル
- 詳細な指示を含むメッセージ
- ステップを追跡するための初期Todoリスト
- 開始するオプションのモード(例:設計作業用のPlanモード)
MCPツール
MCPツールにより、Bobは接続されたModel Context Protocol(モデル・コンテキスト・プロトコル、MCP)サーバーを通じて機能を拡張できます。
| ツール | 目的 | 使用例 |
|---|---|---|
| MCPサーバー・ツール | 接続されたMCPサーバーが提供するツールにアクセスします | データベースのクエリー、APIとの対話、外部サービスへのアクセス |
Bobは、リクエストが設定されたMCPサーバーによって提供される機能(monday.com、製品ナレッジ・ベース、カスタム統合など)を含む場合にMCPツールを使用します。
モード・ツール
モード・ツールにより、Bobは特殊なタスクのために異なるモード間を切り替えることができます。
| ツール | 目的 | 使用例 |
|---|---|---|
switch_mode | 別のモード(Agent、Plan、Askなど)に切り替えます | アーキテクチャー設計のためにPlanモードに切り替え、実装のためにAgentモード |
Bobは、リクエストが別のモードとその特殊な機能によってより適切に処理される場合にモード・ツールを使用します。
スキル・ツール
スキル・ツールにより、Bobは特定のドメインとタスクのための特殊な指示セットをアクティブ化できます。
| ツール | 目的 | 使用例 |
|---|---|---|
use_skill | 名前付きスキルの詳細な指示を現在のコンテキストにロードします | Carbon builderスキルをアクティブ化、Jiraワークフロー・ガイダンスをロード |
スキルは、キュレートされたドメイン固有の指示でBobの組み込み知識を拡張します。リクエストがスキル(Carbon Design Systemコンポーネントの操作、DITAドキュメントの作成、Jiraスプリントの管理など)に一致する場合、Bobは会話ごとに1回、関連するスキルをアクティブ化して、続行する前に完全なガイダンスをロードします。
ワークフロー・ツール
ワークフロー・ツールにより、Bobは特定の繰り返しタスク用に設計された事前定義されたマルチステップ・プロセスを起動できます。
| ツール | 目的 | 使用例 |
|---|---|---|
start_workflow | 独自の構造化されたステップを持つ名前付きワークフローを起動します | Pull Requestの作成、コード・レビューの実行 |
ワークフローは、一般的なタスクのためのキュレートされたステップバイステップ・プロセスです。Bobは、リクエストがワークフローの目的と明確に一致する場合(例:git diffからPR説明を生成する、ベース・ブランチに対してコード変更をレビューする)にそれらを使用します。
Todoツール
Todoツールにより、Bobは可視的なチェックリストを使用してマルチステップ・タスクの進行状況を追跡できます。
| ツール | 目的 | 使用例 |
|---|---|---|
update_todo_list | タスク・ステップのMarkdownチェックリストを作成または更新します | 実装ステップの追跡、完了項目のマーク、新しく発見されたタスクの追加 |
Bobは、複数のステップを持つ複雑なタスクにTodo追跡を使用します。リストは作業の進行に応じて更新されます。項目を完了としてマークし、新しく発見されたステップを追加し、一度に1つの項目を進行中に保ちます。これにより、何が完了し、何が残っているかを明確に把握できます。
質問ツール
質問ツールにより、Bobはタスクを完了するために必要な追加情報を収集できます。
| ツール | 目的 | 使用例 |
|---|---|---|
ask_followup_question | 明確化または追加の詳細を要求します | 優先実装アプローチの質問、不足情報の要求 |
Bobは、リクエストがBobが続行する前により多くの情報や明確化を必要とする場合に質問ツールを使用します。