Claude Platform Docs
Managed Agentsエージェントを定義

ツール

エージェントで利用可能なツールを設定します。

Claude Managed Agentsは、Claudeがセッション内で自律的に使用できる一連の組み込みツールを提供します。エージェント設定でツールを指定することで、どのツールを利用可能にするかを制御できます。

Claude Managed Agentsは、カスタムのユーザー定義ツールもサポートしています。アプリケーションがこれらのツールを別途実行し、結果をClaudeに返すと、Claudeはその結果を使用してタスクを続行します。MCPサーバーからエージェントにツールを提供するには、代わりにMCPコネクターを使用してください。

利用可能なツール

エージェントツールセットには、以下のツールが含まれています。エージェント設定にツールセットを含めると、すべてのツールがデフォルトで有効になります。

ツール名前説明
Bashbashシェルセッションでbashコマンドを実行する
Readreadサンドボックスファイルシステムからファイルを読み取る
Writewriteサンドボックスファイルシステムにファイルを書き込む
Editeditファイル内で文字列置換を実行する
Globglobglobパターンを使用した高速なファイルパターンマッチング
Grepgrep正規表現パターンを使用したテキスト検索
Web fetchweb_fetchURLからコンテンツを取得する
Web searchweb_searchWebで情報を検索する

ツールの出力が100,000文字(約25,000トークン)を超えると、自動的にサンドボックス内のファイルに書き込まれます。モデルはファイルパスを含む切り詰められたプレビューを受け取り、そこから完全な内容を読み取ることができます。

ツールセットの設定

エージェントを作成する際に、agent_toolset_20260401で完全なツールセットを有効にします。特定のツールを無効にしたり、その設定を上書きしたりするには、configs配列を使用します。各エントリはnameによって識別され、その値には利用可能なツールの「名前」列の値を指定します。エントリには、同じ値を持つオプションのtypeフィールドも指定できます。

各設定エントリでは、permission_policyも設定できます。このポリシーは、ツールの呼び出しを確認なしで実行するか、確認を必要とするか、またはサーバーによって個別に評価するかを制御します。利用可能なポリシーの種類については、権限ポリシーを参照してください。

次の例では、ツールセットを有効にし、web_fetchを無効にしています。

ant apply agent.md
agent.md
---
name: Coding Assistant
model: claude-opus-5-5
tools:
  - type: agent_toolset_20260401
    configs:
      - name: web_fetch
        enabled: false
---

特定のツールを無効にする

ツールを無効にするには、そのconfigsエントリでenabled: falseを設定します。

{
  "type": "agent_toolset_20260401",
  "configs": [
    { "name": "web_fetch", "enabled": false },
    { "name": "web_search", "enabled": false }
  ]
}

特定のツールのみを有効にする

default_configオブジェクトはセット内のすべてのツールのベースラインを設定し、ツールごとのconfigsエントリがそれを上書きします。すべてをオフにした状態から始めて必要なものだけを有効にするには、default_config.enabledをfalseに設定します。

{
  "type": "agent_toolset_20260401",
  "default_config": { "enabled": false },
  "configs": [
    { "name": "bash", "enabled": true },
    { "name": "read", "enabled": true },
    { "name": "write", "enabled": true }
  ]
}

Web検索とWebフェッチの制限

web_searchおよびweb_fetchエントリでは、ドメインリスト、取得するコンテンツの上限、検索ロケーションも指定できます。Web検索とWebフェッチのドメインを制限するを参照してください。

SDKにおける設定エントリの型

Python、TypeScript、Go、Java、C#、Ruby、およびPHPのSDKでは、各configsエントリがツールごとに型付けされています。この型は組み込みツールごとに1つのメンバーを持つユニオン型で、typeによって判別されます。

Go、Java、C#、およびPHPでは、プレーンな辞書やハッシュではなく、型付きの値からエントリを構築します。これらのSDKでは、configsの要素型はユニオン型そのものであるため、各エントリはツールごとのメンバー型から構築してください。

