跳转到内容

invalid_request_error Kimi For Coding Claude Code

Quick fix

在 cc-switch 的 Kimi 配置中设置 ENABLE_TOOL_SEARCH=false。

报错原文
{"error":{"type":"<nil>","message":"{\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\"\n    ,\"message\":\"***.***.content.2.tool_use.id: Field required\"},\"request_id\":\"req_vrtx_011CWar3KndbH2tutuEY6z78\"} (request id: 20251229184758483111549vDuwIJ0i)"},"type":"error"}

该问题由 CC Switch 的全局通用配置(common_config_claude)导致。当全局设置了 `ENABLE_TOOL_SEARCH=true` 时,该环境变量会被无差别地注入到所有供应商的配置中。

Claude Code(版本 ≥ v2.1.238)仅在 Anthropic 官方端点默认支持 Tool Search 机制。当使用非官方端点(如 Kimi For Coding)且强制开启此开关时,Claude Code 会尝试使用工具延迟(deferral)机制,向第三方 API 发送包含 `tool_reference` 内容块的请求。Kimi 等第三方提供商不支持这种特定的 `tool_reference` 格式,因此返回 HTTP 400 错误及 `invalid_request_error`。

  1. 打开 cc-switch 的配置文件,找到 Kimi For Coding 的供应商配置部分。

  2. 在该供应商的配置下显式添加环境变量 `ENABLE_TOOL_SEARCH` 并设置为 `false`,以覆盖全局设置。

ToolClaude Code
Version≥ v2.1.238
PlatformsmacOSWindowsLinux
为什么全局关闭了 Tool Search 还是报错?
因为 CC Switch 的全局通用配置(common_config_claude)中的 `ENABLE_TOOL_SEARCH=true` 会强制注入到每个供应商。必须在具体供应商(如 Kimi)的配置中显式设为 false 才能覆盖。
这个报错是 Kimi 的 bug 吗?
不是 Kimi 的 bug。这是 Claude Code 在非官方端点使用了其特有的 `tool_reference` 机制,而 Kimi 的 API 不兼容该格式导致的协议冲突。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。