作者注:詳解 Claude Code 全部 60+ 環境變量的作用和配置方法,重點解決 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS 解決第三方平臺 anthropic-beta header 報錯
在使用 Claude Code 連接 AWS Bedrock、Google Vertex AI 或其他第三方 LLM 網關時,你很可能遇到過這個報錯:"Unexpected value(s) for the anthropic-beta header"。這個問題的根源是 Claude Code 默認會發送 Anthropic API 特有的實驗性 Beta 頭部,而 AWS Bedrock 等第三方平臺並不認識這些頭部。
解決方案只需一行設置:CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1。
但 Claude Code 的環境變量遠不止這一個——官方文檔列出了 60+ 個環境變量,覆蓋認證配置、模型選擇、性能調優、功能開關等各個方面。本文將系統梳理這些環境變量,幫你快速定位和解決 Claude Code 的各類配置問題。
核心價值: 讀完本文,你將掌握 Claude Code 環境變量的完整體系,能夠快速解決 AWS Bedrock/Vertex AI 兼容性問題,並學會通過環境變量優化 Claude Code 的使用體驗和成本。
<!– 標題 –>
<!– 中心:Claude Code 標識 –>
<!– 左上:認證配置 –>
<!– 右上:模型選擇 –>
<!– 左下:功能開關 –>
<!– 右下:上下文管理 –>
<!– 底部重點:平臺兼容(高亮) –>
<!– 底部品牌 –>
Claude Code 環境變量核心要點
Claude Code 的 60+ 個環境變量可以分爲 6 大類。以下是你最需要關注的核心變量:
| 類別 | 關鍵變量 | 作用 | 常見使用場景 |
|---|---|---|---|
| 平臺兼容 | CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS |
禁用 anthropic-beta 實驗性頭部 | 解決 AWS Bedrock/Vertex AI 報錯 |
| 認證配置 | ANTHROPIC_API_KEY |
設置 API 密鑰 | 使用第三方 API 平臺調用 |
| 模型選擇 | ANTHROPIC_MODEL |
指定使用的模型 | 切換到特定模型版本 |
| 性能調優 | CLAUDE_CODE_MAX_OUTPUT_TOKENS |
控制最大輸出 Token | 限制長回覆節省成本 |
| 功能開關 | DISABLE_PROMPT_CACHING |
禁用 Prompt 緩存 | 調試或兼容性需要 |
| 上下文管理 | CLAUDE_AUTOCOMPACT_PCT_OVERRIDE |
控制上下文自動壓縮閾值 | 優化長對話體驗 |
Claude Code 環境變量的兩種設置方式
方式一:Shell 環境變量(臨時生效)
在終端中設置後啓動 Claude Code,僅當前會話有效:
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
export ANTHROPIC_API_KEY="your-api-key"
claude
方式二:settings.json 配置(永久生效)
在 ~/.claude/settings.json 中配置 env 字段,每次啓動自動加載:
{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
"ANTHROPIC_API_KEY": "your-api-key"
}
}
🎯 推薦方式: 對於需要長期生效的設置(如 API Key、平臺兼容性修復),建議使用 settings.json 方式,避免每次手動 export。如果你的 API Key 來自 API易 apiyi.com 等第三方平臺,同樣在這裏配置即可。
<!– 標題 –>
<!– ===== 路徑 A: Shell export ===== –>
<!– 標籤 –>
<!– ===== 路徑 B: settings.json ===== –>
<!– 標籤 –>
<!– 優先級說明 –>
<!– 優先級箭頭 –>
<!– 底部品牌 –>
Claude Code 環境變量重點解讀:解決 AWS Bedrock 兼容性問題
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS 詳解
這是本文的核心主角。當你通過 AWS Bedrock、Google Vertex AI、LiteLLM 等第三方網關使用 Claude Code 時,Claude Code 會自動在請求頭中添加 Anthropic 的實驗性 Beta 標識,例如:
anthropic-beta: prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20
這些 Beta 標識是 Anthropic 直連 API 的特性,AWS Bedrock 等第三方平臺無法識別,於是返回錯誤:
Error: Unexpected value(s) for the anthropic-beta header
解決方法:
# 方式一:Shell 命令
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
# 方式二:settings.json
{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
}
}
設置爲 1 後,Claude Code 將不再發送這些實驗性 Beta 頭部,從而兼容所有第三方平臺。
已知問題與臨時解決方案
根據 GitHub Issues 記錄,部分 Claude Code 版本(2.1.18 之後)存在該環境變量不完全生效的問題——即使設置了 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1,某些新增的 Beta 頭部(如 advanced-tool-use-2025-11-20)仍然會被髮送。
如果你仍然遇到問題,可以嘗試以下額外措施:
- 降級 Claude Code 版本: 回退到 2.1.68 等已知穩定版本
- 使用 LiteLLM 網關: LiteLLM 提供了
anthropic_beta_headers_config.json配置文件,可以精細控制哪些 Beta 頭部被轉發 - 同時設置 DISABLE_PROMPT_CACHING: 禁用 Prompt 緩存可以避免
prompt-caching-scope相關的 Beta 頭部
# 全面兼容設置
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
export DISABLE_PROMPT_CACHING=1
Claude Code 環境變量完整分類速查
第一類:認證與 API 配置
這是最基礎也是最常用的環境變量類別,控制 Claude Code 如何連接到 API 服務:
| 變量名 | 作用 | 使用場景 |
|---|---|---|
ANTHROPIC_API_KEY |
API 密鑰,作爲 X-Api-Key 頭部發送 | 使用第三方 API 平臺(如 API易 apiyi.com) |
ANTHROPIC_AUTH_TOKEN |
自定義 Authorization 頭部值(自動加 Bearer 前綴) | 自定義認證方案 |
ANTHROPIC_CUSTOM_HEADERS |
添加自定義請求頭(Name: Value 格式) | 需要額外頭部的網關 |
ANTHROPIC_BASE_URL |
自定義 API 端點地址 | 連接第三方 API 網關 |
CLAUDE_CODE_CLIENT_CERT |
mTLS 客戶端證書路徑 | 企業級安全認證 |
CLAUDE_CODE_CLIENT_KEY |
mTLS 私鑰路徑 | 企業級安全認證 |
🎯 第三方平臺用戶注意: 使用 API易 apiyi.com 等第三方 API 平臺時,需要同時設置
ANTHROPIC_API_KEY和ANTHROPIC_BASE_URL。Claude Code 會優先使用環境變量中的 API Key,即使你已登錄 Anthropic 訂閱賬號。
第二類:模型選擇與配置
控制 Claude Code 使用哪個模型以及模型的行爲參數:
| 變量名 | 作用 | 默認值 |
|---|---|---|
ANTHROPIC_MODEL |
指定主模型名稱 | Claude Sonnet 4.6 |
ANTHROPIC_DEFAULT_OPUS_MODEL |
指定 Opus 級模型 | Claude Opus 4.6 |
ANTHROPIC_DEFAULT_SONNET_MODEL |
指定 Sonnet 級模型 | Claude Sonnet 4.6 |
ANTHROPIC_DEFAULT_HAIKU_MODEL |
指定 Haiku 級模型(後臺任務) | Claude Haiku 4.5 |
CLAUDE_CODE_SUBAGENT_MODEL |
子代理使用的模型 | 繼承主模型 |
CLAUDE_CODE_MAX_OUTPUT_TOKENS |
最大輸出 Token 數 | 32,000(最大 64,000) |
CLAUDE_CODE_EFFORT_LEVEL |
推理深度(low/medium/high/max/auto) | auto |
第三類:平臺兼容與網關配置
這類變量專門解決 Claude Code 與不同雲平臺和 LLM 網關的兼容性問題:
| 變量名 | 作用 | 適用平臺 |
|---|---|---|
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS |
禁用實驗性 Beta 頭部 | AWS Bedrock / Vertex AI / 第三方網關 |
CLAUDE_CODE_USE_BEDROCK |
啓用 AWS Bedrock 模式 | AWS Bedrock |
CLAUDE_CODE_SKIP_BEDROCK_AUTH |
跳過 AWS 認證(使用網關時) | LLM 網關 + Bedrock |
CLAUDE_CODE_USE_FOUNDRY |
啓用 Microsoft Foundry 模式 | Azure AI |
CLAUDE_CODE_SKIP_FOUNDRY_AUTH |
跳過 Azure 認證 | LLM 網關 + Azure |
CLAUDE_CODE_SKIP_VERTEX_AUTH |
跳過 Google Vertex 認證 | LLM 網關 + Vertex |
ANTHROPIC_FOUNDRY_BASE_URL |
Foundry 資源的基礎 URL | Microsoft Foundry |
ANTHROPIC_FOUNDRY_API_KEY |
Foundry API 密鑰 | Microsoft Foundry |
ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION |
Haiku 模型的 AWS 區域 | Bedrock 多區域 |
第四類:功能開關
通過 DISABLE_ 或 CLAUDE_CODE_DISABLE_ 前綴的變量關閉特定功能:
| 變量名 | 設爲 1 的效果 |
|---|---|
DISABLE_PROMPT_CACHING |
禁用 Prompt 緩存 |
DISABLE_AUTOUPDATER |
禁用自動更新 |
DISABLE_TELEMETRY |
禁用遙測數據收集 |
DISABLE_ERROR_REPORTING |
禁用錯誤報告 |
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC |
一鍵禁用上述全部非必要流量 |
CLAUDE_CODE_DISABLE_AUTO_MEMORY |
禁用自動記憶功能 |
CLAUDE_CODE_DISABLE_1M_CONTEXT |
禁用百萬 Token 上下文窗口 |
CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING |
禁用自適應推理 |
CLAUDE_CODE_DISABLE_FAST_MODE |
禁用快速模式 |
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS |
禁用後臺任務功能 |
CLAUDE_CODE_DISABLE_CRON |
禁用定時任務 |
CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS |
移除內置 Git 指令 |
第五類:上下文與性能管理
控制 Claude Code 如何管理上下文窗口和資源使用:
| 變量名 | 作用 | 默認值 |
|---|---|---|
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE |
自動壓縮觸發百分比 | 95% |
CLAUDE_CODE_AUTO_COMPACT_WINDOW |
用於壓縮計算的 Token 窗口大小 | 模型上下文窗口 |
CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS |
文件讀取最大 Token | 默認值 |
CLAUDE_CODE_API_KEY_HELPER_TTL_MS |
憑證刷新間隔(毫秒) | — |
CLAUDE_CODE_TMPDIR |
臨時文件目錄 | /tmp(Unix) |
CLAUDE_CODE_SHELL |
指定使用的 Shell | 自動檢測 |
🎯 性能優化建議: 如果你在長對話中發現 Claude Code 頻繁壓縮上下文,可以將
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE設爲更低的值(如50),讓壓縮提前觸發,減少信息丟失。通過 API易 apiyi.com 調用時同樣支持這些環境變量配置。
<!– 標題 –>
<!– 第一行:3 個卡片 –>
<!– 1. 平臺兼容(高亮) –>
<!– 2. 認證配置 –>
<!– 3. 模型選擇 –>
<!– 第二行:3 個卡片 –>
<!– 4. 功能開關 –>
<!– 5. 上下文管理 –>
<!– 6. 其他 –>
<!– 底部統計 –>
Claude Code 環境變量快速上手
極簡示例:配置 Claude Code 連接第三方 API 平臺
# 在終端中設置環境變量後啓動 Claude Code
export ANTHROPIC_API_KEY="sk-your-api-key"
export ANTHROPIC_BASE_URL="https://vip.apiyi.com/v1"
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
claude
查看完整的 settings.json 配置模板(含 AWS Bedrock 兼容設置)
{
"env": {
"ANTHROPIC_API_KEY": "sk-your-api-key",
"ANTHROPIC_BASE_URL": "https://vip.apiyi.com/v1",
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
"CLAUDE_CODE_MAX_OUTPUT_TOKENS": "32000",
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80",
"DISABLE_TELEMETRY": "1"
},
"permissions": {
"allow": ["Read", "Glob", "Grep"],
"deny": []
}
}
AWS Bedrock 專用配置:
{
"env": {
"CLAUDE_CODE_USE_BEDROCK": "1",
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
"DISABLE_PROMPT_CACHING": "1",
"ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION": "us-east-1"
}
}
Microsoft Foundry 專用配置:
{
"env": {
"CLAUDE_CODE_USE_FOUNDRY": "1",
"ANTHROPIC_FOUNDRY_BASE_URL": "https://my-resource.services.ai.azure.com/anthropic",
"ANTHROPIC_FOUNDRY_API_KEY": "your-foundry-key",
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
}
}
建議: 如果你不想折騰 AWS Bedrock 或 Azure 的複雜配置,可以通過 API易 apiyi.com 直接使用 Claude 全系列模型。只需設置 API Key 和 Base URL 兩個變量,無需處理雲平臺認證和兼容性問題。
常見問題
Q1: 設置了 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 但仍然報 anthropic-beta header 錯誤怎麼辦?
這是 Claude Code 的已知 Bug(GitHub Issue #22893、#20031)。部分新版本會引入新的 Beta 頭部,而環境變量未能完全攔截。解決方案:
- 降級到 2.1.68 等已知穩定版本
- 同時設置
DISABLE_PROMPT_CACHING=1禁用緩存相關頭部 - 如果使用 LiteLLM 網關,配置
anthropic_beta_headers_config.json做精細過濾 - 換用 API易 apiyi.com 等兼容性更好的第三方平臺,避免直連 Bedrock 的頭部問題
Q2: ANTHROPIC_API_KEY 環境變量和 /login 登錄有什麼優先級關係?
環境變量 API Key 優先級高於 /login 登錄的訂閱認證。當你設置了 ANTHROPIC_API_KEY 環境變量後,即使已通過 /login 登錄了 Claude Pro/Team 訂閱,Claude Code 也會使用環境變量中的 Key,按 API 按量計費。如果你通過 API易 apiyi.com 獲取的 Key,費用將通過該平臺結算。
Q3: 如何查看當前 Claude Code 生效的環境變量配置?
在 Claude Code 交互模式中運行 /config 命令,可以查看當前所有配置項的狀態,包括環境變量、settings.json 設置和默認值。也可以在終端中運行 env | grep -E "CLAUDE|ANTHROPIC|DISABLE" 查看已設置的相關環境變量。
總結
Claude Code 環境變量的核心要點:
- 解決 AWS Bedrock 報錯: 設置
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1禁用實驗性 Beta 頭部,一行配置解決「Unexpected value(s) for the anthropic-beta header」錯誤 - 60+ 環境變量分 6 大類: 認證配置、模型選擇、平臺兼容、功能開關、上下文管理、其他設置
- 兩種配置方式: Shell export(臨時)和 settings.json(永久),推薦永久配置寫入 settings.json
- 第三方平臺簡化方案: 通過 API易 apiyi.com 等統一 API 平臺,只需設置
ANTHROPIC_API_KEY和ANTHROPIC_BASE_URL兩個變量,無需處理複雜的雲平臺認證和 Beta 頭部兼容性
推薦通過 API易 apiyi.com 快速體驗 Claude Code 接入,平臺提供免費額度和統一接口,避免 AWS Bedrock/Vertex AI 配置中的各種兼容性坑。
📚 參考資料
-
Claude Code 官方文檔 – 環境變量: 完整的環境變量列表和說明
- 鏈接:
code.claude.com/docs/en/env-vars - 說明: 所有 60+ 環境變量的官方權威參考
- 鏈接:
-
Claude Code 官方文檔 – 設置: 配置作用域和 settings.json 規範
- 鏈接:
code.claude.com/docs/en/settings - 說明: 理解 Managed/User/Project/Local 四級配置體系
- 鏈接:
-
Claude Code 官方文檔 – Amazon Bedrock: AWS Bedrock 集成指南
- 鏈接:
code.claude.com/docs/en/amazon-bedrock - 說明: Bedrock 專用配置和常見問題解決
- 鏈接:
-
GitHub Issue #22893 – DISABLE_EXPERIMENTAL_BETAS 不完全生效: 社區 Bug 報告
- 鏈接:
github.com/anthropics/claude-code/issues/22893 - 說明: 瞭解該環境變量的已知侷限和臨時解決方案
- 鏈接:
-
LiteLLM – Claude Code Beta Headers 管理: 網關層面的 Beta 頭部過濾方案
- 鏈接:
docs.litellm.ai/docs/tutorials/claude_code_beta_headers - 說明: 使用 LiteLLM 網關時的精細化 Beta 頭部控制
- 鏈接:
作者: APIYI 技術團隊
技術交流: 歡迎在評論區討論 Claude Code 配置經驗,更多使用教程可訪問 API易 docs.apiyi.com 文檔中心
