[Bug]Claude 报错Validation: Unsupported parameter(s)

[Bug]Claude 报错Validation: Unsupported parameter(s)
今天在使用 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 CodeAnthropic 官方 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_BETAS1设置后在当前终端窗口运行claude命令即可生效。关闭终端后失效。方案二永久方案(推荐)根据使用习惯从以下两种方式中任选其一即可。修改配置文件找到 Claude Code 的配置文件settings.json通常位于~/.claude/settings.json或项目根目录下的.claude/settings.json在env字段中添加环境变量env:{CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS:1}保存文件后重启 Claude Code 进程即可生效。修改环境变量根据操作系统和 Shell 环境将变量写入对应的配置文件中。Mac / Linuxbash:echoexport CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS1~/.bashrcsource~/.bashrcMaczsh默认echoexport CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS1~/.zshrcsource~/.zshrcWindowsPowerShell:[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