---
title: Web検索とWebフェッチのドメインを制限する
url: https://platform.claude.com/docs/ja/managed-agents/tools-web-restrictions
description: エージェントのWeb検索ツールとWebフェッチツールがアクセスできるサイトを制御し、取得するコンテンツに上限を設け、検索結果をローカライズします。
featureMetadata:
  topic:
    title: Managed Agents
    url: https://platform.claude.com/docs/en/managed-agents/overview
  status: beta
  betaHeader: managed-agents-2026-04-01
---

エージェントのWebツールがアクセスできるサイトを制御するには、[エージェントツールセット](https://platform.claude.com/docs/ja/managed-agents/tools#configuring-the-toolset)の`web_search`エントリと`web_fetch`エントリにドメインリストを設定します。これらの`configs` (csharp, go: `Configs`)エントリはそれぞれ、次の2つのリストのいずれかを受け付けます。

* **`allowed_domains` (java, php: `allowedDomains`; csharp, go: `AllowedDomains`)：** ツールはこれらのホストにのみアクセスできます。
* **`blocked_domains` (java, php: `blockedDomains`; csharp, go: `BlockedDomains`)：** ツールはこれらのホストには決してアクセスできません。

各ツールはそれぞれ独自のリストを持つため、`web_search`と`web_fetch`に異なる制限を設定できます。

<Note>
  `web_search`と`web_fetch`はサンドボックス内ではなく、Anthropicのサーバー上で実行されます。`limited`の[ネットワーキング](https://platform.claude.com/docs/ja/managed-agents/environments#networking)を持つクラウド環境では、その`allowed_hosts` (java, php: `allowedHosts`; csharp, go: `AllowedHosts`)もこれらのツールに適用されます。[エージェントにドメインリストを設定する](https://platform.claude.com/docs/ja/managed-agents/tools-web-restrictions#set-domain-lists-on-an-agent)を参照してください。`unrestricted`のネットワーキングおよびセルフホスト環境では、これらのツールは制限されません。ツールごとのリストは、これらのツールをさらに制限します。Claude Consoleの組織レベルのWeb検索およびWebフェッチの設定はMessages APIに適用されます。Managed Agentsのセッションには適用されません。
</Note>

## エージェントにドメインリストを設定する

次の例では、`web_search`を2つのサイトに制限し、`web_fetch`に対して1つのホストをブロックするエージェントを作成します。また、`user_location` (java, php: `userLocation`; csharp, go: `UserLocation`)と`max_content_tokens` (java, php: `maxContentTokens`; csharp, go: `MaxContentTokens`)も設定します。これらについては[設定](https://platform.claude.com/docs/ja/managed-agents/tools-web-restrictions#settings)で説明しています。その後、この例ではレスポンスから`configs` (csharp, go: `Configs`)配列を出力します。

<CodeGroup defaultLanguage="CLI">
  ```bash cURL
  agent=$(curl -fsSL https://api.anthropic.com/v1/agents \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "anthropic-beta: managed-agents-2026-04-01" \
    -H "content-type: application/json" \
    -d '{
      "name": "Research Agent",
      "model": "claude-opus-5-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
            }
          ]
        }
      ]
    }'
  )
  jq '.tools[0].configs' <<< "$agent"
  ```

  <CodeGroupItem>
    ```bash CLI
    ant apply agent.md
    ```

    <File filename="agent.md">
      ```markdown
      ---
      name: Research Agent
      model: claude-opus-5-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
      ---
      ```
    </File>

    [`ant apply`](https://platform.claude.com/docs/ja/cli-sdks-libraries/cli/apply)はエージェントを作成してそのIDを出力しますが、`configs`配列は出力しません。
  </CodeGroupItem>

  ```python Python
  client = Anthropic()

  agent = client.beta.agents.create(
      name="Research Agent",
      model="claude-opus-5-5",
      tools=[
          {
              "type": "agent_toolset_20260401",
              "configs": [
                  {
                      "name": "web_search",
                      "allowed_domains": ["docs.example.com", "arxiv.org"],
                      "user_location": {
                          "type": "approximate",
                          "country": "US",
                          "timezone": "America/Los_Angeles",
                      },
                  },
                  {
                      "name": "web_fetch",
                      "blocked_domains": ["ads.example.com"],
                      "max_content_tokens": 50_000,
                  },
              ],
          }
      ],
  )

  for tool in agent.tools:
      if tool.type == "agent_toolset_20260401":
          print(json.dumps([config.to_dict() for config in tool.configs], indent=2))
  ```

  ```typescript TypeScript
  const client = new Anthropic();

  const agent = await client.beta.agents.create({
    name: "Research Agent",
    model: "claude-opus-5-5",
    tools: [
      {
        type: "agent_toolset_20260401",
        configs: [
          {
            name: "web_search",
            allowed_domains: ["docs.example.com", "arxiv.org"],
            user_location: {
              type: "approximate",
              country: "US",
              timezone: "America/Los_Angeles"
            }
          },
          {
            name: "web_fetch",
            blocked_domains: ["ads.example.com"],
            max_content_tokens: 50_000
          }
        ]
      }
    ]
  });

  for (const tool of agent.tools) {
    if (tool.type === "agent_toolset_20260401") {
      console.log(JSON.stringify(tool.configs, null, 2));
    }
  }
  ```

  ```csharp C#
  using Anthropic.Models.Beta.Agents;

  AnthropicClient client = new();

  var agent = await client.Beta.Agents.Create(new()
  {
      Name = "Research Agent",
      Model = BetaManagedAgentsModel.ClaudeOpus5_5,
      Tools =
      [
          new BetaManagedAgentsAgentToolset20260401Params
          {
              Type = BetaManagedAgentsAgentToolset20260401ParamsType.AgentToolset20260401,
              Configs =
              [
                  new BetaManagedAgentsWebSearchToolConfigParams
                  {
                      AllowedDomains = ["docs.example.com", "arxiv.org"],
                      UserLocation = new()
                      {
                          Country = "US",
                          Timezone = "America/Los_Angeles",
                      },
                  },
                  new BetaManagedAgentsWebFetchToolConfigParams
                  {
                      BlockedDomains = ["ads.example.com"],
                      MaxContentTokens = 50_000,
                  },
              ],
          },
      ],
  });

  JsonSerializerOptions jsonOptions = new() { WriteIndented = true };
  foreach (var tool in agent.Tools)
  {
      if (tool.TryPickBetaManagedAgentsAgentToolset20260401(out var toolset))
      {
          Console.WriteLine(JsonSerializer.Serialize(toolset.Configs, jsonOptions));
      }
  }
  ```

  ```go Go
  client := anthropic.NewClient()
  ctx := context.Background()

  agent, err := client.Beta.Agents.New(ctx, anthropic.BetaAgentNewParams{
  	Name: "Research Agent",
  	Model: anthropic.BetaManagedAgentsModelConfigParams{
  		ID: anthropic.BetaManagedAgentsModelClaudeOpus5_5,
  	},
  	Tools: []anthropic.BetaAgentNewParamsToolUnion{{
  		OfAgentToolset20260401: &anthropic.BetaManagedAgentsAgentToolset20260401Params{
  			Type: anthropic.BetaManagedAgentsAgentToolset20260401ParamsTypeAgentToolset20260401,
  			Configs: []anthropic.BetaManagedAgentsAgentToolConfigParamsUnion{
  				{OfWebSearch: &anthropic.BetaManagedAgentsWebSearchToolConfigParams{
  					AllowedDomains: []string{"docs.example.com", "arxiv.org"},
  					UserLocation: anthropic.BetaManagedAgentsUserLocationParam{
  						Country:  anthropic.String("US"),
  						Timezone: anthropic.String("America/Los_Angeles"),
  					},
  				}},
  				{OfWebFetch: &anthropic.BetaManagedAgentsWebFetchToolConfigParams{
  					BlockedDomains:   []string{"ads.example.com"},
  					MaxContentTokens: anthropic.Int(50000),
  				}},
  			},
  		},
  	}},
  })
  if err != nil {
  	panic(err)
  }

  for _, tool := range agent.Tools {
  	switch toolset := tool.AsAny().(type) {
  	case anthropic.BetaManagedAgentsAgentToolset20260401:
  		configs := make([]json.RawMessage, len(toolset.Configs))
  		for i, config := range toolset.Configs {
  			configs[i] = json.RawMessage(config.RawJSON())
  		}
  		output, err := json.MarshalIndent(configs, "", "  ")
  		if err != nil {
  			panic(err)
  		}
  		fmt.Println(string(output))
  	}
  }
  ```

  ```java Java
  import com.anthropic.models.beta.agents.AgentCreateParams;
  import com.anthropic.models.beta.agents.BetaManagedAgentsAgentToolset20260401Params;
  import com.anthropic.models.beta.agents.BetaManagedAgentsModel;
  import com.anthropic.models.beta.agents.BetaManagedAgentsUserLocation;
  import com.anthropic.models.beta.agents.BetaManagedAgentsWebFetchToolConfigParams;
  import com.anthropic.models.beta.agents.BetaManagedAgentsWebSearchToolConfigParams;

  void main() {
      var client = AnthropicOkHttpClient.fromEnv();

      var agent = client.beta().agents().create(AgentCreateParams.builder()
          .name("Research Agent")
          .model(BetaManagedAgentsModel.CLAUDE_OPUS_5_5)
          .addTool(BetaManagedAgentsAgentToolset20260401Params.builder()
              .type(BetaManagedAgentsAgentToolset20260401Params.Type.AGENT_TOOLSET_20260401)
              .addConfig(BetaManagedAgentsWebSearchToolConfigParams.builder()
                  .allowedDomains(List.of("docs.example.com", "arxiv.org"))
                  .userLocation(BetaManagedAgentsUserLocation.builder()
                      .country("US")
                      .timezone("America/Los_Angeles")
                      .build())
                  .build())
              .addConfig(BetaManagedAgentsWebFetchToolConfigParams.builder()
                  .blockedDomains(List.of("ads.example.com"))
                  .maxContentTokens(50_000)
                  .build())
              .build())
          .build());

      for (var tool : agent.tools()) {
          if (tool.isAgentToolset20260401()) {
              var configs = tool.asAgentToolset20260401().configs();
              IO.println(ObjectMappers.jsonMapper().valueToTree(configs));
          }
      }
  }
  ```

  ```php PHP
  use Anthropic\Beta\Agents\BetaManagedAgentsAgentToolset20260401;
  use Anthropic\Beta\Agents\BetaManagedAgentsAgentToolset20260401Params;
  use Anthropic\Beta\Agents\BetaManagedAgentsUserLocation;
  use Anthropic\Beta\Agents\BetaManagedAgentsWebFetchToolConfigParams;
  use Anthropic\Beta\Agents\BetaManagedAgentsWebSearchToolConfigParams;
  // ...

  $client = new Client();

  $agent = $client->beta->agents->create(
      name: 'Research Agent',
      model: 'claude-opus-5-5',
      tools: [
          BetaManagedAgentsAgentToolset20260401Params::with(
              type: 'agent_toolset_20260401',
              configs: [
                  BetaManagedAgentsWebSearchToolConfigParams::with(
                      allowedDomains: ['docs.example.com', 'arxiv.org'],
                      userLocation: BetaManagedAgentsUserLocation::with(
                          country: 'US',
                          timezone: 'America/Los_Angeles',
                      ),
                  ),
                  BetaManagedAgentsWebFetchToolConfigParams::with(
                      blockedDomains: ['ads.example.com'],
                      maxContentTokens: 50_000,
                  ),
              ],
          ),
      ],
  );

  foreach ($agent->tools as $tool) {
      if ($tool instanceof BetaManagedAgentsAgentToolset20260401) {
          echo json_encode($tool->configs, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES), PHP_EOL;
      }
  }
  ```

  ```ruby Ruby
  client = Anthropic::Client.new

  agent = client.beta.agents.create(
    name: "Research Agent",
    model: "claude-opus-5-5",
    tools: [
      {
        type: :agent_toolset_20260401,
        configs: [
          {
            name: :web_search,
            allowed_domains: ["docs.example.com", "arxiv.org"],
            user_location: {type: :approximate, country: "US", timezone: "America/Los_Angeles"}
          },
          {
            name: :web_fetch,
            blocked_domains: ["ads.example.com"],
            max_content_tokens: 50_000
          }
        ]
      }
    ]
  )

  case agent.tools.first
  in Anthropic::Models::Beta::BetaManagedAgentsAgentToolset20260401 => toolset
    puts JSON.pretty_generate(toolset.configs.map(&:to_h))
  end
  ```
</CodeGroup>

`limited`の[ネットワーキング](https://platform.claude.com/docs/ja/managed-agents/environments#networking)を持つクラウド環境では、環境の`allowed_hosts` (java, php: `allowedHosts`; csharp, go: `AllowedHosts`)も`web_search`と`web_fetch`に適用されます。有効なWebツールの`allowed_domains` (java, php: `allowedDomains`; csharp, go: `AllowedDomains`)に`allowed_hosts` (java, php: `allowedHosts`; csharp, go: `AllowedHosts`)の範囲外のエントリがある場合、セッションの作成は400エラーで失敗します。そのようなエントリを追加するセッションの更新も同様です。これを修正するには、ホストを`allowed_hosts` (java, php: `allowedHosts`; csharp, go: `AllowedHosts`)に追加するか、`allowed_domains` (java, php: `allowedDomains`; csharp, go: `AllowedDomains`)からエントリを削除します。実行時には、`allowed_hosts` (java, php: `allowedHosts`; csharp, go: `AllowedHosts`)に一致しないホスト上のURLに対する`web_fetch`呼び出しは、`url_not_allowed`エラー結果を返します。`web_search`はそのようなホストからの結果を除外します。2つのリストは一致の仕方が異なります。ツールのエントリはそのサブドメインもカバーしますが、`allowed_hosts` (java, php: `allowedHosts`; csharp, go: `AllowedHosts`)のエントリは`*.`で始まらない限り、1つの完全一致するホストにのみ一致します。たとえば、ツールのエントリ`docs.example.com`は`["example.com"]`の`allowed_hosts` (java, php: `allowedHosts`; csharp, go: `AllowedHosts`)の範囲内にはありませんが、`["docs.example.com"]`または`["*.example.com"]`の範囲内にはあります。

Claude Consoleでは、エージェントフォームの**Built-in tools**カードにある`web_search`および`web_fetch`の行から、許可またはブロックするドメインを設定します。`max_content_tokens`と`user_location`は、エージェントの設定の**Raw**ビューで設定します。

## 設定

`enabled` (csharp, go: `Enabled`)と`permission_policy` (java, php: `permissionPolicy`; csharp, go: `PermissionPolicy`)に加えて、Webツールのエントリは次の設定を受け付けます。

| 設定                                                                                   | 適用対象                     | 説明                                                                                                                                                                 |
| ------------------------------------------------------------------------------------ | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `allowed_domains` (java, php: `allowedDomains`; csharp, go: `AllowedDomains`)        | `web_search`、`web_fetch` | ツールがアクセスできる唯一のホスト。[ドメインリストのルール](https://platform.claude.com/docs/ja/managed-agents/tools-web-restrictions#domain-list-rules)を参照してください。                             |
| `blocked_domains` (java, php: `blockedDomains`; csharp, go: `BlockedDomains`)        | `web_search`、`web_fetch` | ツールがアクセスできないホスト。[ドメインリストのルール](https://platform.claude.com/docs/ja/managed-agents/tools-web-restrictions#domain-list-rules)を参照してください。                               |
| `max_content_tokens` (java, php: `maxContentTokens`; csharp, go: `MaxContentTokens`) | `web_fetch`              | コンテキストに含まれる取得したページコンテンツの量に上限を設けます。正の整数である必要があります。[コンテンツ制限](https://platform.claude.com/docs/ja/agents-and-tools/tool-use/web-fetch-tool#content-limits)を参照してください。  |
| `user_location` (java, php: `userLocation`; csharp, go: `UserLocation`)              | `web_search`             | 検索結果をローカライズします。Messages APIの[`user_location`](https://platform.claude.com/docs/ja/agents-and-tools/tool-use/web-search-tool#localization)パラメータと同じフィールドを持つオブジェクトです。 |

SDKがこれらのエントリをどのように型付けしているかについては、[SDKにおける設定エントリの型](https://platform.claude.com/docs/ja/managed-agents/tools#config-entry-types-in-the-sdks)を参照してください。

## ドメインが許可されていない場合

`web_search`は、そのドメインリストで許可されていない結果を除外します。ドメインリストで許可されていないURLに対する`web_fetch`呼び出しは、エージェントにエラー結果を返します。`agent.tool_result`イベントには`is_error: true`が含まれ、そのコンテンツにはエラーコード`url_not_allowed`が示されます。

## ドメインリストのルール

これらのルールは、`allowed_domains` (java, php: `allowedDomains`; csharp, go: `AllowedDomains`)と`blocked_domains` (java, php: `blockedDomains`; csharp, go: `BlockedDomains`)の両方に同様に適用されます。いずれかに違反するリクエストは、[検証エラー](https://platform.claude.com/docs/ja/managed-agents/tools-web-restrictions#validation-errors)で説明するとおり拒否されます。

* **エントリごとに1つのリスト：** エントリには`allowed_domains` (java, php: `allowedDomains`; csharp, go: `AllowedDomains`)または`blocked_domains` (java, php: `blockedDomains`; csharp, go: `BlockedDomains`)のいずれかを設定し、両方は設定しないでください。
* **リストのサイズ：** 各リストには1〜64個のドメインを含めることができ、各ドメインは1〜255文字です。
* **空のリストは不可：** 制限を適用しない場合は、フィールドを省略するか`null`を送信してください。
* **重複不可：** 1つのドメインはリスト内に1回しか出現できません。`www.example.com`と`example.com`は異なるドメインとして扱われます。

### リストに記載したドメインが一致する範囲

リストに記載したドメインは、そのホストとそのすべてのサブドメインに一致します。`example.com`は`docs.example.com`をカバーしますが、`docs.example.com`は`example.com`や`api.example.com`をカバーしません。

先頭の`www.`は他と同様のサブドメインであるため、`www.example.com`は`example.com`をカバーしません。両方をカバーするには、ベアドメインを記載してください。

ホスト名は大文字と小文字を区別せずに比較されます。

### ドメインの形式

各ドメインは、登録可能なドメイン名またはそのサブドメインであり、プレーンなホスト名として記述します。ASCII文字、数字、ハイフン、アンダースコア、ドットを含めることができます。末尾の単一の`/`は無視されます。

| 受け付けられないもの                             | 例                      | 代わりに使用するもの                |
| -------------------------------------- | ---------------------- | ------------------------- |
| スキーム                                   | `https://example.com`  | `example.com`             |
| ポート                                    | `example.com:443`      | `example.com`             |
| ワイルドカード                                | `*.example.com`        | `example.com`             |
| `web_fetch`ドメインのパス                     | `example.com/*`        | `example.com`             |
| IPv4、IPv6、角括弧付き、数値の省略形など、あらゆる形式のIPアドレス | `127.1`                | サイトのドメイン名                 |
| 単独のトップレベルドメインまたはレジストリサフィックス            | `com`、`co.uk`、`gov.uk` | `example.co.uk`などの完全なドメイン |
| 単一ラベルの名前                               | `intranet`             | `example.co.uk`などの完全なドメイン |
| 国際化ドメイン名に含まれるような非ASCII文字               |                        | `xn--`（Punycode）形式        |

認証情報や空白を含むドメイン、またはいずれかのラベルがハイフンで始まるか終わるドメインも拒否されます。`localhost`、および`.localhost`、`.local`、`.internal`、`.localdomain`、`.invalid`で終わるホストも拒否されます。

### Web検索ドメインのパスサフィックス

`web_search`のドメインには、`example.com/blog`のようなパスサフィックスを付けることができます。パスには、スペース、`?`、`#`、または`$ , | ^ !`のいずれの文字も含めることはできません。

`web_search`でもプレーンなホスト名を使用することをお勧めします。検索プロバイダーは、パスサフィックスを厳密なホストルールとしてではなく、URLパターンとして照合します。

## 検証エラー

APIは、[エージェントを作成する](https://platform.claude.com/docs/ja/managed-agents/agent-setup#create-an-agent)とき、または[エージェントを更新する](https://platform.claude.com/docs/ja/managed-agents/agent-setup#update-an-agent)ときにこれらの設定を検証します。また、`tools` (csharp, go: `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.`を含みます                         |
| ドメインが形式ルールに違反している。  | ドメインのリストと0始まりの位置を示します。例：`allowed_domains.0: IP addresses are not supported; provide a plain hostname like "example.com"` |

同じリクエストにおいて、APIは検索プロバイダーおよびフェッチプロバイダーに依存する次の3つの設定も拒否します。

* Anthropicのクローラーがアクセスを許可されていない、`allowed_domains` (java, php: `allowedDomains`; csharp, go: `AllowedDomains`)内のドメイン。
* 検索プロバイダーがサポートしていない`user_location.country`。メッセージは`user_location.country: not a country the search provider supports`で終わります。
* 有効なIANA名ではない`user_location.timezone`。

`limited`の[ネットワーキング](https://platform.claude.com/docs/ja/managed-agents/environments#networking)を持つクラウド環境では、セッションの作成と更新の際に、`allowed_domains` (java, php: `allowedDomains`; csharp, go: `AllowedDomains`)が環境の`allowed_hosts` (java, php: `allowedHosts`; csharp, go: `AllowedHosts`)に照らしてチェックされます。[エージェントにドメインリストを設定する](https://platform.claude.com/docs/ja/managed-agents/tools-web-restrictions#set-domain-lists-on-an-agent)のルールを参照してください。

### 受け付けられた設定が有効でなくなった場合

セッションは、ツールを最初に初期化するときに設定を再度チェックします。以前に受け付けられた設定がその時点で有効でなくなっている場合、セッションは[`session.error`](https://platform.claude.com/docs/ja/managed-agents/events-and-streaming)イベントを発行します。その後、再試行せずに`idle`に戻ります。

セッションを続行するには、次の手順を実行します。

1. [セッションのツールを更新](https://platform.claude.com/docs/ja/managed-agents/session-operations#updating-the-agent-configuration)して設定を修正します。
2. 新しいセッションが修正済みの設定で開始されるように、エージェントも更新します。
3. 新しい`user.message`を送信します。

## マルチエージェントセッションとアウトカム駆動セッション

[マルチエージェントセッション](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration)では、スレッドに適用されるすべてのドメインリストが同時に適用されます。`subagents` (csharp, go: `Subagents`)の`predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`)リストに列挙されたエージェントは、次の3組のリストに拘束されます。

* 自身の`allowed_domains`と`blocked_domains`
* それを呼び出したエージェントのリスト
* セッションが実行するエージェントの現在のリスト

設定は次のように組み合わされます。

| 設定                                   | 組み合わせ方                                                                                                         |
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------- |
| `allowed_domains`                    | ツールは、すべてのリストがカバーするホストにのみアクセスできます。                                                                              |
| `blocked_domains`                    | リストが合算されます。                                                                                                    |
| `max_content_tokens`、`user_location` | 組み合わされません。スレッドは、自身のツール設定に値が設定されていればその値を使用します。設定されていなければ自身を呼び出したエージェントの値を使用し、それもなければセッションのエージェントの現在の設定の値を使用します。 |

したがって、列挙されたエージェントは、ツールがアクセスできる範囲を狭めることはできますが、広げることはできません。

* 列挙されたエージェントが`blocked_domains`を設定した場合、セッションのエージェントの`allowed_domains`を維持し、その範囲内でそれらのホストをブロックします。
* 列挙されたエージェントが独自の`allowed_domains`を設定した場合、自身のリストとセッションのエージェントのリストの両方がカバーするホストにのみアクセスできます。

`subagents` (csharp, go: `Subagents`)の`predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`)リスト内の`{"type": "self"}`エントリは、独自のWeb設定を持たず、セッションのエージェントの現在の設定に従います。

組み合わされた`allowed_domains`リストに共通のドメインがない場合、ツールはそのエージェントで引き続き利用可能ですが、すべての呼び出しが失敗します。各呼び出しは、許可されているドメインがないことを示す`url_not_allowed`エラーを返します。ツールの説明でもモデルに同じことが伝えられます。これを避けるには、列挙された各エージェントの`allowed_domains`をセッションのエージェントの`allowed_domains`の範囲内に収めてください。

[アウトカム駆動セッション](https://platform.claude.com/docs/ja/managed-agents/define-outcomes)のグレーダーは、これらの設定にかかわらず、`web_search`と`web_fetch`なしで実行されます。

## セッション中にリストを変更する

アイドル状態のセッションでは、[ツールを更新](https://platform.claude.com/docs/ja/managed-agents/session-operations#updating-the-agent-configuration)することでリストを変更できます。新しいリストはセッションの残りの部分に適用されます。

マルチエージェントセッションでは、すべてのスレッドが次のターンから新しいリストを適用します。`subagents` (csharp, go: `Subagents`)の`predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`)リストに列挙されたエージェントについては、更新によってそのエージェント自身のリストは変更されません。それらは、セッション作成時にエージェントの定義で設定されたままになります。

## Messages APIのツールとの違い

これらの設定は、Messages APIのサーバーツールにおける[ドメインフィルタリング](https://platform.claude.com/docs/ja/agents-and-tools/tool-use/server-tools#domain-filtering)と同じ`allowed_domains` (java, php: `allowedDomains`; csharp, go: `AllowedDomains`)フィールドと`blocked_domains` (java, php: `blockedDomains`; csharp, go: `BlockedDomains`)フィールドを使用します。Managed Agentsには次の4つの違いがあります。

* 各リストは[64ドメインが上限](https://platform.claude.com/docs/ja/managed-agents/tools-web-restrictions#domain-list-rules)です。
* `web_fetch`に記載するドメインには[パスを含めることができません](https://platform.claude.com/docs/ja/managed-agents/tools-web-restrictions#domain-format)。
* ドメインは[ASCIIである必要があります](https://platform.claude.com/docs/ja/managed-agents/tools-web-restrictions#domain-format)。Messages APIはUnicodeのエントリを受け付けますが、使用は推奨していません。
* `max_uses` (java, php: `maxUses`; csharp, go: `MaxUses`)、`citations` (csharp, go: `Citations`)、`cache_control` (java, php: `cacheControl`; csharp, go: `CacheControl`)はツールセットでは利用できません。

## 次のステップ

<CardGroup cols={2}>
  <Card title="ツール" icon="tool" href="https://platform.claude.com/docs/ja/managed-agents/tools">
    組み込みツールを確認し、有効化または無効化し、カスタムツールを定義します。
  </Card>

  <Card title="権限ポリシー" icon="lock" href="https://platform.claude.com/docs/ja/managed-agents/permission-policies">
    エージェントツールとMCPツールがいつ実行されるかを制御します。
  </Card>

  <Card title="クラウド環境のセットアップ" icon="settings" href="https://platform.claude.com/docs/ja/managed-agents/environments">
    サンドボックス自体のアウトバウンドネットワークアクセスを制御します。
  </Card>

  <Card title="マルチエージェントオーケストレーション" icon="sitemap" href="https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration">
    単一のセッション内で複数のエージェントを連携させます。
  </Card>
</CardGroup>