サーバーがnameから推論するため、エントリを構築する際にtypeは省略できます。レスポンスには常に含まれます。この型付けによって、エントリがシリアライズされるJSONが変わることはありません。エントリでname、enabled、permission_policyのみを設定したリクエストは、typeの有無にかかわらず有効です。

カスタムツール

カスタムツールは、Messages APIにおけるユーザー定義のクライアントツールに相当します。利用可能な操作とその戻り値を指定すると、Claudeがいつどのようにそれらを呼び出すかを判断します。

Claudeはカスタムツールを自ら実行しません。Claudeは構造化されたリクエストを出力し、コードがその操作を実行して、結果をセッションに返します。

次の例では、組み込みツールセットと1つのカスタムツールget_weatherを持つエージェントを作成しています。

ant apply agent.md
agent.md
---
name: Weather Agent
model: claude-opus-5-5
tools:
  - type: agent_toolset_20260401
  - type: custom
    name: get_weather
    description: Get current weather for a location
    input_schema:
      type: object
      properties:
        location:
          type: string
          description: City name
      required:
        - location
---

カスタムツールの名前は、mcp__またはant__で始めることはできず、組み込みエージェントツールの名前と一致させることもできません。このルールに違反するリクエストは400エラーを返します。名前がant__で始まるカスタムツールをすでに持つエージェントは、その名前を含まないtoolsを送信する更新のみを受け付けるため、次回の更新でそのツールの名前を変更するか削除してください。そのようなツールが、(オーバーライド適用後の)セッションのエージェント、subagentsのpredefined_agentsリスト内のエージェント、またはworkflowsのpredefined_agentsリスト内のエージェントに存在する場合、新しいセッションは400エラーで拒否されます。既存のセッションは影響を受けません。

エージェントはセッション中にカスタムツールを呼び出します。呼び出しを受け取って結果を返す方法については、セッションイベントストリームを参照してください。

セルフホスト型サンドボックスで実行されるセッションでは、環境ワーカーがサンドボックスからカスタムツールを提供できます。これには、ネットワーク内のMCPサーバーをラップするツールを含めることができます。

カスタムツール定義のベストプラクティス

  • 非常に詳細な説明を提供してください。 これはツールのパフォーマンスにおいて圧倒的に重要な要素です。ツールについてClaudeに提供できるコンテキストが多いほど、Claudeはいつどのようにツールを使用すべきかをより適切に判断できます。各ツールの説明は3〜4文を目安とし、ツールが複雑な場合はそれ以上にしてください。説明には以下を含める必要があります。
    • ツールが何をするか
    • いつ使用すべきか、またいつ使用すべきでないか
    • 各パラメータの意味と、それがツールの動作にどう影響するか
    • 重要な注意事項や制限
  • 関連する操作をより少ないツールに統合してください。 create_pr、review_pr、merge_prなどのアクションを、actionパラメータを持つ単一のツールにまとめます。より少なく、より高機能なツールにすることで選択の曖昧さが減り、Claudeがツール群を扱いやすくなります。
  • ツール名に意味のある名前空間を使用してください。 ツールが複数のサービスやリソースにまたがる場合は、名前の先頭にリソースを付けてください(たとえばdb_queryやstorage_read)。これにより、ライブラリが拡大してもツールの選択が明確になります。
  • ツールのレスポンスは有用性の高い情報のみを返すように設計してください。 不透明な内部参照ではなく、意味のある安定した識別子(例:スラッグやUUID)を返します。Claudeが次のステップを判断するのに必要なフィールドのみを含めてください。肥大化したレスポンスはコンテキストを浪費し、Claudeが重要な情報を抽出しにくくなります。

次のステップ

Webツールがアクセスできるサイトを制御し、取得するコンテンツに上限を設け、検索結果をローカライズします。

MCPサーバーをエージェントに接続して、外部ツールやデータソースにアクセスします。

エージェントツールとMCPツールがいつ実行されるかを制御します。

イベントを送信し、レスポンスをストリーミングし、実行中のセッションを中断またはリダイレクトします。

Was this page helpful?