メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://docs.qoder.com/llms.txt

Use this file to discover all available pages before exploring further.

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

ツールの役割

Agent はタスク実行時に、tools 構成に基づいて呼び出せる機能を判断します。すべてのツールは単一オブジェクト { "type": "agent_toolset_20260401", "enabled_tools": [...] } で構成し、enabled_tools 配列でアトミックなツールを必要に応じて有効化します。 構成されていないツールは、Agent が呼び出そうとしません。

利用可能なツール

ツール名(enabled_tools 配列の値)用途典型的なシナリオ
BashShell コマンド実行依存関係インストール、スクリプト実行、curl で API 呼び出し
Readファイル読み取りマウントされたファイルの参照、コードリーディング
Writeファイル書き込み(作成/上書き)レポート生成、成果物出力
Editファイル部分編集設定変更、コード修正
Globワイルドカードによるファイル一覧コードファイルの検索
Grepファイル内容検索文字列の特定
WebFetchHTTP GET 単一ページドキュメント/ページの取得
WebSearchWeb 検索資料の検索
注意事項:
  • ツール名は先頭大文字(Bash であって bash ではない)。イベントストリームでも大文字形式
  • enabled_tools は空配列にできない(空配列 = ツール 0 個で、session が processing に入った後も永久に応答しない)
  • enabled_tools に未知のツール名(例:"Foo")を記述するとサーバーはサイレントに受け入れるが、agent は実際にはそのツールを取得できない
  • ツールごとに 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 は利用可能なツールを持たず、純粋なテキスト対話のみ可能です。 Q: Session レベルでツール構成を上書きできますか? A: 現在はサポートされていません。ツール構成は Agent にバインドされ、同じ Agent のすべての Session が同じツールセットを共有します。 Q: tools 配列の順序は重要ですか? A: 重要ではありません。Agent はタスクのコンテキストに基づき、自律的にどのツールを呼び出すかを判断します。 Q: 版本サフィックスは時間とともに変わりますか? A: 変わります。新しいバージョンのツールがリリースされると、新しい日付サフィックスが追加されます。Changelog をご確認の上、最新のサフィックスをご利用ください。