---
title: 限制網頁搜尋與網頁擷取的網域
url: https://platform.claude.com/docs/zh-TW/managed-agents/tools-web-restrictions
description: 控制代理的網頁搜尋與網頁擷取工具可以存取哪些網站、限制擷取內容的上限，並將搜尋結果在地化。
featureMetadata:
  topic:
    title: Managed Agents
    url: https://platform.claude.com/docs/en/managed-agents/overview
  status: beta
  betaHeader: managed-agents-2026-04-01
---

若要控制代理的網頁工具可以存取哪些網站，請在 [agent toolset](https://platform.claude.com/docs/zh-TW/managed-agents/tools#configuring-the-toolset)（代理工具集）的 `web_search` 與 `web_fetch` 項目上設定網域清單。這些 `configs` (csharp, go: `Configs`) 項目各自接受以下兩種清單之一：

* **`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/zh-TW/managed-agents/environments#networking)設定的雲端環境也會將其 `allowed_hosts` (java, php: `allowedHosts`; csharp, go: `AllowedHosts`) 套用到這些工具；請參閱[在代理上設定網域清單](https://platform.claude.com/docs/zh-TW/managed-agents/tools-web-restrictions#set-domain-lists-on-an-agent)。`unrestricted` 網路設定與自行託管的環境不會限制這些工具。各工具的清單會進一步限制這些工具。Claude Console 中組織層級的網頁搜尋與網頁擷取設定適用於 Messages API，但不適用於 Managed Agents 工作階段。
</Note>

## 在代理上設定網域清單

以下範例建立一個代理，將 `web_search` 限制為兩個網站，並為 `web_fetch` 封鎖一個主機。它也設定了 `user_location` (java, php: `userLocation`; csharp, go: `UserLocation`) 與 `max_content_tokens` (java, php: `maxContentTokens`; csharp, go: `MaxContentTokens`)，這些設定在[設定](https://platform.claude.com/docs/zh-TW/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/zh-TW/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/zh-TW/managed-agents/environments#networking)設定的雲端環境中，環境的 `allowed_hosts` (java, php: `allowedHosts`; csharp, go: `AllowedHosts`) 也會套用到 `web_search` 與 `web_fetch`。當已啟用的網頁工具的 `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` 會略過來自此類主機的結果。這兩種清單的比對方式不同：工具的項目涵蓋其子網域，但 `allowed_hosts` (java, php: `allowedHosts`; csharp, go: `AllowedHosts`) 項目只比對一個確切的主機，除非它以 `*.` 開頭。例如，工具項目 `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` 列設定允許或封鎖的網域。請在代理設定的 **Raw** 檢視中設定 `max_content_tokens` 與 `user_location`。

## 設定

除了 `enabled` (csharp, go: `Enabled`) 與 `permission_policy` (java, php: `permissionPolicy`; csharp, go: `PermissionPolicy`) 之外，網頁工具項目還接受以下設定：

| 設定                                                                                   | 適用於                      | 說明                                                                                                                                                        |
| ------------------------------------------------------------------------------------ | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `allowed_domains` (java, php: `allowedDomains`; csharp, go: `AllowedDomains`)        | `web_search`、`web_fetch` | 工具唯一可以存取的主機。請參閱[網域清單規則](https://platform.claude.com/docs/zh-TW/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/zh-TW/managed-agents/tools-web-restrictions#domain-list-rules)。                                    |
| `max_content_tokens` (java, php: `maxContentTokens`; csharp, go: `MaxContentTokens`) | `web_fetch`              | 限制納入上下文的擷取頁面內容量。必須為正整數。請參閱[內容限制](https://platform.claude.com/docs/zh-TW/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/zh-TW/agents-and-tools/tool-use/web-search-tool#localization) 參數相同。 |

關於 SDK 如何為這些項目定義型別，請參閱 [SDK 中的設定項目型別](https://platform.claude.com/docs/zh-TW/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/zh-TW/managed-agents/tools-web-restrictions#validation-errors)所述。

* **每個項目一份清單：** 在一個項目上只能設定 `allowed_domains` (java, php: `allowedDomains`; csharp, go: `AllowedDomains`) 或 `blocked_domains` (java, php: `blockedDomains`; csharp, go: `BlockedDomains`) 其中之一，不能兩者都設定。
* **清單大小：** 每份清單包含 1 到 64 個網域，每個網域長度為 1 到 255 個字元。
* **不可為空清單：** 若不套用任何限制，請省略該欄位或傳送 `null`。
* **不可重複：** 一個網域在清單中只能出現一次。`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`           |
| 任何形式的 IP 位址，無論是 IPv4、IPv6、加上方括號或數字簡寫 | `127.1`                | 該網站的網域名稱                |
| 單獨的頂層網域或註冊管理機構後綴                     | `com`、`co.uk`、`gov.uk` | 完整網域，例如 `example.co.uk` |
| 單一標籤名稱                               | `intranet`             | 完整網域，例如 `example.co.uk` |
| 非 ASCII 字元，例如國際化網域名稱中的字元             |                        | `xn--`（Punycode）形式      |

若網域包含憑證或空白字元，或其中某個標籤以連字號開頭或結尾，也會被拒絕。`localhost` 以及以 `.localhost`、`.local`、`.internal`、`.localdomain` 或 `.invalid` 結尾的主機也會被拒絕。

### 網頁搜尋網域上的路徑後綴

`web_search` 網域可以帶有路徑後綴，例如 `example.com/blog`。路徑不能包含空格、`?`、`#`，或 `$ , | ^ !` 中的任何字元。

對於 `web_search`，也建議使用純主機名稱。搜尋提供者會將路徑後綴視為 URL 模式進行比對，而非嚴格的主機規則。

## 驗證錯誤

當您[建立代理](https://platform.claude.com/docs/zh-TW/managed-agents/agent-setup#create-an-agent)或[更新代理](https://platform.claude.com/docs/zh-TW/managed-agents/agent-setup#update-an-agent)時，API 會驗證這些設定。當您建立或更新提供 `tools` (csharp, go: `Tools`) 的工作階段時，API 也會驗證這些設定。

違反格式與限制的請求會以 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"` |

在相同的請求中，API 也會拒絕三種取決於搜尋與擷取提供者的設定：

* `allowed_domains` (java, php: `allowedDomains`; csharp, go: `AllowedDomains`) 中 Anthropic 的爬蟲不被允許存取的網域。
* 搜尋提供者不支援的 `user_location.country`。訊息結尾為 `user_location.country: not a country the search provider supports`。
* 不是有效 IANA 名稱的 `user_location.timezone`。

在採用 `limited` [網路](https://platform.claude.com/docs/zh-TW/managed-agents/environments#networking)設定的雲端環境中，工作階段的建立與更新也會根據環境的 `allowed_hosts` (java, php: `allowedHosts`; csharp, go: `AllowedHosts`) 檢查 `allowed_domains` (java, php: `allowedDomains`; csharp, go: `AllowedDomains`)。請參閱[在代理上設定網域清單](https://platform.claude.com/docs/zh-TW/managed-agents/tools-web-restrictions#set-domain-lists-on-an-agent)中的規則。

### 當已接受的設定不再有效時

工作階段在首次初始化工具時會再次檢查設定。若先前已接受的設定在此時不再有效，工作階段會發出 [`session.error`](https://platform.claude.com/docs/zh-TW/managed-agents/events-and-streaming) 事件，然後回到 `idle` 狀態且不會重試。

若要繼續工作階段：

1. 透過[更新工作階段的工具](https://platform.claude.com/docs/zh-TW/managed-agents/session-operations#updating-the-agent-configuration)修正設定。
2. 同時更新代理，讓新的工作階段以修正後的設定啟動。
3. 傳送新的 `user.message`。

## 多代理與成果導向的工作階段

在[多代理工作階段](https://platform.claude.com/docs/zh-TW/managed-agents/multiagent-orchestration)中，適用於某個執行緒的所有網域清單會同時強制執行。列在 `subagents` (csharp, go: `Subagents`) 的 `predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`) 清單中的代理，受三組清單約束：

* 其自身的 `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"}` 項目沒有自己的網頁設定，會遵循工作階段代理的目前設定。

若組合後的 `allowed_domains` 清單沒有任何共同網域，該工具對該代理仍然可用，但每次呼叫都會失敗。每次呼叫都會傳回 `url_not_allowed` 錯誤，說明沒有任何網域被允許。工具說明也會告知模型相同的內容。為避免這種情況，請讓每個已列出代理的 `allowed_domains` 保持在工作階段代理的 `allowed_domains` 範圍內。

[成果導向工作階段](https://platform.claude.com/docs/zh-TW/managed-agents/define-outcomes)中的評分器在執行時不具備 `web_search` 與 `web_fetch`，不受這些設定影響。

## 在工作階段中途變更清單

您可以透過[更新工具](https://platform.claude.com/docs/zh-TW/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/zh-TW/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 有四點不同：

* 每份清單[上限為 64 個網域](https://platform.claude.com/docs/zh-TW/managed-agents/tools-web-restrictions#domain-list-rules)。
* 為 `web_fetch` 列出的網域[不能包含路徑](https://platform.claude.com/docs/zh-TW/managed-agents/tools-web-restrictions#domain-format)。
* 網域[必須為 ASCII](https://platform.claude.com/docs/zh-TW/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/zh-TW/managed-agents/tools">
    查看內建工具、啟用或停用它們，以及定義自訂工具。
  </Card>

  <Card title="權限政策" icon="lock" href="https://platform.claude.com/docs/zh-TW/managed-agents/permission-policies">
    控制代理與 MCP 工具何時執行。
  </Card>

  <Card title="雲端環境設定" icon="settings" href="https://platform.claude.com/docs/zh-TW/managed-agents/environments">
    控制沙箱本身的對外網路存取。
  </Card>

  <Card title="多代理協調" icon="sitemap" href="https://platform.claude.com/docs/zh-TW/managed-agents/multiagent-orchestration">
    在單一工作階段中協調多個代理。
  </Card>
</CardGroup>
