跳到主要内容

CC-006:请求返回 400,含实验性 Beta 参数

字段内容
影响组件Claude Code 本体
发现版本不限版本
系统环境Linux / macOS / Windows
解决人
发现日期2026-03-14

问题现象

使用 Claude Code 调用部分 Claude 上游时,执行对话请求后终端返回 400 错误,日志中可见类似:

API Error: 400 {"error":{"type":"invalid_request_error","message":"...invalid beta flag..."}}

错误与请求内容无关,新建对话后依然复现。


根因分析

Claude Code 构造请求
→ 自动附加实验性 Beta 功能请求头(anthropic-beta)
→ 当前 Claude 上游不接受该请求头
→ 返回 400 Invalid Request

Claude Code 默认携带实验性 Beta 参数,部分 Claude 上游不支持该参数,导致请求被直接拒绝并返回 400。


修复步骤

第一步:先用环境变量确认问题

macOS / Linux

export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
claude

Windows PowerShell

$env:CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS = "1"
claude

如果加上该变量后可正常请求,说明当前 400 错误由实验性 Beta 参数触发。

第二步:写入全局配置文件,避免每次手动设置

Claude Code 全局配置文件路径:

平台路径
macOS / Linux~/.claude/settings.json
WindowsC:\\Users\\<USERNAME>\\.claude\\settings.json

如果文件中已有env字段,在原有内容下追加这一项,不要覆盖已有配置:

{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
}
}

如果你本来就是通过settings.json配置 Base URL 和 API Key,可以直接合并成:

{
"env": {
"ANTHROPIC_BASE_URL": "https://duoapi.zeabur.app",
"ANTHROPIC_API_KEY": "sk-xxx",
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
}
}

第三步:保存配置后重新打开终端并启动 Claude Code

保存settings.json后,建议完全关闭当前终端窗口再重新打开,避免旧会话继续使用未更新的环境。

claude

第四步:保留来源链接,便于后续核对

参考反馈来源:QuantumNous/new-api issue #2772


预防措施

做法避免的问题
遇到该类上游 400 时,在全局配置文件中预先写入CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1每次打开新终端都要重复设置,或再次触发 400
修改settings.json后彻底关闭终端再重开旧会话沿用旧配置,误以为修复无效