Claude Managed Agentsは、Claudeがセッション内で自律的に使用できる組み込みツールのセットを提供します。エージェント設定でツールを指定することで、利用可能なツールを制御できます。
Claude Managed Agentsは、ユーザー定義のカスタムツールもサポートしています。アプリケーションがこれらのツールを個別に実行し、結果をClaudeに返すと、Claudeはそれを使用してタスクを続行します。MCPサーバーからエージェントにツールを提供するには、代わりにMCPコネクタを使用してください。
エージェントツールセットには以下のツールが含まれています。エージェント設定にツールセットを含めると、すべてがデフォルトで有効になります。configs配列の各エントリは、「名前」列の値を使用したnameで識別され、同じ値を持つオプションのtypeフィールドを受け入れます。web_searchおよびweb_fetchエントリは追加の設定を受け入れます。詳細はウェブ検索とウェブ取得のドメインを制限するを参照してください。
| ツール | 名前 | 説明 |
|---|---|---|
| Bash | bash | シェルセッションでbashコマンドを実行します |
| Read | read | サンドボックスのファイルシステムからファイルを読み取ります |
| Write | write | サンドボックスのファイルシステムにファイルを書き込みます |
| Edit | edit | ファイル内で文字列置換を実行します |
| Glob | glob | globパターンを使用した高速なファイルパターンマッチング |
| Grep | grep | 正規表現パターンを使用したテキスト検索 |
| Web fetch | web_fetch | URLからコンテンツを取得します |
| Web search | web_search | ウェブで情報を検索します |
ツールの出力が100,000文字(約25,000トークン)を超えると、自動的にサンドボックス内のファイルに書き込まれます。モデルはファイルパスとともに切り詰められたプレビューを受け取り、そこから完全なコンテンツを読み取ることができます。
エージェントを作成する際にagent_toolset_20260401を指定して、完全なツールセットを有効にします。特定のツールを無効にしたり、その設定を上書きしたりするには、configs配列を使用します。各設定エントリには、ツールの呼び出しが自動承認されるか確認が必要かを制御するpermission_policyも設定できます。利用可能なポリシータイプについては、権限ポリシーを参照してください。
web_searchおよびweb_fetchの設定エントリは、ドメインフィルターやその他のウェブ設定も受け入れます。詳細はウェブ検索とウェブ取得のドメインを制限するを参照してください。
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配列内のツールセットオブジェクトの設定エントリで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 }
]
}エージェントのウェブツールがアクセスできるサイトを制御するには、ツールセットの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に加えて、ウェブツールのエントリは以下の設定を受け入れます。
| 設定 | 適用対象 | 説明 |
|---|---|---|
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_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?