メインコンテンツへスキップ
ツールは Agent が何をできるかを決定します。Agent の作成・更新時に tools フィールドを構成することで、Agent の能力境界を正確にコントロールできます。

ツールの役割

Agent はタスク実行時に、tools 構成に基づいて呼び出せる機能を判断します。すべてのツールは単一オブジェクト { "type": "agent_toolset_20260401", "enabled_tools": [...] } で構成し、enabled_tools 配列でアトミックなツールを必要に応じて有効化します。 enabled_tools が非空のホワイトリストの場合、リスト外のツールはモデル層で完全に不可視となり、呼び出しは発生しません。enabled_tools を省略するか空配列にした場合、すべての組み込みツールがモデルに公開されます。tools フィールド自体を省略するか [] に設定した場合、モデル層にツールスキーマが一切渡されません(下記 FAQ を参照)。

利用可能なツール

ツール名(enabled_tools 配列の値)用途典型的なシナリオ
BashShell コマンド実行依存関係インストール、スクリプト実行、curl で API 呼び出し
Readファイル読み取りマウントされたファイルの参照、コードリーディング
Writeファイル書き込み(作成/上書き)レポート生成、成果物出力
Editファイル部分編集設定変更、コード修正
Globワイルドカードによるファイル一覧コードファイルの検索
Grepファイル内容検索文字列の特定
WebFetchHTTP GET 単一ページドキュメント/ページの取得
WebSearchWeb 検索資料の検索
DeliverArtifactsAgent が /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 配列で具体的なツールのオン・オフを切り替えます:
{
  "tools": [
    {
      "type": "agent_toolset_20260401",
      "enabled_tools": ["Bash", "Read", "Write", "Edit", "Glob", "Grep", "WebFetch", "WebSearch"]
    }
  ]
}
Agent 作成時に設定:
curl -X POST https://api.qoder.com/api/v1/cloud/agents \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "dev-agent",
    "model": "ultimate",
    "instructions": "あなたは開発アシスタントです",
    "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 で Agent の新バージョンを作成し、ツール構成を更新します:
curl -X PUT https://api.qoder.com/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 フィールドで楽観的同時実行制御を行う必要があります:
  • 渡した version が現在のバージョンと一致 → 200、version + 1
  • 期限切れの version を渡した → 409 { error: { type: "conflict_error", message: "Version conflict. Expected version N, got M." }}
既存の Session には影響せず、新しい Session が更新後の構成を使用します。

curl で現在のツール構成を確認

curl https://api.qoder.com/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: Agent は利用可能なツールを持たず、純粋なテキスト対話のみ可能です。Agent にツール機能を持たせるには、少なくとも [{"type":"agent_toolset_20260401"}] を渡してください(すべての組み込みツールが有効化されます)。 Q: Session レベルでツール構成を上書きできますか? A: 現在はサポートされていません。ツール構成は Agent にバインドされ、同じ Agent のすべての Session が同じツールセットを共有します。 Q: tools 配列の順序は重要ですか? A: 重要ではありません。Agent はタスクのコンテキストに基づき、自律的にどのツールを呼び出すかを判断します。 Q: 版本サフィックスは時間とともに変わりますか? A: 変わります。新しいバージョンのツールがリリースされると、新しい日付サフィックスが追加されます。Changelog をご確認の上、最新のサフィックスをご利用ください。