8 8
9本頁面記錄 Claude Code 傳送至閘道的請求,包括它呼叫的端點、閘道必須轉發的標頭和本體欄位,以及當閘道未轉發時停止運作的功能。本文件是為配置閘道產品以與 Claude Code 搭配運作的操作人員撰寫的。9本頁面記錄 Claude Code 傳送至閘道的請求,包括它呼叫的端點、閘道必須轉發的標頭和本體欄位,以及當閘道未轉發時停止運作的功能。本文件是為配置閘道產品以與 Claude Code 搭配運作的操作人員撰寫的。
10 10
11[Claude apps gateway](/docs/zh-TW/claude-apps-gateway) 是 Anthropic 的自託管閘道,在 `GET /protocol` 提供自己的端點參考,涵蓋該閘道的登入、推論、受管設定、模型探索和遙測端點。這是與本指南分開的文件。11[Claude apps gateway](https://code.claude.com/docs/zh-TW/claude-apps-gateway) 是 Anthropic 的自託管閘道,在 `GET /protocol` 提供自己的端點參考,涵蓋該閘道的登入、推論、受管設定、模型探索和遙測端點。這是與本指南分開的文件。
12 12
13> [!NOTE]13> [!NOTE]
14>14>
15> * 若要為您的組織推出現有或第三方閘道,請參閱[推出 LLM 閘道](/docs/zh-TW/llm-gateway-rollout.md)15> * 若要為您的組織推出現有或第三方閘道,請參閱[推出 LLM 閘道](https://code.claude.com/docs/zh-TW/llm-gateway-rollout.md)
16> * 如果您是使用獲得的認證向閘道驗證 Claude Code 的個別開發人員,請參閱[將 Claude Code 連線至 LLM 閘道](/docs/zh-TW/llm-gateway-connect.md)16> * 如果您是使用獲得的認證向閘道驗證 Claude Code 的個別開發人員,請參閱[將 Claude Code 連線至 LLM 閘道](https://code.claude.com/docs/zh-TW/llm-gateway-connect.md)
17 17
18本頁面涵蓋:18本頁面涵蓋:
19 19
46 46
47### Foundry 和 AWS 上的 Claude Platform47### Foundry 和 AWS 上的 Claude Platform
48 48
49Microsoft Foundry 和 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws.md) 實作 Anthropic Messages 格式。Claude Code 透過自己的變數 `ANTHROPIC_FOUNDRY_BASE_URL` 和 `ANTHROPIC_AWS_BASE_URL` 路由到它們,但閘道在任一前面實作上述 Anthropic Messages 列。閘道在 AWS 上的 Claude Platform 前面也必須轉發 `anthropic-workspace-id` 標頭,[該平台在每個請求上都需要](/docs/zh-TW/claude-platform-on-aws.md)。49Microsoft Foundry 和 [AWS 上的 Claude Platform](https://code.claude.com/docs/zh-TW/claude-platform-on-aws.md) 實作 Anthropic Messages 格式。Claude Code 透過自己的變數 `ANTHROPIC_FOUNDRY_BASE_URL` 和 `ANTHROPIC_AWS_BASE_URL` 路由到它們,但閘道在任一前面實作上述 Anthropic Messages 列。閘道在 AWS 上的 Claude Platform 前面也必須轉發 `anthropic-workspace-id` 標頭,[該平台在每個請求上都需要](https://code.claude.com/docs/zh-TW/claude-platform-on-aws.md)。
50 50
51### 選用端點和啟動流量51### 選用端點和啟動流量
52 52
59 59
60閘道也會看到最佳努力啟動流量,可以拒絕而不會破壞任何東西。Anthropic Messages 格式閘道會收到 `HEAD /api/hello` 連線預熱探測,當設定了 HTTP 代理或用戶端憑證時,Claude Code 會跳過此探測。Amazon Bedrock 格式閘道會收到 `GET /inference-profiles?type=SYSTEM_DEFINED` 請求,以及當設定的模型是推論設定檔時,`GET /inference-profiles/{profile}` 查詢。60閘道也會看到最佳努力啟動流量,可以拒絕而不會破壞任何東西。Anthropic Messages 格式閘道會收到 `HEAD /api/hello` 連線預熱探測,當設定了 HTTP 代理或用戶端憑證時,Claude Code 會跳過此探測。Amazon Bedrock 格式閘道會收到 `GET /inference-profiles?type=SYSTEM_DEFINED` 請求,以及當設定的模型是推論設定檔時,`GET /inference-profiles/{profile}` 查詢。
61 61
62透過閘道的工作階段不符合 HIPAA 設定的資格。[檢查開發人員如何登入和連線](/docs/zh-TW/hipaa-setup.md#check-how-developers-sign-in-and-connect)列出了哪些登入和連線方式符合資格。請參閱[閘道後面的 HIPAA 設定](/docs/zh-TW/llm-gateway-rollout.md#the-hipaa-configuration-behind-a-gateway)。62透過閘道的工作階段不符合 HIPAA 設定的資格。[檢查開發人員如何登入和連線](https://code.claude.com/docs/zh-TW/hipaa-setup.md#check-how-developers-sign-in-and-connect)列出了哪些登入和連線方式符合資格。請參閱[閘道後面的 HIPAA 設定](https://code.claude.com/docs/zh-TW/llm-gateway-rollout.md#the-hipaa-configuration-behind-a-gateway)。
63 63
64[快速模式](/docs/zh-TW/fast-mode.md)可用性檢查永遠不會出現在閘道日誌中:它直接呼叫 `api.anthropic.com` 而不是遵循 `ANTHROPIC_BASE_URL`,因此在阻止直接出站到 `api.anthropic.com` 的網路上,快速模式可能會報告連線錯誤,而透過閘道的推論會繼續運作。[WebFetch 網域安全檢查](/docs/zh-TW/data-usage.md#webfetch-domain-safety-check)也直接呼叫 `api.anthropic.com`。[在代理和 LLM 閘道後面使用快速模式](/docs/zh-TW/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways)涵蓋恢復它的變數。64[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)可用性檢查永遠不會出現在閘道日誌中:它直接呼叫 `api.anthropic.com` 而不是遵循 `ANTHROPIC_BASE_URL`,因此在阻止直接出站到 `api.anthropic.com` 的網路上,快速模式可能會報告連線錯誤,而透過閘道的推論會繼續運作。[WebFetch 網域安全檢查](https://code.claude.com/docs/zh-TW/data-usage.md#webfetch-domain-safety-check)也直接呼叫 `api.anthropic.com`。[在代理和 LLM 閘道後面使用快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways)涵蓋恢復它的變數。
65 65
66### 串流66### 串流
67 67
68Claude Code 會在每個串流推論回應到達時逐一事件讀取,因此您的閘道轉送串流的方式會影響使用者看到的內容:68Claude Code 會在每個串流推論回應到達時逐一事件讀取,因此您的閘道轉送串流的方式會影響使用者看到的內容:
69 69
70* 如果您的閘道在回應完成之前緩衝該回應,Claude Code 會停滯。70* 如果您的閘道在回應完成之前緩衝該回應,Claude Code 會停滯。
71* Claude Code 預期依序收到每個回應的完整事件序列,直到最終的 `message_delta` 和 `message_stop` 事件。如果本體在內容區塊已啟動之後、但在該最終 `message_delta` 之前乾淨地結束,Claude Code 會將該回應視為連線中斷。[上述回應可能不完整](/docs/zh-TW/errors.md#the-response-above-may-be-incomplete)描述使用者此時看到的內容,[自動重試](/docs/zh-TW/errors.md#automatic-retries)則說明 Claude Code 何時改為重新發出請求。71* Claude Code 預期依序收到每個回應的完整事件序列,直到最終的 `message_delta` 和 `message_stop` 事件。如果本體在內容區塊已啟動之後、但在該最終 `message_delta` 之前乾淨地結束,Claude Code 會將該回應視為連線中斷。[上述回應可能不完整](https://code.claude.com/docs/zh-TW/errors.md#the-response-above-may-be-incomplete)描述使用者此時看到的內容,[自動重試](https://code.claude.com/docs/zh-TW/errors.md#automatic-retries)則說明 Claude Code 何時改為重新發出請求。
72* 當 Amazon Bedrock guardrail 封鎖回覆時,Bedrock 發送的事件可能會參考其 `content_block_stop` 已經到達的內容區塊,而 Claude Code 依賴於按原樣收到這些事件。[AWS Guardrails](/docs/zh-TW/amazon-bedrock.md#aws-guardrails) 描述該回覆如何結束。72* 當 Amazon Bedrock guardrail 封鎖回覆時,Bedrock 發送的事件可能會參考其 `content_block_stop` 已經到達的內容區塊,而 Claude Code 依賴於按原樣收到這些事件。[AWS Guardrails](https://code.claude.com/docs/zh-TW/amazon-bedrock.md#aws-guardrails) 描述該回覆如何結束。
73* 一旦超過其[串流閒置逾時](/docs/zh-TW/network-config.md#streaming-idle-watchdogs)都沒有任何位元組到達,Claude Code 就會中止串流回應。在長時間的思考暫停期間,上游的 SSE `ping` 事件可能是串流上唯一的位元組,因此剝離或緩衝這些事件的閘道可能會在回應進行到一半時觸發該逾時。從不發送 ping 的上游(例如 Amazon Bedrock 的二進位事件串流)進行轉譯的閘道也有相同的間隙,除非它發出自己的 `ping` 事件。73* 一旦超過其[串流閒置逾時](https://code.claude.com/docs/zh-TW/network-config.md#streaming-idle-watchdogs)都沒有任何位元組到達,Claude Code 就會中止串流回應。在長時間的思考暫停期間,上游的 SSE `ping` 事件可能是串流上唯一的位元組,因此剝離或緩衝這些事件的閘道可能會在回應進行到一半時觸發該逾時。從不發送 ping 的上游(例如 Amazon Bedrock 的二進位事件串流)進行轉譯的閘道也有相同的間隙,除非它發出自己的 `ping` 事件。
74* 在 [Amazon Bedrock InvokeModel 格式](#api-formats)上,Claude Code 會將 `/model/{model}/invoke-with-response-stream` 回應讀取為 Bedrock 傳回的二進位 `application/vnd.amazon.eventstream` 本體,一旦閘道將其轉換為伺服器發送事件或改寫該 `Content-Type` 標頭,就無法解析它。[閘道或代理伺服器後面的串流錯誤](/docs/zh-TW/amazon-bedrock.md#streaming-errors-behind-a-gateway-or-proxy)描述使用者此時看到的內容。74* 在 [Amazon Bedrock InvokeModel 格式](#api-formats)上,Claude Code 會將 `/model/{model}/invoke-with-response-stream` 回應讀取為 Bedrock 傳回的二進位 `application/vnd.amazon.eventstream` 本體,一旦閘道將其轉換為伺服器發送事件或改寫該 `Content-Type` 標頭,就無法解析它。[閘道或代理伺服器後面的串流錯誤](https://code.claude.com/docs/zh-TW/amazon-bedrock.md#streaming-errors-behind-a-gateway-or-proxy)描述使用者此時看到的內容。
75 75
76### 與上游的格式不匹配76### 與上游的格式不匹配
77 77
82 82
83橋接該差異是您的閘道的工作。[功能傳遞](#feature-pass-through)描述當它不這樣做時會破壞什麼。83橋接該差異是您的閘道的工作。[功能傳遞](#feature-pass-through)描述當它不這樣做時會破壞什麼。
84 84
85如果您的上游是 Amazon Bedrock 或 Google Cloud 的 Agent Platform,您可以透過改為公開該提供者的格式來避免橋接。[透過閘道路由到雲端提供者](/docs/zh-TW/llm-gateway-connect.md#route-to-a-cloud-provider-through-a-gateway)顯示該格式的用戶端設定。85如果您的上游是 Amazon Bedrock 或 Google Cloud 的 Agent Platform,您可以透過改為公開該提供者的格式來避免橋接。[透過閘道路由到雲端提供者](https://code.claude.com/docs/zh-TW/llm-gateway-connect.md#route-to-a-cloud-provider-through-a-gateway)顯示該格式的用戶端設定。
86 86
87## 連線方法如何改變用戶端行為87## 連線方法如何改變用戶端行為
88 88
90 90
91* **Amazon Bedrock 或 Agent Platform 格式**:開發人員設定 `CLAUDE_CODE_USE_BEDROCK=1` 搭配 `ANTHROPIC_BEDROCK_BASE_URL`,或 `CLAUDE_CODE_USE_VERTEX=1` 搭配 `ANTHROPIC_VERTEX_BASE_URL`,指向您的閘道。Claude Code 使用該提供者的模型 ID、請求欄位和預設值。91* **Amazon Bedrock 或 Agent Platform 格式**:開發人員設定 `CLAUDE_CODE_USE_BEDROCK=1` 搭配 `ANTHROPIC_BEDROCK_BASE_URL`,或 `CLAUDE_CODE_USE_VERTEX=1` 搭配 `ANTHROPIC_VERTEX_BASE_URL`,指向您的閘道。Claude Code 使用該提供者的模型 ID、請求欄位和預設值。
92* **Anthropic Messages 格式**:開發人員將 `ANTHROPIC_BASE_URL` 設定為您的閘道。Claude Code 將閘道視為 Claude API,無法判斷您轉發到哪個上游。92* **Anthropic Messages 格式**:開發人員將 `ANTHROPIC_BASE_URL` 設定為您的閘道。Claude Code 將閘道視為 Claude API,無法判斷您轉發到哪個上游。
93* **Claude apps 閘道登入**:開發人員登入 [Claude apps 閘道](/docs/zh-TW/claude-apps-gateway)。該閘道使用 Anthropic Messages 格式,但可以路由到任何上游,因此 Claude Code 只傳送 Amazon Bedrock 和 Agent Platform 也接受的 `anthropic-beta` 值和模型功能假設。93* **Claude apps 閘道登入**:開發人員登入 [Claude apps 閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)。該閘道使用 Anthropic Messages 格式,但可以路由到任何上游,因此 Claude Code 只傳送 Amazon Bedrock 和 Agent Platform 也接受的 `anthropic-beta` 值和模型功能假設。
94 94
95### 按連線方法的請求和預設值95### 按連線方法的請求和預設值
96 96
97下表比較三種連線方法,每行一個行為。它省略了 Microsoft Foundry 和 Claude Platform on AWS,它們也使用 Anthropic Messages 格式,但 Claude Code 透過自己的變數到達它們。如需這些,請參閱 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry.md) 和 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws.md) 頁面。97下表比較三種連線方法,每行一個行為。它省略了 Microsoft Foundry 和 Claude Platform on AWS,它們也使用 Anthropic Messages 格式,但 Claude Code 透過自己的變數到達它們。如需這些,請參閱 [Microsoft Foundry](https://code.claude.com/docs/zh-TW/microsoft-foundry.md) 和 [Claude Platform on AWS](https://code.claude.com/docs/zh-TW/claude-platform-on-aws.md) 頁面。
98 98
99| 行為 | Amazon Bedrock 或 Agent Platform 格式 | Anthropic Messages 格式 | Claude apps 閘道登入 |99| 行為 | Amazon Bedrock 或 Agent Platform 格式 | Anthropic Messages 格式 | Claude apps 閘道登入 |
100| :- | :- | :- | :- |100| :- | :- | :- | :- |
101| 預設情況下請求中的模型 ID | 提供者的形式,例如 Amazon Bedrock 上的 `us.anthropic.claude-opus-4-8` | Anthropic ID,例如 `claude-opus-4-8` | Anthropic ID |101| 預設情況下請求中的模型 ID | 提供者的形式,例如 Amazon Bedrock 上的 `us.anthropic.claude-opus-4-8` | Anthropic ID,例如 `claude-opus-4-8` | Anthropic ID |
102| 傳送的 `anthropic-beta` 值 | Amazon Bedrock 和 Agent Platform 接受的子集 | [功能傳遞](#feature-pass-through)下描述的完整集合,除非開發人員設定 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](#disable-pre-release-capabilities) | Amazon Bedrock 和 Agent Platform 接受的子集 |102| 傳送的 `anthropic-beta` 值 | Amazon Bedrock 和 Agent Platform 接受的子集 | [功能傳遞](#feature-pass-through)下描述的完整集合,除非開發人員設定 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](#disable-pre-release-capabilities) | Amazon Bedrock 和 Agent Platform 接受的子集 |
103| Claude Code 無法識別的模型 ID(例如閘道別名)的請求欄位 | 使用固定預算進行思考而非自適應推理,且沒有努力或內容管理欄位。Claude Code 仍會傳送[對話中途的系統訊息](#feature-pass-through) | 目前 Claude 模型在 Claude API 上接受的所有內容,包括自適應推理、努力和內容管理,Amazon Bedrock 或 Agent Platform 上游可能會拒絕 | 與 Amazon Bedrock 或 Agent Platform 格式相同 |103| Claude Code 無法識別的模型 ID(例如閘道別名)的請求欄位 | 使用固定預算進行思考而非自適應推理,且沒有努力或內容管理欄位。Claude Code 仍會傳送[對話中途的系統訊息](#feature-pass-through) | 目前 Claude 模型在 Claude API 上接受的所有內容,包括自適應推理、努力和內容管理,Amazon Bedrock 或 Agent Platform 上游可能會拒絕 | 與 Amazon Bedrock 或 Agent Platform 格式相同 |
104| 開發人員選擇加入時的一小時 [提示快取 TTL](/docs/zh-TW/prompt-caching.md#choose-the-ttl-yourself) | 透過 `cache_control` 中的 `ttl` 欄位請求,沒有測試版值 | 透過 `ttl` 欄位加上 `anthropic-beta` 中的 `extended-cache-ttl` 值請求,您必須轉發 | 透過 `ttl` 欄位請求,沒有測試版值。請參閱[一小時提示快取](/docs/zh-TW/claude-apps-gateway-config.md#one-hour-prompt-cache) |104| 開發人員選擇加入時的一小時 [提示快取 TTL](https://code.claude.com/docs/zh-TW/prompt-caching.md#choose-the-ttl-yourself) | 透過 `cache_control` 中的 `ttl` 欄位請求,沒有測試版值 | 透過 `ttl` 欄位加上 `anthropic-beta` 中的 `extended-cache-ttl` 值請求,您必須轉發 | 透過 `ttl` 欄位請求,沒有測試版值。請參閱[一小時提示快取](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#one-hour-prompt-cache) |
105| [背景工作](/docs/zh-TW/costs.md#background-token-usage) 的模型,除非 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 固定一個 | 預設 Sonnet 模型,或選擇主模型後的主模型,如 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock.md#4-pin-model-versions) 和 [Agent Platform](/docs/zh-TW/google-vertex-ai.md#5-pin-model-versions) 頁面所述 | 主模型,或當 `ANTHROPIC_API_KEY` 或 `apiKeyHelper` 提供 Anthropic Console 金鑰且 `ANTHROPIC_AUTH_TOKEN` 未設定時的預設 Haiku 模型 | 主模型 |105| [背景工作](https://code.claude.com/docs/zh-TW/costs.md#background-token-usage) 的模型,除非 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 固定一個 | 預設 Sonnet 模型,或選擇主模型後的主模型,如 [Amazon Bedrock](https://code.claude.com/docs/zh-TW/amazon-bedrock.md#4-pin-model-versions) 和 [Agent Platform](https://code.claude.com/docs/zh-TW/google-vertex-ai.md#5-pin-model-versions) 頁面所述 | 主模型,或當 `ANTHROPIC_API_KEY` 或 `apiKeyHelper` 提供 Anthropic Console 金鑰且 `ANTHROPIC_AUTH_TOKEN` 未設定時的預設 Haiku 模型 | 主模型 |
106 106
107如需每個連線支援的功能以及它預設傳送給 Anthropic 的遙測,請參閱 [功能可用性](/docs/zh-TW/feature-availability.md#availability-by-model-provider) 和 [按 API 提供者的預設行為](/docs/zh-TW/data-usage.md#default-behaviors-by-api-provider)。107如需每個連線支援的功能以及它預設傳送給 Anthropic 的遙測,請參閱 [功能可用性](https://code.claude.com/docs/zh-TW/feature-availability.md#availability-by-model-provider) 和 [按 API 提供者的預設行為](https://code.claude.com/docs/zh-TW/data-usage.md#default-behaviors-by-api-provider)。
108 108
109### 無法識別的模型 ID 的設定109### 無法識別的模型 ID 的設定
110 110
111兩個用戶端設定會改變 Claude Code 對無法識別的模型 ID 的假設,無論開發人員使用哪種連線方法:111兩個用戶端設定會改變 Claude Code 對無法識別的模型 ID 的假設,無論開發人員使用哪種連線方法:
112 112
113* **內容視窗**:Claude Code 假設 200K,或當 ID 帶有 `[1m]` 時為 1M。若要宣告實際視窗,請參閱 [更正閘道或自訂模型 ID 的視窗](/docs/zh-TW/model-config.md#correct-the-window-for-a-gateway-or-custom-model-id)113* **內容視窗**:Claude Code 假設 200K,或當 ID 帶有 `[1m]` 時為 1M。若要宣告實際視窗,請參閱 [更正閘道或自訂模型 ID 的視窗](https://code.claude.com/docs/zh-TW/model-config.md#correct-the-window-for-a-gateway-or-custom-model-id)
114* **功能**:若要給閘道別名提供其背後模型的功能,請在您分發的設定中使用 [`modelOverrides`](/docs/zh-TW/errors#unrecognized-model-id-on-a-request) 項目將該模型的 Anthropic ID 對應到您的別名。如需 `ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` 變數適用的位置,請參閱 [功能傳遞](#feature-pass-through)114* **功能**:若要給閘道別名提供其背後模型的功能,請在您分發的設定中使用 [`modelOverrides`](https://code.claude.com/docs/zh-TW/errors#unrecognized-model-id-on-a-request) 項目將該模型的 Anthropic ID 對應到您的別名。如需 `ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` 變數適用的位置,請參閱 [功能傳遞](#feature-pass-through)
115 115
116## 請求標頭116## 請求標頭
117 117
118Claude Code 在 API 請求上包含這些標頭。標頭名稱在線路上不區分大小寫。轉發 `anthropic-version` 和 `anthropic-beta` 不變,加上當上游是 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws.md) 時的 `anthropic-workspace-id`;其餘的 gateway 可以使用以進行路由、歸屬和追蹤,不需要轉發。118Claude Code 在 API 請求上包含這些標頭。標頭名稱在線路上不區分大小寫。轉發 `anthropic-version` 和 `anthropic-beta` 不變,加上當上游是 [AWS 上的 Claude Platform](https://code.claude.com/docs/zh-TW/claude-platform-on-aws.md) 時的 `anthropic-workspace-id`;其餘的 gateway 可以使用以進行路由、歸屬和追蹤,不需要轉發。
119 119
120| 標頭 | 描述 |120| 標頭 | 描述 |
121| :- | :- |121| :- | :- |
122| `Authorization`、`x-api-key` | 開發人員的 gateway 認證,根據他們設定的[認證變數](/docs/zh-TW/llm-gateway-connect.md#set-the-credential-variable)在一個或兩個標頭中 |122| `Authorization`、`x-api-key` | 開發人員的 gateway 認證,根據他們設定的[認證變數](https://code.claude.com/docs/zh-TW/llm-gateway-connect.md#set-the-credential-variable)在一個或兩個標頭中 |
123| `anthropic-version` | API 版本,目前為 `2023-06-01`。Amazon Bedrock 和 Google Cloud 的 Agent Platform 格式請求也攜帶 `anthropic_version` 請求體欄位,其值是提供者方言字串,而不是此標頭的值 |123| `anthropic-version` | API 版本,目前為 `2023-06-01`。Amazon Bedrock 和 Google Cloud 的 Agent Platform 格式請求也攜帶 `anthropic_version` 請求體欄位,其值是提供者方言字串,而不是此標頭的值 |
124| `anthropic-beta` | 請求的逗號分隔功能值。逐字轉發標頭;不要將個別值列入允許清單,因為該集合隨 Claude Code 版本而變化。當開發人員使用 claude.ai 登入進行驗證時(當設定 `ANTHROPIC_BASE_URL` 而沒有 gateway 認證變數時可能),此標頭也會攜帶上游需要的 OAuth 功能,移除它會導致這些請求失敗並出現 `401` |124| `anthropic-beta` | 請求的逗號分隔功能值。逐字轉發標頭;不要將個別值列入允許清單,因為該集合隨 Claude Code 版本而變化。當開發人員使用 claude.ai 登入進行驗證時(當設定 `ANTHROPIC_BASE_URL` 而沒有 gateway 認證變數時可能),此標頭也會攜帶上游需要的 OAuth 功能,移除它會導致這些請求失敗並出現 `401` |
125| `x-claude-code-session-id` | 目前 Claude Code 工作階段的唯一識別碼。使用它來聚合來自一個工作階段的所有請求,而無需解析請求體 |125| `x-claude-code-session-id` | 目前 Claude Code 工作階段的唯一識別碼。使用它來聚合來自一個工作階段的所有請求,而無需解析請求體 |
126| `x-claude-code-agent-id` | 發出請求的[子代理](/docs/zh-TW/sub-agents.md)的識別碼,僅在來自 Claude Code 在工作階段內生成的代理的請求上存在。將其與工作階段 ID 一起使用以將成本歸屬於平行代理 |126| `x-claude-code-agent-id` | 發出請求的[子代理](https://code.claude.com/docs/zh-TW/sub-agents.md)的識別碼,僅在來自 Claude Code 在工作階段內生成的代理的請求上存在。將其與工作階段 ID 一起使用以將成本歸屬於平行代理 |
127| `x-claude-code-parent-agent-id` | 生成請求代理的代理的識別碼,僅對嵌套代理存在 |127| `x-claude-code-parent-agent-id` | 生成請求代理的代理的識別碼,僅對嵌套代理存在 |
128 128
129子代理 ID 在每次生成時都會新生成。隊友代理([代理團隊](/docs/zh-TW/agent-teams.md)的命名成員)在重新連接時重複使用穩定的基於名稱的 ID。在兩種情況下,ID 都識別一個代理,而不是一個人或設備,因此不要將代理 ID 標頭視為使用者識別碼。129子代理 ID 在每次生成時都會新生成。隊友代理([代理團隊](https://code.claude.com/docs/zh-TW/agent-teams.md)的命名成員)在重新連接時重複使用穩定的基於名稱的 ID。在兩種情況下,ID 都識別一個代理,而不是一個人或設備,因此不要將代理 ID 標頭視為使用者識別碼。
130 130
131如果您的開發人員設定了 `ANTHROPIC_CUSTOM_HEADERS`,這些標頭也會出現在請求上。131如果您的開發人員設定了 `ANTHROPIC_CUSTOM_HEADERS`,這些標頭也會出現在請求上。
132 132
137請求是否攜帶它們取決於 Claude Code 將其傳送到何處:137請求是否攜帶它們取決於 Claude Code 將其傳送到何處:
138 138
139* 直接連接到 Anthropic API:預設傳送139* 直接連接到 Anthropic API:預設傳送
140* 自訂基礎 URL:預設關閉,因為拒絕未知標頭的代理會導致請求失敗。若要接收它們,請為您的開發人員設定 [`CLAUDE_CODE_GATEWAY_HINT_HEADERS=1`](/docs/zh-TW/env-vars),例如在[受管設定](/docs/zh-TW/managed-settings.md)的 `env` 區塊中140* 自訂基礎 URL:預設關閉,因為拒絕未知標頭的代理會導致請求失敗。若要接收它們,請為您的開發人員設定 [`CLAUDE_CODE_GATEWAY_HINT_HEADERS=1`](https://code.claude.com/docs/zh-TW/env-vars),例如在[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)的 `env` 區塊中
141* 任何其他後端,包括 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 AWS 上的 Claude Platform:僅在設定 `CLAUDE_CODE_GATEWAY_HINT_HEADERS=1` 時傳送141* 任何其他後端,包括 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 AWS 上的 Claude Platform:僅在設定 `CLAUDE_CODE_GATEWAY_HINT_HEADERS=1` 時傳送
142 142
143將 `CLAUDE_CODE_GATEWAY_HINT_HEADERS` 設定為 `0` 會停止每個連接上的標頭。143將 `CLAUDE_CODE_GATEWAY_HINT_HEADERS` 設定為 `0` 會停止每個連接上的標頭。
146 146
147| 標頭 | 描述 |147| 標頭 | 描述 |
148| :- | :- |148| :- | :- |
149| `x-claude-code-request-class` | 這是什麼類型的請求:`main` 用於主對話的一個回合,`subagent` 用於[子代理](/docs/zh-TW/sub-agents.md)的一個回合,`workflow` 用於在工作流程內執行的代理,`compaction` 用於壓縮對話的摘要請求,或 `auxiliary` 用於側面請求,例如工作階段標題、分類器和摘要。在每個請求上傳送 |149| `x-claude-code-request-class` | 這是什麼類型的請求:`main` 用於主對話的一個回合,`subagent` 用於[子代理](https://code.claude.com/docs/zh-TW/sub-agents.md)的一個回合,`workflow` 用於在工作流程內執行的代理,`compaction` 用於壓縮對話的摘要請求,或 `auxiliary` 用於側面請求,例如工作階段標題、分類器和摘要。在每個請求上傳送 |
150| `x-claude-code-agent-type` | 發出請求的子代理類型:內建代理類型名稱,例如 `Explore`、`Plan` 或 `general-purpose`,或 `custom` 用於使用者定義的代理,`teammate` 用於在主導者程序中執行的[代理團隊](/docs/zh-TW/agent-teams.md)成員,或 `fork` 用於[分支](/docs/zh-TW/sub-agents.md#fork-the-current-conversation)。僅在子代理自己的回合上存在;子代理的壓縮或側面請求保留代理 ID,但不攜帶類型。使用者選擇的代理名稱永遠不會被傳送 |150| `x-claude-code-agent-type` | 發出請求的子代理類型:內建代理類型名稱,例如 `Explore`、`Plan` 或 `general-purpose`,或 `custom` 用於使用者定義的代理,`teammate` 用於在主導者程序中執行的[代理團隊](https://code.claude.com/docs/zh-TW/agent-teams.md)成員,或 `fork` 用於[分支](https://code.claude.com/docs/zh-TW/sub-agents.md#fork-the-current-conversation)。僅在子代理自己的回合上存在;子代理的壓縮或側面請求保留代理 ID,但不攜帶類型。使用者選擇的代理名稱永遠不會被傳送 |
151| `x-claude-code-compaction` | 在[壓縮](/docs/zh-TW/prompt-caching.md#compacting-the-conversation)期間摘要對話的請求上存在。該值說明觸發了什麼:`auto` 當上下文視窗接近容量時,`manual` 用於 `/compact`,或 `reactive` 當 API 拒絕請求太長時。對於[閒置壓縮](/docs/zh-TW/settings-reference.md#idlecompaction),該值也是 `auto`。在所有其他請求上不存在 |151| `x-claude-code-compaction` | 在[壓縮](https://code.claude.com/docs/zh-TW/prompt-caching.md#compacting-the-conversation)期間摘要對話的請求上存在。該值說明觸發了什麼:`auto` 當上下文視窗接近容量時,`manual` 用於 `/compact`,或 `reactive` 當 API 拒絕請求太長時。對於[閒置壓縮](https://code.claude.com/docs/zh-TW/settings-reference.md#idlecompaction),該值也是 `auto`。在所有其他請求上不存在 |
152| `x-claude-code-context-compacted` | 在壓縮後的第一個主對話請求上存在一次,具有與 `x-claude-code-compaction` 相同的值。此請求之前的對話前綴不再使用,因此可以刪除以其為鍵的快取 |152| `x-claude-code-context-compacted` | 在壓縮後的第一個主對話請求上存在一次,具有與 `x-claude-code-compaction` 相同的值。此請求之前的對話前綴不再使用,因此可以刪除以其為鍵的快取 |
153| `x-claude-code-prev-tool-durations` | 此請求攜帶其結果的工具呼叫的測量執行時間,格式為 `<name>=<ms>;<name>=<ms>`,例如 `Bash=742;Read=9`。在同一對話的下一個請求之後傳送,來自主工作階段或子代理的一批工具呼叫 |153| `x-claude-code-prev-tool-durations` | 此請求攜帶其結果的工具呼叫的測量執行時間,格式為 `<name>=<ms>;<name>=<ms>`,例如 `Bash=742;Read=9`。在同一對話的下一個請求之後傳送,來自主工作階段或子代理的一批工具呼叫 |
154| `x-claude-code-prompt-id` | 隨機 UUID,識別請求所服務的使用者提示。服務一個提示的請求共享該值,包括該提示啟動的子代理的回合。未歸屬於提示的請求會省略它。使用它按提示對工作階段的請求進行分組。需要 Claude Code v2.1.283 或更新版本 |154| `x-claude-code-prompt-id` | 隨機 UUID,識別請求所服務的使用者提示。服務一個提示的請求共享該值,包括該提示啟動的子代理的回合。未歸屬於提示的請求會省略它。使用它按提示對工作階段的請求進行分組。需要 Claude Code v2.1.283 或更新版本 |
176 176
177| 標頭 | 應返回的內容及原因 |177| 標頭 | 應返回的內容及原因 |
178| :- | :- |178| :- | :- |
179| `content-type` | 在串流的 Anthropic Messages 格式回應上返回 `text/event-stream`,在 Amazon Bedrock 格式回應上返回 `application/vnd.amazon.eventstream`(未修改),其中[不同的類型會導致請求失敗](/docs/zh-TW/amazon-bedrock.md#streaming-errors-behind-a-gateway-or-proxy) |179| `content-type` | 在串流的 Anthropic Messages 格式回應上返回 `text/event-stream`,在 Amazon Bedrock 格式回應上返回 `application/vnd.amazon.eventstream`(未修改),其中[不同的類型會導致請求失敗](https://code.claude.com/docs/zh-TW/amazon-bedrock.md#streaming-errors-behind-a-gateway-or-proxy) |
180| `retry-after` | 返回整數秒數而非 HTTP 日期。Claude Code 在下一次[自動重試](/docs/zh-TW/errors.md#automatic-retries)之前至少等待該時間長度,在 [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/zh-TW/env-vars) 工作階段外,超過 60 的值會停止重試並立即顯示錯誤 |180| `retry-after` | 返回整數秒數而非 HTTP 日期。Claude Code 在下一次[自動重試](https://code.claude.com/docs/zh-TW/errors.md#automatic-retries)之前至少等待該時間長度,在 [`CLAUDE_CODE_RETRY_WATCHDOG`](https://code.claude.com/docs/zh-TW/env-vars) 工作階段外,超過 60 的值會停止重試並立即顯示錯誤 |
181| `x-should-retry` | 未修改地傳遞上游的值。Claude Code 在決定是否重試失敗的請求時將此標頭讀取為一個輸入:`true` 標記回應為可重試,`false` 標記為不可重試。如需重試計數、退避和 Claude Code 重試的失敗,請參閱[自動重試](/docs/zh-TW/errors.md#automatic-retries) |181| `x-should-retry` | 未修改地傳遞上游的值。Claude Code 在決定是否重試失敗的請求時將此標頭讀取為一個輸入:`true` 標記回應為可重試,`false` 標記為不可重試。如需重試計數、退避和 Claude Code 重試的失敗,請參閱[自動重試](https://code.claude.com/docs/zh-TW/errors.md#automatic-retries) |
182| `anthropic-ratelimit-unified-*` | 在每個回應上未修改地轉發上游的值。Claude Code 在成功回應上讀取它們以向使用 claude.ai 登入的開發人員顯示針對計畫限制的使用量,在 `429` 上讀取以區分計畫限制或支出上限與暫時性節流;請參閱[使用量限制](/docs/zh-TW/errors.md#usage-limits) |182| `anthropic-ratelimit-unified-*` | 在每個回應上未修改地轉發上游的值。Claude Code 在成功回應上讀取它們以向使用 claude.ai 登入的開發人員顯示針對計畫限制的使用量,在 `429` 上讀取以區分計畫限制或支出上限與暫時性節流;請參閱[使用量限制](https://code.claude.com/docs/zh-TW/errors.md#usage-limits) |
183 183
184## 系統提示歸屬區塊184## 系統提示歸屬區塊
185 185
189 189
190* 完全按照接收的方式轉發 `system` 陣列,將區塊保持在最前面:在前面加上另一個系統區塊、重新排序陣列或將其轉換為單一字串會破壞移除,區塊隨後會到達模型和提示快取鍵。190* 完全按照接收的方式轉發 `system` 陣列,將區塊保持在最前面:在前面加上另一個系統區塊、重新排序陣列或將其轉換為單一字串會破壞移除,區塊隨後會到達模型和提示快取鍵。
191* 將區塊保持在自己的陣列項目中:端點將以歸屬標頭開頭的合併區塊視為完整的歸屬並刪除合併到其中的所有內容,包括系統提示的其餘部分。191* 將區塊保持在自己的陣列項目中:端點將以歸屬標頭開頭的合併區塊視為完整的歸屬並刪除合併到其中的所有內容,包括系統提示的其餘部分。
192* 如果您的 gateway 必須重新塑造系統內容,請設定 [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/docs/zh-TW/env-vars) 以便 Claude Code 省略該區塊。Anthropic 和雲提供者的 Claude 端點讀取該區塊以進行歸屬,因此要省略它,請在用戶端而不是在 gateway 中移除或移動它。192* 如果您的 gateway 必須重新塑造系統內容,請設定 [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](https://code.claude.com/docs/zh-TW/env-vars) 以便 Claude Code 省略該區塊。Anthropic 和雲提供者的 Claude 端點讀取該區塊以進行歸屬,因此要省略它,請在用戶端而不是在 gateway 中移除或移動它。
193 193
194該變數存在是為了 gateway 和第三方快取相容性,而不是作為隱私控制:在直接連線上,完整請求無論如何都已經進入 Anthropic API。當以下兩項都成立時,Claude Code 會在 [auto mode](/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode) 分類器請求上保留該區塊,即使您將變數設定為 `0`:194該變數存在是為了 gateway 和第三方快取相容性,而不是作為隱私控制:在直接連線上,完整請求無論如何都已經進入 Anthropic API。當以下兩項都成立時,Claude Code 會在 [auto mode](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode) 分類器請求上保留該區塊,即使您將變數設定為 `0`:
195 195
196* 請求進入 `api.anthropic.com`,`ANTHROPIC_BASE_URL` 未設定或命名該主機,且未選擇第三方提供者。196* 請求進入 `api.anthropic.com`,`ANTHROPIC_BASE_URL` 未設定或命名該主機,且未選擇第三方提供者。
197* 作用中的認證不是 [Anthropic 設定檔或聯盟認證](/docs/zh-TW/authentication.md#anthropic-profiles-and-federation-credentials)。197* 作用中的認證不是 [Anthropic 設定檔或聯盟認證](https://code.claude.com/docs/zh-TW/authentication.md#anthropic-profiles-and-federation-credentials)。
198 198
199分類器請求會跳過 Claude Code 系統提示的其餘部分,因此在這些請求上,該區塊是請求體中唯一識別它們為 Claude Code 流量的標記。當任一條件失敗時,通過 LLM gateway、在第三方提供者上,或使用作用中的設定檔或聯盟認證,設定 `0` 也會從分類器請求中移除該區塊。在 v2.1.229 之前,此例外不存在:設定 `0` 會從這些分類器請求中移除該區塊,當 API 拒絕未識別的請求時,auto mode 在它發送給分類器的每個動作上都會失敗。199分類器請求會跳過 Claude Code 系統提示的其餘部分,因此在這些請求上,該區塊是請求體中唯一識別它們為 Claude Code 流量的標記。當任一條件失敗時,通過 LLM gateway、在第三方提供者上,或使用作用中的設定檔或聯盟認證,設定 `0` 也會從分類器請求中移除該區塊。在 v2.1.229 之前,此例外不存在:設定 `0` 會從這些分類器請求中移除該區塊,當 API 拒絕未識別的請求時,auto mode 在它發送給分類器的每個動作上都會失敗。
200 200
207 207
208Claude Code 將 `ANTHROPIC_BASE_URL` gateway 視為 Anthropic 格式端點,並向其發送它發送給 `api.anthropic.com` 的測試版標頭和請求體欄位,除了為直接連接保留的一小組診斷和預設值,例如下面涵蓋的細粒度工具串流預設。該集合因版本而異,因此不要依賴其內容。208Claude Code 將 `ANTHROPIC_BASE_URL` gateway 視為 Anthropic 格式端點,並向其發送它發送給 `api.anthropic.com` 的測試版標頭和請求體欄位,除了為直接連接保留的一小組診斷和預設值,例如下面涵蓋的細粒度工具串流預設。該集合因版本而異,因此不要依賴其內容。
209 209
210細粒度工具串流是直接連接預設值之一:每當請求通過自訂基礎 URL 路由時,它預設為關閉,當開發人員設定 [`CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1`](/docs/zh-TW/env-vars) 時,gateway 會接收它。210細粒度工具串流是直接連接預設值之一:每當請求通過自訂基礎 URL 路由時,它預設為關閉,當開發人員設定 [`CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1`](https://code.claude.com/docs/zh-TW/env-vars) 時,gateway 會接收它。
211 211
212### 測試版標頭和請求體欄位配對212### 測試版標頭和請求體欄位配對
213 213
217 217
218| 功能 | 標頭和請求體對 | 破壞時的症狀 | 補救 |218| 功能 | 標頭和請求體對 | 破壞時的症狀 | 補救 |
219| :- | :- | :- | :- |219| :- | :- | :- | :- |
220| [自適應推理](/docs/zh-TW/model-config.md#adjust-effort-level) | 無測試版標頭。Claude Code 為 Claude Opus 4.6、Claude Sonnet 4.6、Claude Haiku 5.5、Claude Fable 5 及更新的模型發送 `thinking: {"type": "adaptive"}`,並將它不識別的模型名稱(如閘道別名)視為接收該欄位的目前模型 | 當上游模型建置不接受它時,命名 `thinking` 欄位或 `adaptive` 標籤的 `400` | 升級上游。在 Opus 4.6 和 Sonnet 4.6 上,開發人員可以改為設定 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` |220| [自適應推理](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level) | 無測試版標頭。Claude Code 為 Claude Opus 4.6、Claude Sonnet 4.6、Claude Haiku 5.5、Claude Fable 5 及更新的模型發送 `thinking: {"type": "adaptive"}`,並將它不識別的模型名稱(如閘道別名)視為接收該欄位的目前模型 | 當上游模型建置不接受它時,命名 `thinking` 欄位或 `adaptive` 標籤的 `400` | 升級上游。在 Opus 4.6 和 Sonnet 4.6 上,開發人員可以改為設定 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` |
221| [上下文管理](https://platform.claude.com/docs/en/build-with-claude/context-editing) | 上下文管理測試版標頭與 `context_management` 請求體欄位配對 | `400` 搭配 `Extra inputs are not permitted`。常見於閘道接受 Anthropic 格式請求但將其轉發到 Amazon Bedrock 時。在 v2.1.304 或更新版本上,Claude Code 會[自行在不含該配對的情況下重試](#automatic-retry-and-error-forwarding) | 轉發兩者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |221| [上下文管理](https://platform.claude.com/docs/en/build-with-claude/context-editing) | 上下文管理測試版標頭與 `context_management` 請求體欄位配對 | `400` 搭配 `Extra inputs are not permitted`。常見於閘道接受 Anthropic 格式請求但將其轉發到 Amazon Bedrock 時。在 v2.1.304 或更新版本上,Claude Code 會[自行在不含該配對的情況下重試](#automatic-retry-and-error-forwarding) | 轉發兩者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |
222| [擴展上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)和[交錯思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 僅測試版標頭,無請求體欄位 | 當標頭被移除時無聲地不可用;上游永遠不會看到功能請求 | 逐字轉發 `anthropic-beta` |222| [擴展上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)和[交錯思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 僅測試版標頭,無請求體欄位 | 當標頭被移除時無聲地不可用;上游永遠不會看到功能請求 | 逐字轉發 `anthropic-beta` |
223| 測試版[工具欄位](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | 工具相關的測試版標頭與工具 schema 欄位(如 `strict` 和 `defer_loading`)配對 | 當請求體在沒有其標頭的情況下通過時,命名無法識別的工具 schema 欄位的 `400`。關於 `defer_loading`,請參閱[不使用工具搜尋重試](#retry-without-tool-search) | 轉發兩者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |223| 測試版[工具欄位](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | 工具相關的測試版標頭與工具 schema 欄位(如 `strict` 和 `defer_loading`)配對 | 當請求體在沒有其標頭的情況下通過時,命名無法識別的工具 schema 欄位的 `400`。關於 `defer_loading`,請參閱[不使用工具搜尋重試](#retry-without-tool-search) | 轉發兩者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |
224| [努力](https://platform.claude.com/docs/en/build-with-claude/effort)和[結構化輸出](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | `output_config` 請求體欄位攜帶努力、結構化輸出格式和任務預算設定;每個都與其自己的測試版標頭配對 | 在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上游上命名 `output_config` 的 `400`,通常是 `Extra inputs are not permitted` | 一起轉發欄位及其標頭,或讓開發人員設定 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities),這會移除格式和任務預算設定,但不會移除努力。若只要移除格式,他們可以改為設定 [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](/docs/zh-TW/env-vars),這需要 v2.1.288 或更新版本 |224| [努力](https://platform.claude.com/docs/en/build-with-claude/effort)和[結構化輸出](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | `output_config` 請求體欄位攜帶努力、結構化輸出格式和任務預算設定;每個都與其自己的測試版標頭配對 | 在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上游上命名 `output_config` 的 `400`,通常是 `Extra inputs are not permitted` | 一起轉發欄位及其標頭,或讓開發人員設定 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities),這會移除格式和任務預算設定,但不會移除努力。若只要移除格式,他們可以改為設定 [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](https://code.claude.com/docs/zh-TW/env-vars),這需要 v2.1.288 或更新版本 |
225| 對話中途的系統訊息 | 無測試版標頭。Claude Code 針對 Claude Opus 4.8、在其之後發布的模型以及無法識別的模型 ID,將部分提醒和附件文字作為 `messages` 中的 `role: "system"` 項目發送 | `400`,例如 `Unexpected role "system"` | Claude Code 會[在不含系統訊息的情況下重試](#automatic-retry-and-error-forwarding)。若要在 Claude Opus 4.8 之前發布之模型的別名上停止系統訊息,請在您分發的設定中新增 [`modelOverrides` 項目](#settings-for-unrecognized-model-ids) |225| 對話中途的系統訊息 | 無測試版標頭。Claude Code 針對 Claude Opus 4.8、在其之後發布的模型以及無法識別的模型 ID,將部分提醒和附件文字作為 `messages` 中的 `role: "system"` 項目發送 | `400`,例如 `Unexpected role "system"` | Claude Code 會[在不含系統訊息的情況下重試](#automatic-retry-and-error-forwarding)。若要在 Claude Opus 4.8 之前發布之模型的別名上停止系統訊息,請在您分發的設定中新增 [`modelOverrides` 項目](#settings-for-unrecognized-model-ids) |
226| [每回合設定的努力](/docs/zh-TW/prompt-caching.md#changing-effort-level) | 在 Opus 5.5、Sonnet 5.5、Haiku 5.5 和 Fable 5.1 上,測試版標頭與 `role: "system"` 項目上的 `output_config.effort` 配對,該項目可以是系統訊息,也可以是內容為空的項目 | 當您的閘道從空項目中移除該欄位時,出現 `400` 並顯示 `messages.N: system content must contain at least one block` | 轉發兩者,或讓開發人員設定 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) 以停止發送該欄位和空項目 |226| [每回合設定的努力](https://code.claude.com/docs/zh-TW/prompt-caching.md#changing-effort-level) | 在 Opus 5.5、Sonnet 5.5、Haiku 5.5 和 Fable 5.1 上,測試版標頭與 `role: "system"` 項目上的 `output_config.effort` 配對,該項目可以是系統訊息,也可以是內容為空的項目 | 當您的閘道從空項目中移除該欄位時,出現 `400` 並顯示 `messages.N: system content must contain at least one block` | 轉發兩者,或讓開發人員設定 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) 以停止發送該欄位和空項目 |
227| [提示詞快取](/docs/zh-TW/prompt-caching.md) | 無測試版配對。Claude Code 將 `cache_control` 標記附加到 `system` 區塊和 `messages` 項目,包括在對話中途附加的 `role: "system"` 項目 | 無錯誤:對話在每個回合上都計費為未快取的輸入,在 `usage` 中可見為高 `input_tokens` 且很少或沒有快取活動 | 無論在何處出現,都逐字轉發 `cache_control`,並且不要將區塊形式的 `system` 或訊息內容轉換為純字串 |227| [提示詞快取](https://code.claude.com/docs/zh-TW/prompt-caching.md) | 無測試版配對。Claude Code 將 `cache_control` 標記附加到 `system` 區塊和 `messages` 項目,包括在對話中途附加的 `role: "system"` 項目 | 無錯誤:對話在每個回合上都計費為未快取的輸入,在 `usage` 中可見為高 `input_tokens` 且很少或沒有快取活動 | 無論在何處出現,都逐字轉發 `cache_control`,並且不要將區塊形式的 `system` 或訊息內容轉換為純字串 |
228| [令牌計數](https://platform.claude.com/docs/en/build-with-claude/token-counting) | 無測試版配對;使用 `count_tokens` 端點 | 無錯誤:Claude Code 回退到基於字元的估計,因此 `/context` 顯示近似計數 | 公開端點以取得精確令牌計數 |228| [令牌計數](https://platform.claude.com/docs/en/build-with-claude/token-counting) | 無測試版配對;使用 `count_tokens` 端點 | 無錯誤:Claude Code 回退到基於字元的估計,因此 `/context` 顯示近似計數 | 公開端點以取得精確令牌計數 |
229 229
230`ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` [變數](/docs/zh-TW/model-config.md)僅在提供者配置中聲明模型功能:`CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX`、`CLAUDE_CODE_USE_FOUNDRY` 和 [`CLAUDE_CODE_USE_MANTLE`](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint)。它們在 `ANTHROPIC_BASE_URL` gateway 後面沒有效果。230`ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` [變數](https://code.claude.com/docs/zh-TW/model-config.md)僅在提供者配置中聲明模型功能:`CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX`、`CLAUDE_CODE_USE_FOUNDRY` 和 [`CLAUDE_CODE_USE_MANTLE`](https://code.claude.com/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint)。它們在 `ANTHROPIC_BASE_URL` gateway 後面沒有效果。
231 231
232### 自動重試和錯誤轉發232### 自動重試和錯誤轉發
233 233
234當上游拒絕其中一項功能時,Claude Code 可以自行在移除或變更被拒絕部分的情況下重試請求:234當上游拒絕其中一項功能時,Claude Code 可以自行在移除或變更被拒絕部分的情況下重試請求:
235 235
236* 當 `400` 指出不支援 `thinking.type` 值 `enabled` 或 `adaptive` 時,Claude Code 會以另一種類型重試一次,並保留 `thinking` 欄位。在 Claude Code 退出之前,對該模型的後續請求會維持切換後的類型。在 v2.1.121 之前,Claude Code 不會重試,因此 [`thinking.type.enabled is not supported`](/docs/zh-TW/errors#thinking-type-enabled-is-not-supported-for-this-model) 會到達開發人員236* 當 `400` 指出不支援 `thinking.type` 值 `enabled` 或 `adaptive` 時,Claude Code 會以另一種類型重試一次,並保留 `thinking` 欄位。在 Claude Code 退出之前,對該模型的後續請求會維持切換後的類型。在 v2.1.121 之前,Claude Code 不會重試,因此 [`thinking.type.enabled is not supported`](https://code.claude.com/docs/zh-TW/errors#thinking-type-enabled-is-not-supported-for-this-model) 會到達開發人員
237* 當上游拒絕 `messages` 中的 `role: "system"` 項目時,Claude Code 會在不含這些對話中途系統訊息的情況下重試一次,並改為將其文字放在使用者訊息中。在開發人員執行 `/clear` 或對話壓縮之前,該對話中的後續請求會維持此形式237* 當上游拒絕 `messages` 中的 `role: "system"` 項目時,Claude Code 會在不含這些對話中途系統訊息的情況下重試一次,並改為將其文字放在使用者訊息中。在開發人員執行 `/clear` 或對話壓縮之前,該對話中的後續請求會維持此形式
238* 當上游僅拒絕對話中途系統訊息上的 `cache_control` 標記時,Claude Code 會保留系統訊息,並在移動標記後重試一次。在該次重試以及 Claude Code 退出之前的後續請求中,標記會放在 `messages` 中最後一個不是系統訊息的項目上238* 當上游僅拒絕對話中途系統訊息上的 `cache_control` 標記時,Claude Code 會保留系統訊息,並在移動標記後重試一次。在該次重試以及 Claude Code 退出之前的後續請求中,標記會放在 `messages` 中最後一個不是系統訊息的項目上
239* 當上游拒絕[思考簽名](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)時,包括以 `400` 拒絕其中區塊 `bound to a different conversation` 時,Claude Code 會從請求中移除較早的思考區塊、重試,並將它們排除在每個後續請求之外。新回應仍包含思考239* 當上游拒絕[思考簽名](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)時,包括以 `400` 拒絕其中區塊 `bound to a different conversation` 時,Claude Code 會從請求中移除較早的思考區塊、重試,並將它們排除在每個後續請求之外。新回應仍包含思考
240* 當 gateway 或其上游將[顧問工具](/docs/zh-TW/advisor.md)項目在 `tools` 中拒絕為無法識別的工具類型時,Claude Code 會重試一次請求,不包含該項目及其 `anthropic-beta` 值。對該基礎 URL 的後續請求會將顧問排除在外,直到 Claude Code 退出,且 `/advisor` 對開發人員在該時間內不可用。Claude Code 通過 `400` 或 `422` 回應識別此拒絕,其訊息在 `Input tag` 後命名工具類型,例如 `Input tag 'advisor_20260301'`。在 v2.1.280 之前,Claude Code 沒有重試此拒絕240* 當 gateway 或其上游將[顧問工具](https://code.claude.com/docs/zh-TW/advisor.md)項目在 `tools` 中拒絕為無法識別的工具類型時,Claude Code 會重試一次請求,不包含該項目及其 `anthropic-beta` 值。對該基礎 URL 的後續請求會將顧問排除在外,直到 Claude Code 退出,且 `/advisor` 對開發人員在該時間內不可用。Claude Code 通過 `400` 或 `422` 回應識別此拒絕,其訊息在 `Input tag` 後命名工具類型,例如 `Input tag 'advisor_20260301'`。在 v2.1.280 之前,Claude Code 沒有重試此拒絕
241* 當上游拒絕 `output_config.effort` 時,Claude Code 會在不包含努力的情況下重試請求,並在 Claude Code 退出之前,對該模型的後續請求中將其排除。Claude Code 通過 `400` 識別此拒絕,其訊息同時命名 `output_config.effort` 和 `Extra inputs are not permitted`,或指出該模型不支援努力參數241* 當上游拒絕 `output_config.effort` 時,Claude Code 會在不包含努力的情況下重試請求,並在 Claude Code 退出之前,對該模型的後續請求中將其排除。Claude Code 通過 `400` 識別此拒絕,其訊息同時命名 `output_config.effort` 和 `Extra inputs are not permitted`,或指出該模型不支援努力參數
242* 當上游拒絕 `context_management` 欄位或其 `anthropic-beta` 值時,閘道會再收到一次不含它們的請求。如果閘道在後續請求中再次看到它們且上游再次拒絕,則會進行相同的重試。Claude Code 透過其訊息識別此拒絕,例如包含 `context_management: Extra inputs are not permitted` 的訊息。在 v2.1.304 之前,Claude Code 沒有重試此拒絕242* 當上游拒絕 `context_management` 欄位或其 `anthropic-beta` 值時,閘道會再收到一次不含它們的請求。如果閘道在後續請求中再次看到它們且上游再次拒絕,則會進行相同的重試。Claude Code 透過其訊息識別此拒絕,例如包含 `context_management: Extra inputs are not permitted` 的訊息。在 v2.1.304 之前,Claude Code 沒有重試此拒絕
243* 當上游拒絕 `defer_loading` 以外的測試版工具欄位(例如 `strict`)時,`400` 會到達開發人員。在此之前,閘道可能會再次收到[不含工具搜尋欄位](#retry-without-tool-search)的請求。若要停止發送這類欄位,請讓開發人員設定 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities)243* 當上游拒絕 `defer_loading` 以外的測試版工具欄位(例如 `strict`)時,`400` 會到達開發人員。在此之前,閘道可能會再次收到[不含工具搜尋欄位](#retry-without-tool-search)的請求。若要停止發送這類欄位,請讓開發人員設定 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities)
244 244
245`bound to a different conversation` 拒絕來自 API 的[保留思考](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking)檢查,當 `system`、`tools` 或較早的 `messages` 內容與產生思考的請求不同時,該檢查會失敗。重寫任何該內容的 gateway 可能會導致拒絕本身;[程式庫、代理和 gateway](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways)涵蓋要逐字轉發的內容。245`bound to a different conversation` 拒絕來自 API 的[保留思考](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking)檢查,當 `system`、`tools` 或較早的 `messages` 內容與產生思考的請求不同時,該檢查會失敗。重寫任何該內容的 gateway 可能會導致拒絕本身;[程式庫、代理和 gateway](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways)涵蓋要逐字轉發的內容。
246 246
247大部分重試邏輯與上游的錯誤措辭相匹配,因此不修改地轉發錯誤回應體。在自己的信封中包裝上游錯誤的閘道會破壞恢復路徑,即使它保留了狀態碼,除非信封的訊息攜帶穩定的 `capability_rejected:` token。[Claude 應用程式閘道為雲端提供者的錯誤措辭替換這些 token](/docs/zh-TW/claude-apps-gateway-config.md#upstream-error-messages),例如 `capability_rejected: prompt_too_long`。247大部分重試邏輯與上游的錯誤措辭相匹配,因此不修改地轉發錯誤回應體。在自己的信封中包裝上游錯誤的閘道會破壞恢復路徑,即使它保留了狀態碼,除非信封的訊息攜帶穩定的 `capability_rejected:` token。[Claude 應用程式閘道為雲端提供者的錯誤措辭替換這些 token](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config.md#upstream-error-messages),例如 `capability_rejected: prompt_too_long`。
248 248
249#### 不使用工具搜尋重試249#### 不使用工具搜尋重試
250 250
251在 v2.1.305 或更新版本上,攜帶 [`defer_loading` 欄位和 `tool_reference` 區塊](/docs/zh-TW/mcp#tool-search-through-a-gateway)的請求,在收到 Claude Code 無法識別原因的 `400` 或 `422` 後,可能會以不含它們的形式再次送達。重試成功後,後續請求也會省略它們。251在 v2.1.305 或更新版本上,攜帶 [`defer_loading` 欄位和 `tool_reference` 區塊](https://code.claude.com/docs/zh-TW/mcp#tool-search-through-a-gateway)的請求,在收到 Claude Code 無法識別原因的 `400` 或 `422` 後,可能會以不含它們的形式再次送達。重試成功後,後續請求也會省略它們。
252 252
253開發人員的請求無需對閘道進行任何變更即可繼續運作,其 MCP 工具會預先載入。Claude Code 稍後會再次嘗試工具搜尋,因此閘道可能會看到另一個被拒絕的請求及其重試。若要讓每個請求都不含這些欄位,請讓開發人員設定 `ENABLE_TOOL_SEARCH=false`。對於工具搜尋本身,Claude Code 預期閘道會轉發 `defer_loading` 欄位和 `tool_reference` 區塊及其 `anthropic-beta` 值。253開發人員的請求無需對閘道進行任何變更即可繼續運作,其 MCP 工具會預先載入。Claude Code 稍後會再次嘗試工具搜尋,因此閘道可能會看到另一個被拒絕的請求及其重試。若要讓每個請求都不含這些欄位,請讓開發人員設定 `ENABLE_TOOL_SEARCH=false`。對於工具搜尋本身,Claude Code 預期閘道會轉發 `defer_loading` 欄位和 `tool_reference` 區塊及其 `anthropic-beta` 值。
254 254
260* 測試版工具 schema 欄位,例如 `strict` 和 `defer_loading`。標準的 `name`、`description`、`input_schema` 和 `cache_control` 工具欄位會保留260* 測試版工具 schema 欄位,例如 `strict` 和 `defer_loading`。標準的 `name`、`description`、`input_schema` 和 `cache_control` 工具欄位會保留
261* 結構化輸出的 `output_config.format` 欄位。需要 Claude Code v2.1.287 或更新版本261* 結構化輸出的 `output_config.format` 欄位。需要 Claude Code v2.1.287 或更新版本
262* `output_config.task_budget` 欄位262* `output_config.task_budget` 欄位
263* [MCP Tool Search](/docs/zh-TW/mcp.md#scale-with-mcp-tool-search),因此每個 MCP 工具都會預先載入,除非您的組織透過受管設定將其保持開啟263* [MCP Tool Search](https://code.claude.com/docs/zh-TW/mcp.md#scale-with-mcp-tool-search),因此每個 MCP 工具都會預先載入,除非您的組織透過受管設定將其保持開啟
264 264
265該變數不會移除所有 `anthropic-beta` 值。它保留的內容包括:265該變數不會移除所有 `anthropic-beta` 值。它保留的內容包括:
266 266
269* 自適應推理的 `thinking` 欄位,它沒有測試版標頭269* 自適應推理的 `thinking` 欄位,它沒有測試版標頭
270* 承載[對話中途系統訊息](#feature-pass-through)的 `role: "system"` 項目270* 承載[對話中途系統訊息](#feature-pass-through)的 `role: "system"` 項目
271* 訂閱身分驗證所需的 OAuth `anthropic-beta` 值271* 訂閱身分驗證所需的 OAuth `anthropic-beta` 值
272* 開發人員透過 [`ANTHROPIC_BETAS`](/docs/zh-TW/env-vars) 或 [`CLAUDE_CODE_EXTRA_BODY`](/docs/zh-TW/env-vars) 自行添加的標頭值和請求體欄位272* 開發人員透過 [`ANTHROPIC_BETAS`](https://code.claude.com/docs/zh-TW/env-vars) 或 [`CLAUDE_CODE_EXTRA_BODY`](https://code.claude.com/docs/zh-TW/env-vars) 自行添加的標頭值和請求體欄位
273 273
274當嵌入 Claude Code 的主機平台設定 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/zh-TW/env-vars) 時,`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` 不會停止 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 [Claude 應用程式 gateway](/docs/zh-TW/claude-apps-gateway) 上的自動模式工作階段要求伺服器進行[分類器審查](/docs/zh-TW/permission-modes.md#server-side-classifier-review)。該審查添加了 `anthropic-beta` 值和 `safeguards` 請求欄位。設定 `CLAUDE_CODE_AUTO_MODE_SERVER=0` 以在那裡停止它。274當嵌入 Claude Code 的主機平台設定 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/zh-TW/env-vars) 時,`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` 不會停止 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 [Claude 應用程式 gateway](https://code.claude.com/docs/zh-TW/claude-apps-gateway) 上的自動模式工作階段要求伺服器進行[分類器審查](https://code.claude.com/docs/zh-TW/permission-modes.md#server-side-classifier-review)。該審查添加了 `anthropic-beta` 值和 `safeguards` 請求欄位。設定 `CLAUDE_CODE_AUTO_MODE_SERVER=0` 以在那裡停止它。
275 275
276在 Claude Code v2.1.227 或更新版本上,您的組織可以通過[受管設定](/docs/zh-TW/managed-settings.md)在此變數下保持 [MCP 工具搜尋](/docs/zh-TW/mcp.md#scale-with-mcp-tool-search)開啟。Claude Code 在該覆蓋就位時發送的內容取決於您如何連接:276在 Claude Code v2.1.227 或更新版本上,您的組織可以通過[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)在此變數下保持 [MCP 工具搜尋](https://code.claude.com/docs/zh-TW/mcp.md#scale-with-mcp-tool-search)開啟。Claude Code 在該覆蓋就位時發送的內容取決於您如何連接:
277 277
278* 在未使用 HIPAA 設定的直接連接上,或通過設定了 `ANTHROPIC_BASE_URL` 的閘道,Claude Code 繼續發送工具搜尋測試版標頭、`defer_loading` 工具欄位和 `tool_reference` 區塊278* 在未使用 HIPAA 設定的直接連接上,或通過設定了 `ANTHROPIC_BASE_URL` 的閘道,Claude Code 繼續發送工具搜尋測試版標頭、`defer_loading` 工具欄位和 `tool_reference` 區塊
279* 在雲端提供者上,或通過 [Claude 應用程式 gateway](/docs/zh-TW/claude-apps-gateway) 登入,覆蓋沒有效果279* 在雲端提供者上,或通過 [Claude 應用程式 gateway](https://code.claude.com/docs/zh-TW/claude-apps-gateway) 登入,覆蓋沒有效果
280* 在[取得 HIPAA 設定](/docs/zh-TW/hipaa-setup.md#check-how-developers-sign-in-and-connect)的工作階段中,覆寫沒有效果,且工具搜尋保持關閉280* 在[取得 HIPAA 設定](https://code.claude.com/docs/zh-TW/hipaa-setup.md#check-how-developers-sign-in-and-connect)的工作階段中,覆寫沒有效果,且工具搜尋保持關閉
281 281
282Claude Code 發送的功能集在版本中增長。有關目前的測試版標頭字串,請參閱[測試版標頭參考](https://platform.claude.com/docs/en/api/beta-headers);針對新的 Claude Code 版本測試您的 gateway,而不是固定到觀察清單。282Claude Code 發送的功能集在版本中增長。有關目前的測試版標頭字串,請參閱[測試版標頭參考](https://platform.claude.com/docs/en/api/beta-headers);針對新的 Claude Code 版本測試您的 gateway,而不是固定到觀察清單。
283 283
284## 模型發現284## 模型發現
285 285
286當 `ANTHROPIC_BASE_URL` 指向公開 Anthropic Messages 格式的 gateway 時,Claude Code 可以在啟動時查詢 gateway 的 `/v1/models` 端點,並將返回的模型添加到 `/model` 選擇器。如果您或您的管理員在 [`modelPicker`](/docs/zh-TW/settings-reference#modelpicker) 陣容中設定 `replaceBuiltInOptions`,Claude Code 會從選擇器中隱藏發現的模型。286當 `ANTHROPIC_BASE_URL` 指向公開 Anthropic Messages 格式的 gateway 時,Claude Code 可以在啟動時查詢 gateway 的 `/v1/models` 端點,並將返回的模型添加到 `/model` 選擇器。如果您或您的管理員在 [`modelPicker`](https://code.claude.com/docs/zh-TW/settings-reference#modelpicker) 陣容中設定 `replaceBuiltInOptions`,Claude Code 會從選擇器中隱藏發現的模型。
287 287
288開發人員通過在自己的環境中或通過受管設定設定 [`CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`](/docs/zh-TW/env-vars) 來啟用它。預設情況下發現是關閉的,以便由共享 API 金鑰支持的 gateway 不會向每個使用者公開金鑰可以存取的每個模型。288開發人員通過在自己的環境中或通過受管設定設定 [`CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`](https://code.claude.com/docs/zh-TW/env-vars) 來啟用它。預設情況下發現是關閉的,以便由共享 API 金鑰支持的 gateway 不會向每個使用者公開金鑰可以存取的每個模型。
289 289
290### 發現何時運行290### 發現何時運行
291 291
294* 設定了任何 `CLAUDE_CODE_USE_*` 提供者變數,即使也設定了 `ANTHROPIC_BASE_URL`294* 設定了任何 `CLAUDE_CODE_USE_*` 提供者變數,即使也設定了 `ANTHROPIC_BASE_URL`
295* `ANTHROPIC_BASE_URL` 未設定或指向 `api.anthropic.com`295* `ANTHROPIC_BASE_URL` 未設定或指向 `api.anthropic.com`
296 296
297當[非必要流量被關閉](/docs/zh-TW/llm-gateway-connect.md#turn-off-traffic-outside-the-gateway-path)時,發現仍會運行,因為請求只會進入您的 gateway。在 v2.1.257 之前,當非必要流量被關閉時,發現不會運行。297當[非必要流量被關閉](https://code.claude.com/docs/zh-TW/llm-gateway-connect.md#turn-off-traffic-outside-the-gateway-path)時,發現仍會運行,因為請求只會進入您的 gateway。在 v2.1.257 之前,當非必要流量被關閉時,發現不會運行。
298 298
299### 請求和回應299### 請求和回應
300 300
301請求是 `GET /v1/models?limit=1000`,超時時間為 3 秒,任何重定向都被視為失敗,因此認證不會洩露給重定向目標。回應緩慢或重定向 `/v1/models` 的 gateway,即使是 `http` 到 `https`,也會無聲地失敗發現;在配置的基礎 URL 處直接提供端點。301請求是 `GET /v1/models?limit=1000`,超時時間為 3 秒,任何重定向都被視為失敗,因此認證不會洩露給重定向目標。回應緩慢或重定向 `/v1/models` 的 gateway,即使是 `http` 到 `https`,也會無聲地失敗發現;在配置的基礎 URL 處直接提供端點。
302 302
303若要給緩慢的 gateway 更長的時間,請設定 [`CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS`](/docs/zh-TW/env-vars#variables)。該變數需要 Claude Code v2.1.269 或更新版本。303若要給緩慢的 gateway 更長的時間,請設定 [`CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS`](https://code.claude.com/docs/zh-TW/env-vars#variables)。該變數需要 Claude Code v2.1.269 或更新版本。
304 304
305Claude Code 使用以下兩個認證標頭發送發現請求,並省略其值無法解析的標頭。發送兩個標頭需要 Claude Code v2.1.248 或更新版本。較早的版本在設定 `ANTHROPIC_AUTH_TOKEN` 時僅發送 `Authorization`,否則僅發送 `x-api-key`。305Claude Code 使用以下兩個認證標頭發送發現請求,並省略其值無法解析的標頭。發送兩個標頭需要 Claude Code v2.1.248 或更新版本。較早的版本在設定 `ANTHROPIC_AUTH_TOKEN` 時僅發送 `Authorization`,否則僅發送 `x-api-key`。
306 306
307* `Authorization`:`ANTHROPIC_AUTH_TOKEN` 作為持有人令牌,否則 [`apiKeyHelper`](/docs/zh-TW/llm-gateway-connect#rotate-credentials-with-apikeyhelper) 值作為持有人令牌。307* `Authorization`:`ANTHROPIC_AUTH_TOKEN` 作為持有人令牌,否則 [`apiKeyHelper`](https://code.claude.com/docs/zh-TW/llm-gateway-connect#rotate-credentials-with-apikeyhelper) 值作為持有人令牌。
308* `x-api-key`:Claude Code 解析的 API 金鑰,例如 `ANTHROPIC_API_KEY`。當幫助程式值是唯一的認證時,此標頭也會攜帶它,因此該值會在兩個標頭中到達。308* `x-api-key`:Claude Code 解析的 API 金鑰,例如 `ANTHROPIC_API_KEY`。當幫助程式值是唯一的認證時,此標頭也會攜帶它,因此該值會在兩個標頭中到達。
309 309
310Claude Code 也會發送來自 `ANTHROPIC_CUSTOM_HEADERS` 的任何標頭。當自訂標頭具有非空值時,Claude Code 會發送它來代替同名的內建標頭,不區分大小寫地匹配名稱。310Claude Code 也會發送來自 `ANTHROPIC_CUSTOM_HEADERS` 的任何標頭。當自訂標頭具有非空值時,Claude Code 會發送它來代替同名的內建標頭,不區分大小寫地匹配名稱。
330 330
331### 選擇器條目和快取331### 選擇器條目和快取
332 332
333選擇器是當開發人員在 Claude Code 中運行 `/model` 時打開的互動式模型清單。每個發現的條目在 gateway 發送與 `id` 不同的條目時使用 `display_name` 作為其名稱。否則,當 Claude Code [識別 `id`](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) 時,條目會顯示模型的名稱,當它不識別時顯示 `id`。例如,具有 `id` `my-gateway-claude-sonnet-4-6` 且沒有 `display_name` 的條目顯示為 `Sonnet 4.6`。333選擇器是當開發人員在 Claude Code 中運行 `/model` 時打開的互動式模型清單。每個發現的條目在 gateway 發送與 `id` 不同的條目時使用 `display_name` 作為其名稱。否則,當 Claude Code [識別 `id`](https://code.claude.com/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) 時,條目會顯示模型的名稱,當它不識別時顯示 `id`。例如,具有 `id` `my-gateway-claude-sonnet-4-6` 且沒有 `display_name` 的條目顯示為 `Sonnet 4.6`。
334 334
335發現僅添加 [`availableModels` 受管設定](/docs/zh-TW/settings-reference#availablemodels) 允許的模型。335發現僅添加 [`availableModels` 受管設定](https://code.claude.com/docs/zh-TW/settings-reference#availablemodels) 允許的模型。
336 336
337每個條目也會顯示模型的 `description`,折疊為一行。沒有 `description` 的條目改為讀取「來自 gateway」。在 v2.1.257 之前,每個發現的條目都讀取「來自 gateway」。337每個條目也會顯示模型的 `description`,折疊為一行。沒有 `description` 的條目改為讀取「來自 gateway」。在 v2.1.257 之前,每個發現的條目都讀取「來自 gateway」。
338 338
339當發現的 ID 與選擇器中已有的列匹配時,它不會獲得自己的列:339當發現的 ID 與選擇器中已有的列匹配時,它不會獲得自己的列:
340 340
341* 相同 ID:發現的 ID 完全匹配現有列的 ID,或兩個 ID 是同一 [Fable](/docs/zh-TW/model-config.md#work-with-fable) 版本的拼寫。341* 相同 ID:發現的 ID 完全匹配現有列的 ID,或兩個 ID 是同一 [Fable](https://code.claude.com/docs/zh-TW/model-config.md#work-with-fable) 版本的拼寫。
342* 與內建別名相同的模型:當發現的明確 ID 命名內建別名目前解析到的模型時,選擇器僅顯示別名列。例如,當 `sonnet` 解析為 `claude-sonnet-5-5` 時,發現的 `claude-sonnet-5-5` 會折疊到 `sonnet` 列中,而發現的 `claude-sonnet-5` 仍會獲得自己的列。342* 與內建別名相同的模型:當發現的明確 ID 命名內建別名目前解析到的模型時,選擇器僅顯示別名列。例如,當 `sonnet` 解析為 `claude-sonnet-5-5` 時,發現的 `claude-sonnet-5-5` 會折疊到 `sonnet` 列中,而發現的 `claude-sonnet-5` 仍會獲得自己的列。
343 343
344結果被快取到 `~/.claude/cache/gateway-models.json`,或在 Windows 上 `%USERPROFILE%\.claude\cache\gateway-models.json`,並在每次啟動時刷新。如果您設定 [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars),快取會改為位於該目錄下。如果請求失敗或 gateway 未實現 `/v1/models`,選擇器會回退到上次啟動的快取清單或內建模型清單。如果您的 gateway 在不匹配發現篩選器的別名下提供 Claude 模型,開發人員可以使用[模型配置](/docs/zh-TW/model-config.md)變數手動添加這些別名。344結果被快取到 `~/.claude/cache/gateway-models.json`,或在 Windows 上 `%USERPROFILE%\.claude\cache\gateway-models.json`,並在每次啟動時刷新。如果您設定 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-TW/env-vars),快取會改為位於該目錄下。如果請求失敗或 gateway 未實現 `/v1/models`,選擇器會回退到上次啟動的快取清單或內建模型清單。如果您的 gateway 在不匹配發現篩選器的別名下提供 Claude 模型,開發人員可以使用[模型配置](https://code.claude.com/docs/zh-TW/model-config.md)變數手動添加這些別名。
345 345
346## 相關資源346## 相關資源
347 347
348有關 gateway 文件集的其餘部分和基礎 API 參考:348有關 gateway 文件集的其餘部分和基礎 API 參考:
349 349
350* [Gateway 概述](/docs/zh-TW/gateways.md):什麼是 gateway 以及如何在 Claude 應用程式 gateway 和其他產品之間進行選擇350* [Gateway 概述](https://code.claude.com/docs/zh-TW/gateways.md):什麼是 gateway 以及如何在 Claude 應用程式 gateway 和其他產品之間進行選擇
351* [其他 LLM gateway](/docs/zh-TW/llm-gateway):如何推出您的組織執行的 gateway 以及它如何與 claude.ai 訂閱互動351* [其他 LLM gateway](https://code.claude.com/docs/zh-TW/llm-gateway):如何推出您的組織執行的 gateway 以及它如何與 claude.ai 訂閱互動
352* [為您的組織推出 LLM gateway](/docs/zh-TW/llm-gateway-rollout.md):使用此指南的管理員檢查清單352* [為您的組織推出 LLM gateway](https://code.claude.com/docs/zh-TW/llm-gateway-rollout.md):使用此指南的管理員檢查清單
353* [將 Claude Code 連接到 LLM gateway](/docs/zh-TW/llm-gateway-connect.md):每個開發人員的配置和故障排除表353* [將 Claude Code 連接到 LLM gateway](https://code.claude.com/docs/zh-TW/llm-gateway-connect.md):每個開發人員的配置和故障排除表
354* [測試版標頭參考](https://platform.claude.com/docs/en/api/beta-headers):目前的 `anthropic-beta` 值集合354* [測試版標頭參考](https://platform.claude.com/docs/en/api/beta-headers):目前的 `anthropic-beta` 值集合
355* [Messages API](https://platform.claude.com/docs/en/api/messages):Anthropic 格式 gateway 實現的 API 格式355* [Messages API](https://platform.claude.com/docs/en/api/messages):Anthropic 格式 gateway 實現的 API 格式