[Bug]Claude 报错Validation: Unsupported parameter(s)
2026/8/1 5:07:53 网站建设 项目流程

今天在使用 Claude CLI 配合国产 GLM-5.2 模型(通过 Nvidia 代理网关)时,发现请求报错并中断:

API Error:400Error from provider(Nvidia,z-ai/glm-5.2:400):{"message":"Validation: Unsupported parameter(s):`reasoning`","type":"Bad Request","code":400}Error: Error from provider(Nvidia,z-ai/glm-5.2:400):{"message":"Validation: Unsupported parameter(s):`reasoning`","type":"Bad Request","code":400}

1. 原因

Claude Code(Anthropic 官方 CLI 工具)默认会开启针对 Anthropic 原生 API 的实验性扩展参数,以支持高级特性。

但当请求被路由至 非 Anthropic 的第三方网关或非 Claude 模型(如本案例中的 Nvidia 代理 + GLM-5.2)时,这些目标服务仅支持标准的通用 API 格式(如 OpenAI 兼容结构)。

我这次报错直接指向的非法字段reasoning,通常与 Claude Sonnet 的Thinking / Reasoning实验性功能相关。此外,其他扩展字段(如cache_control、部分tool扩展字段)也可能一并被拒。

根本逻辑:

第三方网关(Nvidia)对请求体进行了严格的 JSON Schema 校验,无法识别的扩展字段(reasoning)会直接触发 400 Bad Request。

2. 解决方案

方案一:临时方案(单次会话生效)

在启动 Claude Code 的当前终端会话中,直接导出环境变量:

exportCLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1

设置后,在当前终端窗口运行claude命令即可生效。关闭终端后失效。

方案二:永久方案(推荐)

根据使用习惯,从以下两种方式中任选其一即可。

修改配置文件

找到 Claude Code 的配置文件settings.json(通常位于~/.claude/settings.json或项目根目录下的.claude/settings.json),在env字段中添加环境变量:

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

保存文件后,重启 Claude Code 进程即可生效。

修改环境变量

根据操作系统和 Shell 环境,将变量写入对应的配置文件中。

Mac / Linux(bash):

echo'export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1'>>~/.bashrcsource~/.bashrc

Mac(zsh,默认):

echo'export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1'>>~/.zshrcsource~/.zshrc

Windows(PowerShell):

[System.Environment]::SetEnvironmentVariable("CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS","1","User")

⚠️ 注意:PowerShell 设置的是用户级环境变量,设置后必须关闭所有终端窗口并重新打开,或注销重新登录才能生效(仅重启当前 PowerShell 窗口可能不生效)。

3. 验证

执行以下命令,检查变量是否已正确加载:

echo$CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS

输出结果为1即表示配置成功。此时再次运行 Claude CLI,报错应已消失。

参考文档:https://docs.apiyi.com/scenarios/programming/claude-code/aws-400-error#mac-%2F-linux%EF%BC%88bash%EF%BC%89

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询