Claude Code 是开发者常用的终端 AI Agent。它不仅能聊天,还会读文件、改代码、调用工具、使用 MCP,部分场景还会触发 Web Search。把 Claude Code 接到 DeepAI API 中转站 或其他兼容网关时,最容易出现一种“半通不通”的状态:普通对话正常,但联网搜索、工具调用或 MCP 能力失败。

GitHub Issue 背景:普通提示可用,Web Search 失败
Bifrost 的 GitHub 仓库里有一个已关闭且标记为 completed 的 Issue:用户把 Claude Code 的 ANTHROPIC_BASE_URL 指向 Bifrost 的 Anthropic route。普通 Claude Code 提示可以正常通过,但触发 Web Search 时失败。错误来自上游 OpenAI-compatible provider,提示 tool_choice 和 tools 参数不匹配。
这个问题最后不是靠换模型解决,而是用户按照 Bifrost 的 Claude Code 集成指南重新配置后,Web Search 恢复可用。这说明:Claude Code 的“对话能力”和“工具能力”不是同一个验证点。你能收到模型回复,并不代表搜索、MCP、工具调用、文件读写代理全部都已经兼容。
Claude Code 接 API 中转站时要先分清两类接口
多数桌面客户端和工作流工具使用 OpenAI-compatible API,例如常见的 Base URL 是:
https://api.deepai.wang/v1
但 Claude Code 更常见的是 Anthropic-compatible 路由,例如通过环境变量指定 ANTHROPIC_BASE_URL 和 ANTHROPIC_API_KEY。如果你的中转站或网关提供 Anthropic-compatible endpoint,就应使用该 endpoint;如果只有 OpenAI-compatible endpoint,则通常需要一个兼容层把 Anthropic Messages、工具调用和搜索请求正确转换过去。
所以,接入 DeepAI API 中转站时不要只问“Base URL 是什么”,还要问“Claude Code 当前走的是 Anthropic-compatible 还是 OpenAI-compatible 桥接路线”。这一步没分清,后面会出现对话可用、工具不可用的奇怪问题。
推荐配置检查清单
- 确认 Claude Code 使用的环境变量是否生效,例如
ANTHROPIC_BASE_URL、ANTHROPIC_API_KEY和自定义 Headers。 - 确认 Base URL 指向的是 Claude Code 需要的兼容路由,而不是误填 OpenAI 的
/chat/completions。 - 先用普通代码问答测试,再单独测试 Web Search、MCP、文件读取和工具调用。
- 如果通过桥接服务把 Anthropic 请求转 OpenAI-compatible 请求,确认桥接层支持
tools、tool_choice、流式输出和消息格式转换。 - 把 Claude Code 日志、网关日志和 DeepAI API 中转站后台日志对照,确认请求路径、模型名和错误码。
为什么 Web Search 比普通对话更容易失败
普通对话通常只需要模型接收 messages 并返回文本。Web Search 和工具调用则复杂得多:模型要识别工具、选择工具、调用工具、接收工具结果,再继续生成答案。如果中间任意一层没有正确翻译工具定义或 tool_choice 参数,就可能报 400、工具不存在、参数不匹配或流式中断。
- 对话成功:只能证明认证、基础路由和模型文本生成大体可用。
- 搜索失败:可能是模型不支持搜索、网关不支持工具转换,或请求头/权限缺失。
- MCP 失败:要检查 Claude Code 本地 MCP 配置、工具返回格式和模型端工具调用能力。
- 桥接失败:常见原因是 Anthropic 工具格式和 OpenAI 工具格式没有一一映射。
DeepAI API 中转站用户的排查顺序
如果你希望 Claude Code 通过 DeepAI API 中转站统一调模型,可以按下面顺序排查:
- 第一步:确认 DeepAI 后台模型是否支持你要用的能力,例如长上下文、工具调用、流式输出。
- 第二步:确认 Claude Code 当前走的是哪条兼容路线:Anthropic route、OpenAI-compatible bridge,还是本地代理。
- 第三步:只测试普通对话,确认 Key、网络和模型名无误。
- 第四步:测试工具调用和 MCP,不要一开始就叠加 Web Search、文件编辑和复杂代码任务。
- 第五步:如果搜索失败但对话正常,优先检查工具支持和桥接层,而不是反复更换 API Key。
常见错误与处理方式
- 401:检查 API Key、Header 名称、是否多填 Bearer、Key 是否属于当前中转站。
- 404:检查 Base URL 是否指向正确 route,是否重复拼接
/v1或接口路径。 - 400 tool_choice:检查模型与网关是否支持工具调用,桥接层是否正确转换工具定义。
- 搜索不可用:确认 Claude Code 集成指南中要求的 Headers、模型配置和工具能力是否完整配置。
- 流式中断:检查网关是否支持 SSE/stream,以及上游模型是否允许长时间工具链调用。
为什么建议单独给 Claude Code 建一个 Key
Claude Code 的调用形态和普通聊天客户端不同。一次任务可能包含多轮思考、文件读取、工具调用、代码修改和总结。如果把它和 Dify、n8n、Open WebUI 共用同一个 Key,后台日志很快会混在一起。建议在 DeepAI API 中转站里给 Claude Code 单独创建 Key,并为它设置合理额度、模型权限和日志标记。
这样一旦出现搜索失败、工具调用 400 或成本异常,你可以直接在 DeepAI API 中转站后台按 Key 过滤,快速定位 Claude Code 的真实请求和错误来源。
参考资料
- Bifrost Issue #3596:Claude Code web search through Anthropic route
- Bifrost Claude Code 集成指南
- DeepAI API 中转站教程导航
- 代码 Agent 教程合集
总结
Claude Code 接入 DeepAI API 中转站或兼容网关时,不要只用“能不能聊天”判断配置是否成功。普通对话、Web Search、MCP 和工具调用是四个不同层级。对话正常但搜索失败时,优先检查 Anthropic-compatible 路由、Headers、模型工具能力和桥接层的 tool_choice 转换。把这些环节拆开验证,Claude Code 才能稳定用于真实代码任务,而不是只停留在简单问答。