Invalid schema for function 'web_search':Claude Code
Quick fix
将 cc-switch 升级到 v3.17.0 或更高版本;暂时无法升级时,改用 DeepSeek 原生 Anthropic-compatible API。
Symptom
Section titled “Symptom”API Error: 400 Error from provider (DeepSeek): Invalid schema for function 'web_search': schema must be a JSON Schema of 'type: "object"', got 'type: null'.在 Claude Code 通过 cc-switch 的 OpenAI Chat Completions 转换层连接 OpenCode Go/DeepSeek 时,客户端工具的 Anthropic `input_schema` 可能省略根级 `type`。旧版 `clean_schema` 会原样传递该结构,导致转换后的 `parameters` 没有 `type`;DeepSeek 等严格网关将其视为 `type: null` 并返回 400。该问题也可能表现为 Bash、Write、Edit、Agent 等带参工具的参数丢失或调用失败,而无参工具和走独立协议通道的 MCP 工具可能不受影响。
Issue #3844 曾推测缺少 `required` 数组或嵌套 schema 也可能参与问题,但维护者在 Issue #3439 中确认的修复是:仅为缺少 `type` 的根 schema 默认补上 `"object"`,并在同时缺少 `properties` 时补上空对象;嵌套子 schema 不作这种修改。该修复已在 v3.17.0 发布。Issue #3844 后来因长期无新复现信息按超时关闭,并建议在 4.0 重构后使用最新版复测。
将 cc-switch 从受影响的 v3.16.0 或 v3.16.1 升级到 v3.17.0 或更高版本。
继续使用 OpenCode Go、DeepSeek 和 OpenAI Chat Completions 格式,重新启动 Claude Code 并触发 WebSearch,确认不再出现 `type: null`。
如果暂时无法升级,改为直接使用 DeepSeek 原生 Anthropic-compatible API;Issue #3439 的对比测试和 Issue #3844 的报告均确认绕过该转换链路后问题消失。
如果最新版仍能复现,记录当前 CC Switch 版本、系统、完整复现步骤以及更新后的错误日志或截图,并重新打开或提交 issue。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 2 个真实 issue
- 为什么直接使用 Anthropic-compatible 格式时不会报错?
- Issue #3439 的对比测试显示,直接连接 DeepSeek 原生 Anthropic base URL 时 WebSearch 正常;该路径绕过了出现问题的 OpenAI Chat Completions schema 转换层。
- 为什么无参工具和 MCP 工具还能正常工作?
- Issue #3844 报告称 TaskList、CronList 等无参工具不依赖同样的参数 schema,而 MCP 工具使用独立协议通道,不经过 Anthropic→OpenAI 格式转换。
- 升级后仍出现 `type: null` 怎么办?
- 维护者要求使用最新版复测;若仍复现,应补充 CC Switch 版本、操作系统、完整复现步骤及相关日志或截图后重新报告。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。