Claude Managed Agentsは、Claudeがセッション内で自律的に使用できる一連の組み込みツールを提供します。エージェント設定でツールを指定することで、どのツールを利用可能にするかを制御できます。
Claude Managed Agentsは、ユーザー定義のカスタムツールもサポートしています。アプリケーションがこれらのツールを別途実行し、結果をClaudeに返すと、Claudeはその結果を使用してタスクを続行します。MCPサーバーのツールをエージェントに提供するには、代わりにMCPコネクターを使用してください。
エージェントツールセットには以下のツールが含まれています。エージェント設定にツールセットを含めると、すべてがデフォルトで有効になります。configs配列の各エントリは、Name列の値を使用したnameによって識別され、同じ値を持つオプションのtypeフィールドを受け付けます。web_searchおよびweb_fetchエントリは追加の設定を受け付けます。Web検索とWebフェッチのドメインを制限するを参照してください。
| ツール | Name | 説明 |
|---|---|---|
| Bash | bash | シェルセッションでbashコマンドを実行する |
| Read | read | サンドボックスのファイルシステムからファイルを読み取る |
| Write | write | サンドボックスのファイルシステムにファイルを書き込む |
| Edit | edit | ファイル内で文字列置換を実行する |
| Glob | glob | globパターンを使用した高速なファイルパターンマッチング |
| Grep | grep | 正規表現パターンを使用したテキスト検索 |
| Web fetch | web_fetch | URLからコンテンツを取得する |
| Web search | web_search | Webで情報を検索する |
ツールの出力が100,000文字(約25,000トークン)を超えると、自動的にサンドボックス内のファイルに書き込まれます。モデルはファイルパスを含む切り詰められたプレビューを受け取り、そこから完全な内容を読み取ることができます。
エージェントを作成する際に、agent_toolset_20260401で完全なツールセットを有効にします。configs配列を使用して、特定のツールを無効にしたり、その設定を上書きしたりできます。各configエントリには、ツールの呼び出しを自動承認するか確認を必要とするかを制御するpermission_policyを設定することもできます。利用可能なポリシータイプについては、権限ポリシーを参照してください。
web_searchおよびweb_fetchのconfigエントリは、ドメインフィルターやその他のWeb設定も受け付けます。Web検索とWebフェッチのドメインを制限するを参照してください。
ant beta:agents create <<'YAML'
name: Coding Assistant
model: claude-opus-5
tools:
- type: agent_toolset_20260401
configs:
- name: web_fetch
enabled: false
YAMLツールを無効にするには、エージェントのtools配列内のツールセットオブジェクトにある該当ツールのconfigエントリで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ツールがアクセスできるサイトを制御するには、ツールセットのconfigs配列のweb_searchおよびweb_fetchエントリにallowed_domains(ツールはこれらのホストにのみアクセスできる)またはblocked_domains(ツールはこれらのホストに決してアクセスできない)を設定します。各ツールは独自のリストを持つため、web_searchとweb_fetchで異なる制限を設けることができます。リストに記載されたドメインは、そのホストとそのすべてのサブドメインを対象とします。実行時に、リストで許可されていないURLに対するweb_fetch呼び出しは、エージェントにエラー結果を返します(agent.tool_resultイベントでis_error: trueとなり、コンテンツにエラーコードurl_not_allowedが記載されます)。また、web_searchはリストで許可されていない結果を除外します。
以下のツールセットは、web_searchを2つのサイトに制限して結果をローカライズし、web_fetchについては1つのホストをブロックしつつ、取得したコンテンツがコンテキストに入る量に上限を設けています。
{
"type": "agent_toolset_20260401",
"configs": [
{
"type": "web_search",
"name": "web_search",
"allowed_domains": ["docs.example.com", "arxiv.org"],
"user_location": {
"type": "approximate",
"country": "US",
"timezone": "America/Los_Angeles"
}
},
{
"type": "web_fetch",
"name": "web_fetch",
"blocked_domains": ["ads.example.com"],
"max_content_tokens": 50000
}
]
}以下のリクエストは、このツールセットを持つエージェントを作成し、レスポンスのconfigs配列を出力します。
ant beta:agents create --transform tools.0.configs <<'YAML'
name: Research Agent
model: claude-opus-5
tools:
- type: agent_toolset_20260401
configs:
- type: web_search
name: web_search
allowed_domains: [docs.example.com, arxiv.org]
user_location:
type: approximate
country: US
timezone: America/Los_Angeles
- type: web_fetch
name: web_fetch
blocked_domains: [ads.example.com]
max_content_tokens: 50000
YAMLClaude Consoleでは、エージェントフォームのBuilt-in toolsカードのweb_searchおよびweb_fetch行から許可ドメインまたはブロックドメインを設定します。max_content_tokensとuser_locationは、エージェント設定のRawビューで設定します。
enabledとpermission_policyに加えて、Webツールのエントリは以下の設定を受け付けます。
| 設定 | 適用対象 | 説明 |
|---|---|---|
allowed_domains | web_search, web_fetch | ツールがアクセスできる唯一のホスト。同じエントリでblocked_domainsと組み合わせることはできません。 |
blocked_domains | web_search, web_fetch | ツールがアクセスできないホスト。 |
max_content_tokens | web_fetch | コンテキストに含まれる取得済みページコンテンツの量に上限を設けます。正の整数である必要があります。コンテンツ制限を参照してください。 |
user_location | web_search | 検索結果をローカライズします。Messages APIのuser_locationパラメータと同じフィールドを持つオブジェクトです。 |
allowed_domainsまたはblocked_domainsのいずれかを設定し、両方は設定しないでください。両方を設定したエントリは拒否されます。nullを送信してください。web_searchパスサフィックス以外のパスを含みません。https://example.com、example.com:443、*.example.comではなく、example.comを使用してください。ホスト名は大文字小文字を区別せずに比較され、末尾の単一の/は無視されます。example.comはdocs.example.comを対象としますが、docs.example.comはexample.comやapi.example.comを対象としません。先頭のwww.は他のサブドメインと同様のサブドメインであるため、www.example.comはexample.comを対象としません。両方を対象とするには、ベアドメインを記載してください。127.1のような数値省略形など、いかなる形式でも受け付けられません。代わりにサイトのドメイン名を記載してください。com、co.uk、gov.ukのようなベアのトップレベルドメインやレジストリサフィックスは拒否され、intranetのような単一ラベルの名前も同様に拒否されます。example.co.ukのような完全なドメインを記載してください。localhost、および.localhost、.local、.internal、.localdomain、.invalidで終わるホストは拒否されます。xn--(Punycode)形式を使用してください。非ASCII文字を含むドメインは拒否されます。web_fetchのドメインにはパスを含めることができません。example.com/*ではなくexample.comを使用してください。web_searchのドメインはexample.com/blogのようなパスサフィックスを持つことができますが、そのパスにはスペース、?、#、または$ , | ^ !のいずれの文字も含めることができません。検索プロバイダーはパスサフィックスを厳密なホストルールではなくURLパターンとして照合するため、web_searchでもプレーンなホスト名を推奨します。www.example.comとexample.comは異なるドメインとしてカウントされます。それぞれが何を対象とするかについては、前述の一致ルールを参照してください。形式および制限の違反は、エージェントを作成またはエージェントを更新する際、およびtoolsを指定するセッションを作成または更新する際に、400 invalid_request_errorで拒否されます。たとえば、両方のリストを設定したエントリに対するメッセージにはOnly one of allowed_domains or blocked_domains may be set.が含まれ、空のリストに対するメッセージにはallowed_domains: Empty list of domains is ambiguous. Provide at least one domain or null.が含まれます。形式ルールに違反するドメインに対するメッセージには、そのリスト名とゼロベースの位置が記載されます。たとえばallowed_domains.0: IP addresses are not supported; provide a plain hostname like "example.com"のようになります。
同じリクエストでは、検索およびフェッチプロバイダーに依存する3つの設定も拒否されます。Anthropicのクローラーがアクセスを許可されていないallowed_domains内のドメイン、検索プロバイダーがサポートしていないuser_location.country(メッセージはuser_location.country: not a country the search provider supportsで終わります)、および有効なIANA名ではないuser_location.timezoneです。セッションは、ツールを最初に初期化する際に設定を再度チェックします。以前に受け付けられた設定がその時点で有効でなくなっている場合、セッションはsession.errorイベントを発行し、再試行せずにidleに戻ります。セッションのツールを更新して設定を修正し、新しいセッションが修正済みの設定で開始されるようにエージェントも更新してから、新しいuser.messageを送信して続行してください。
マルチエージェントセッションでは、スレッドに適用されるすべてのドメインリストが同時に適用されます。コーディネーターのロスターに含まれるエージェントは、自身のallowed_domainsとblocked_domains、それを呼び出したエージェントのリスト、およびコーディネーターの現在のリストによって制約されます。
blocked_domainsを設定したロスターエージェントはコーディネーターのallowed_domainsを維持しつつその中でそれらのホストをブロックし、独自のallowed_domainsを設定したロスターエージェントは、自身のリストとコーディネーターのリストの両方が対象とするホストにのみアクセスできます。url_not_allowedエラーで失敗し、ツールの説明でもモデルにその旨が伝えられます。これを避けるには、各ロスターエージェントの許可リストをコーディネーターの許可リストの範囲内に収めてください。max_content_tokensとuser_locationは結合されません。スレッドは、自身のツール設定に値が設定されていればその値を使用し、そうでなければそれを呼び出したエージェントの値を、さらにそうでなければコーディネーターの現在の設定の値を使用します。{"type": "self"}ロスターエントリは独自のWeb設定を持たず、コーディネーターの現在の設定に従います。web_searchとweb_fetchなしで実行されます。これらの設定は、Messages APIサーバーツールのドメインフィルタリングと同じallowed_domainsおよびblocked_domainsの語彙を使用しますが、Managed Agentsでは以下の違いがあります。
web_fetchに記載するドメインにはパスを含めることができません。max_uses、citations、cache_controlはツールセットでは利用できません。組み込みツールに加えて、カスタムツールを定義できます。カスタムツールは、Messages APIのユーザー定義クライアントツールに相当します。
各カスタムツールは契約を定義します。どのような操作が利用可能で何を返すかを指定し、Claudeがいつどのように呼び出すかを判断します。モデル自身が何かを実行することは決してありません。モデルは構造化されたリクエストを発行し、あなたのコードが操作を実行し、結果が会話に戻されます。セッション中にカスタムツール呼び出しを受け取り結果を返す方法については、セッションイベントストリームを参照してください。
セッションがセルフホストサンドボックスで実行される場合、環境ワーカーは、ネットワーク内のMCPサーバーをラップするツールを含め、サンドボックスからカスタムツールを提供できます。
ant beta:agents create < agent.yamlname: Weather Agent
model: claude-opus-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エージェントにカスタムツールを定義すると、エージェントはセッション中にそれらを呼び出します。
create_pr、review_pr、merge_pr)ごとに個別のツールを作成するのではなく、actionパラメータを持つ単一のツールにまとめてください。より少なく、より高機能なツールにすることで、選択の曖昧さが減り、Claudeがツール群を把握しやすくなります。db_queryやstorage_read)。これにより、ライブラリが拡大してもツールの選択が明確になります。MCPサーバーをエージェントに接続して、外部ツールやデータソースにアクセスします。
エージェントツールとMCPツールがいつ実行されるかを制御します。
イベントの送信、レスポンスのストリーミング、実行中のセッションの中断やリダイレクトを行います。
Was this page helpful?