ツールは、エージェントが実行できる機能 を決定します。エージェントの作成時または更新時に tools フィールドを設定することで、エージェントの機能を正確に制御できます。
ツールの役割
タスクを実行する際、エージェントは tools の設定に基づいて、呼び出し可能な機能を決定します。すべてのツールは、単一のオブジェクト { "type": "agent_toolset_20260401", "enabled_tools": [...] } を通じて設定し、enabled_tools 配列内で個別のツールを選択的に有効化します。
enabled_tools が空でない許可リストの場合、リスト外のツールはモデルに表示されず、呼び出しも試行されません。enabled_tools を省略するか、空の配列を指定した場合、すべての 組み込みツールがモデルに公開されます。tools フィールド自体を省略するか、[] に設定した場合、モデルはツールスキーマを一切受け取りません (以下の FAQ をご参照ください)。
利用可能なツール
| ツール名 (enabled_tools の値) | 目的 | 一般的な使用例 |
|---|---|---|
| シェルコマンドの実行 | 依存関係のインストール、スクリプトの実行、curl による API の呼び出し | |
| ファイルの読み取り | マウントされたファイルの表示、コードの読み取り | |
| ファイルの書き込み (作成/上書き) | レポートの生成、出力の作成 | |
| ファイルの部分的な編集 | 設定の変更、コードの編集 | |
| glob パターンによるファイルリストの取得 | コードファイルの検索 | |
| ファイル内容の検索 | 文字列の特定 | |
| HTTP GET による単一ページの取得 | ドキュメント/ページの取得 | |
| Web 検索 | 情報の検索 | |
| システム予約済みツール。「すべて有効」のセット ( |
注意事項:
- ツール名は先頭が大文字です (
Bashであり、bashではありません)。イベントストリームでも大文字で表示されます enabled_toolsを省略するか、空の配列[]を渡すと、すべての 組み込みツール (上記のDeliverArtifactsを含む) が有効になります。エージェントにツールを一切持たせたくない場合は、toolsフィールド全体を省略するか、[]に設定してくださいenabled_tools内の各ツール名は検証されます。未知の名前 (例:"Foo") を記述すると、400 エラー:"unknown tool name 'Foo'"が返されます- 旧形式のツール別オブジェクトスキーマ (
{"type": "bash_20250124"}など) はサポートされていません
現在の形式: 単一オブジェクト
ツール設定は、enabled_tools 配列を介して特定のツールを切り替える単一のオブジェクトです。
{
"tools": [
{
"type": "agent_toolset_20260401",
"enabled_tools": ["Bash", "Read", "Write", "Edit", "Glob", "Grep", "WebFetch", "WebSearch"]
}
]
}
エージェントの作成時に設定します。
curl -X POST https://api.qoder.com.cn/api/v1/cloud/agents \
-H "Authorization: Bearer $QODER_PAT" \
-H "Content-Type: application/json" \
-d '{
"name": "dev-agent",
"model": "ultimate",
"instructions": "You are a development assistant",
"tools": [
{
"type": "agent_toolset_20260401",
"enabled_tools": ["Bash", "Read", "Write", "Edit", "Glob", "Grep", "WebFetch", "WebSearch"]
}
]
}'
設定例
最小構成 (CLI のみ)
{
"tools": [
{
"type": "agent_toolset_20260401",
"enabled_tools": ["Bash"]
}
]
}
完全な開発スタック
{
"tools": [
{
"type": "agent_toolset_20260401",
"enabled_tools": ["Bash", "Read", "Write", "Edit", "Glob", "Grep", "WebFetch", "WebSearch"]
}
]
}
新しいバージョンの作成 (PUT による完全な置き換え)
PUT を使用して、更新されたツール設定でエージェントの新しいバージョンを作成します。
curl -X PUT https://api.qoder.com.cn/api/v1/cloud/agents/agent_abc123 \
-H "Authorization: Bearer $QODER_PAT" \
-H "Content-Type: application/json" \
-d '{
"version": 1,
"tools": [
{
"type": "agent_toolset_20260401",
"enabled_tools": ["Bash", "Read", "Write", "Edit"]
}
]
}'
PUT は完全な置き換え (パッチではない) です。含まれていないフィールドはクリアされます。楽観的同時実行制御のため、version フィールドを含める必要があります。
- 指定されたバージョンが現在のバージョンと一致する場合: 200 が返され、バージョンが 1 増加します
- 指定されたバージョンが古い場合: 409
{ error: { type: "conflict_error", message: "Version conflict. Expected version N, got M." }}が返されます
既存のセッションは影響を受けません。新しいセッションでは、更新された設定が使用されます。
現在のツール設定の確認
curl https://api.qoder.com.cn/api/v1/cloud/agents/agent_abc123 \
-H "Authorization: Bearer $QODER_PAT" | jq '.tools'
出力例:
[
{
"type": "agent_toolset_20260401",
"enabled_tools": ["Bash", "Read", "Write", "Edit", "Glob", "Grep", "WebFetch", "WebSearch"]
}
]
よくある質問
Q: tools を設定しない場合はどうなりますか? A: エージェントは使用可能なツールを持たず、プレーンテキストでの会話のみが可能です。エージェントに何らかのツール機能を持たせるには、少なくとも [{"type":"agent_toolset_20260401"}] を渡してください (これによりすべての組み込みツールが有効になります)。
Q: セッションレベルでツールを上書きできますか? A: 現在はできません。ツール設定はエージェントに紐付けられており、そのエージェントのすべてのセッションは同じツールセットを共有します。
Q: tools の順序は重要ですか? A: いいえ。エージェントは、タスクのコンテキストに基づいて呼び出すツールを決定します。
Q: バージョンサフィックスは今後変更されますか? A: はい。新しいツールバージョンがリリースされると、新しい日付サフィックスが導入されます。チェンジログを確認し、最新のサフィックスを採用してください。