|

Claude Code 环境变量完全指南:解决 AWS Bedrock 兼容性报错只需 1 个设置

作者注:详解 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-environment-variables-complete-guide 图示


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 等第三方平台,同样在这里配置即可。

claude-code-environment-variables-complete-guide 图示


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_KEYANTHROPIC_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 调用时同样支持这些环境变量配置。

claude-code-environment-variables-complete-guide 图示


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 头部,而环境变量未能完全拦截。解决方案:

  1. 降级到 2.1.68 等已知稳定版本
  2. 同时设置 DISABLE_PROMPT_CACHING=1 禁用缓存相关头部
  3. 如果使用 LiteLLM 网关,配置 anthropic_beta_headers_config.json 做精细过滤
  4. 换用 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 环境变量的核心要点:

  1. 解决 AWS Bedrock 报错: 设置 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 禁用实验性 Beta 头部,一行配置解决「Unexpected value(s) for the anthropic-beta header」错误
  2. 60+ 环境变量分 6 大类: 认证配置、模型选择、平台兼容、功能开关、上下文管理、其他设置
  3. 两种配置方式: Shell export(临时)和 settings.json(永久),推荐永久配置写入 settings.json
  4. 第三方平台简化方案: 通过 API易 apiyi.com 等统一 API 平台,只需设置 ANTHROPIC_API_KEYANTHROPIC_BASE_URL 两个变量,无需处理复杂的云平台认证和 Beta 头部兼容性

推荐通过 API易 apiyi.com 快速体验 Claude Code 接入,平台提供免费额度和统一接口,避免 AWS Bedrock/Vertex AI 配置中的各种兼容性坑。


📚 参考资料

  1. Claude Code 官方文档 – 环境变量: 完整的环境变量列表和说明

    • 链接: code.claude.com/docs/en/env-vars
    • 说明: 所有 60+ 环境变量的官方权威参考
  2. Claude Code 官方文档 – 设置: 配置作用域和 settings.json 规范

    • 链接: code.claude.com/docs/en/settings
    • 说明: 理解 Managed/User/Project/Local 四级配置体系
  3. Claude Code 官方文档 – Amazon Bedrock: AWS Bedrock 集成指南

    • 链接: code.claude.com/docs/en/amazon-bedrock
    • 说明: Bedrock 专用配置和常见问题解决
  4. GitHub Issue #22893 – DISABLE_EXPERIMENTAL_BETAS 不完全生效: 社区 Bug 报告

    • 链接: github.com/anthropics/claude-code/issues/22893
    • 说明: 了解该环境变量的已知局限和临时解决方案
  5. LiteLLM – Claude Code Beta Headers 管理: 网关层面的 Beta 头部过滤方案

    • 链接: docs.litellm.ai/docs/tutorials/claude_code_beta_headers
    • 说明: 使用 LiteLLM 网关时的精细化 Beta 头部控制

作者: APIYI 技术团队
技术交流: 欢迎在评论区讨论 Claude Code 配置经验,更多使用教程可访问 API易 docs.apiyi.com 文档中心

类似文章