tools フィールドを構成することで、Agent の能力境界を正確にコントロールできます。
ツールの役割
Agent はタスク実行時に、tools 構成に基づいて呼び出せる機能を判断します。すべてのツールは単一オブジェクト { "type": "agent_toolset_20260401", "enabled_tools": [...] } で構成し、enabled_tools 配列でアトミックなツールを必要に応じて有効化します。
enabled_tools が非空のホワイトリストの場合、リスト外のツールはモデル層で完全に不可視となり、呼び出しは発生しません。enabled_tools を省略するか空配列にした場合、すべての組み込みツールがモデルに公開されます。tools フィールド自体を省略するか [] に設定した場合、モデル層にツールスキーマが一切渡されません(下記 FAQ を参照)。
利用可能なツール
| ツール名(enabled_tools 配列の値) | 用途 | 典型的なシナリオ |
|---|---|---|
Bash | Shell コマンド実行 | 依存関係インストール、スクリプト実行、curl で API 呼び出し |
Read | ファイル読み取り | マウントされたファイルの参照、コードリーディング |
Write | ファイル書き込み(作成/上書き) | レポート生成、成果物出力 |
Edit | ファイル部分編集 | 設定変更、コード修正 |
Glob | ワイルドカードによるファイル一覧 | コードファイルの検索 |
Grep | ファイル内容検索 | 文字列の特定 |
WebFetch | HTTP GET 単一ページ | ドキュメント/ページの取得 |
WebSearch | Web 検索 | 資料の検索 |
DeliverArtifacts | Agent が /data/ 配下で生成したファイルをダウンロード可能な成果物としてユーザーに配信。agent.artifact_delivered イベントを発行 | ユーザーがファイル/レポート/エクスポートなどの成果物を要求した場合 |
- ツール名は先頭大文字(
Bashであってbashではない)。イベントストリームでも大文字形式 enabled_toolsを省略するか空配列[]を渡すと、すべての組み込みツールが有効化されます(上記テーブルのDeliverArtifactsを含む)。Agent にツールを一切持たせない場合は、toolsフィールド自体を省略するか[]に設定してくださいenabled_toolsが非空のホワイトリストの場合、リスト外のツールはモデルに完全に不可視です。カスタムホワイトリストでDeliverArtifactsを使用するには、明示的に含める必要があります(例:["Bash", "Write", "DeliverArtifacts"])enabled_tools内のすべてのツール名は検証されます。不明な名前(例:"Foo")を入力すると 400 エラー:"unknown tool name 'Foo'"が返されます- ツールごとに 1 オブジェクトの旧スキーマ(例:
{"type": "bash_20250124"})はサポートされなくなりました
現行フォーマット: 単一オブジェクト
ツール構成は単一オブジェクトで、enabled_tools 配列で具体的なツールのオン・オフを切り替えます:
ツール構成の例
最小構成 (CLI のみ)
完全な開発環境
新バージョンの作成(PUT 全量置換)
PUT で Agent の新バージョンを作成し、ツール構成を更新します:PUT は全量置換(パッチではありません)です。含まれないフィールドはクリアされます。
version フィールドで楽観的同時実行制御を行う必要があります:- 渡した version が現在のバージョンと一致 → 200、version + 1
- 期限切れの version を渡した → 409
{ error: { type: "conflict_error", message: "Version conflict. Expected version N, got M." }}
curl で現在のツール構成を確認
よくある質問
Q: tools を構成しないとどうなりますか? A: Agent は利用可能なツールを持たず、純粋なテキスト対話のみ可能です。Agent にツール機能を持たせるには、少なくとも[{"type":"agent_toolset_20260401"}] を渡してください(すべての組み込みツールが有効化されます)。
Q: Session レベルでツール構成を上書きできますか? A: 現在はサポートされていません。ツール構成は Agent にバインドされ、同じ Agent のすべての Session が同じツールセットを共有します。
Q: tools 配列の順序は重要ですか? A: 重要ではありません。Agent はタスクのコンテキストに基づき、自律的にどのツールを呼び出すかを判断します。
Q: 版本サフィックスは時間とともに変わりますか? A: 変わります。新しいバージョンのツールがリリースされると、新しい日付サフィックスが追加されます。Changelog をご確認の上、最新のサフィックスをご利用ください。