恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Claude Code 报错 model‘s tool call could not be parsed:从 Anthropic Message 到 OpenAI Chat Completions 的

  • 首页
  • 资讯中心
  • /
  • Claude Code 报错 model‘s tool call could not be parsed:从 Anthropic Message 到 OpenAI Chat Completions 的

相关资讯

吃透线性表:顺序表与单链表的内存模型、边界条件与工程选型 2026/10/18 7:01:34
企业微信聊天记录导出来之后,谁能看、能给谁?隐私边界与共享控制的完整攻略 2026/10/18 7:01:34
场地预定小程序+收银+会员系统:锁场、支付回调与对账实战 2026/10/18 7:01:34

最新资讯

重磅:微软自研模型完成预训练,算力消耗仅为盟友四分之一
Agentic RAG 实战:让 Agent 自己决定怎么检索、检索几次
检索工具化封装:把 Elasticsearch、SQL、Confluence 包装成 Agent 的统一工具
降低AI检测率免费的方法有哪些?手改论文加1000字免费降AIGC,AI率能降多少?
Qt+SQLite 试题库管理系统:数据建模与随机抽题实战指南
企业知识库RAG落地:从Demo到生产的架构决策与避坑指南

今日推荐

基于GMM的语音识别系统原理与MATLAB实现详解
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

本周热门

基于GMM的语音识别系统原理与MATLAB实现详解
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

Claude Code 报错 model‘s tool call could not be parsed:从 Anthropic Message 到 OpenAI Chat Completions 的

发布时间:2026/10/18 7:01:34
Claude Code 报错 model‘s tool call could not be parsed:从 Anthropic Message 到 OpenAI Chat Completions 的 1. 先搞清楚这个报错到底在说什么models tool call could not be parsed这个报错第一次看到的时候很容易以为是模型本身出了问题或者以为是自己写的工具函数参数有语法错误。但实际排查下来绝大多数情况跟模型能力无关而是两种 API 格式在 tool call 字段结构上对不上。Claude Code 这个客户端底层走的是 Anthropic Message 格式。它期望模型返回的 tool call 长这样content数组里有一个type: tool_use的块块里有id、name、input三个字段input是一个已经解析好的 JSON 对象。而 OpenAI Chat Completions 格式里tool call 藏在choices[0].message.tool_calls数组里每个元素是id、type: function、function.name、function.arguments注意arguments是一个字符串不是对象。问题就出在这里。当你把一个只支持 OpenAI Chat Completions 的模型直接配给 Claude Code 用客户端拿到的是 OpenAI 格式的响应但它按 Anthropic 的规则去解析找不到content[].tool_use或者找到了但input字段是字符串而不是对象解析器直接抛错。这就是models tool call could not be parsed的来源。这个报错适合谁看如果你正在用 Claude Code 做编码 Agent接的是第三方模型通道或者你在本地做 API 格式转换的实验那这篇基本能覆盖你的场景。核心检索词就是 Claude Code、models tool call could not be parsed、API 格式、Anthropic Message、OpenAI Chat Completions 这几个下面会围绕它们展开。要解决它思路不是去改模型而是在中间加一层格式转换让 Anthropic Message 和 OpenAI Chat Completions 能互相翻译。TaoToken 提供的统一 Key 和 API 通道就是干这个的你用一个 Base URL 和一个 Key它帮你把请求和响应在两种格式之间转好Claude Code 那边就正常了。2. TaoToken 前置统一 Key 与 API 通道怎么准备在动手改配置之前先把 TaoToken 这边的准备工作做完。这一步不复杂但顺序别搞反否则后面调试会多绕几圈。首先你需要一个 TaoToken 的 API Key。打开 https://taotoken.net/api-keys 登录后创建一个新的 Key复制出来存好。这个 Key 是后面所有配置里ANTHROPIC_AUTH_TOKEN或者OPENAI_API_KEY要填的值。注意 Key 只在创建时完整显示一次关掉页面就看不到了所以先粘到安全的地方。然后是 Base URL。TaoToken 的 API 入口是 https://taotoken.net/api 这个地址在配置里会作为ANTHROPIC_BASE_URL或者OPENAI_BASE_URL使用。它同时兼容 Anthropic Message 和 OpenAI Chat Completions 两种格式的请求具体走哪种由你请求的路径和客户端决定。Claude Code 走的是 Anthropic 格式所以它会往这个 Base URL 发/v1/messages这样的请求。接下来是 Model ID。这个要看你实际想用哪个模型。TaoToken 的模型列表可以在 https://taotoken.net/models 查到选一个支持 tool call 的模型把它的 ID 记下来。比如常见的claude-sonnet-4-20250514这类。Model ID 在配置里填到ANTHROPIC_MODEL或者model字段。这里有个容易踩的坑很多人以为配了 Base URL 和 Key 就完事了结果 Claude Code 还是报解析错误。原因是 Claude Code 默认会往 Anthropic 官方地址发请求你得显式把ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址它才会走这条通道。另外如果你的环境里之前设过ANTHROPIC_API_KEY建议清掉统一用ANTHROPIC_AUTH_TOKEN避免两个变量打架。还有一个前置检查确认你的网络能正常访问 https://taotoken.net/api 。可以用 curl 简单测一下连通性比如curl -I https://taotoken.net/api返回 200 或 401 都说明通道是通的401 只是没带 Key 而已。如果连不上后面所有配置都白搭先解决网络层。准备工作做完你手里应该有三样东西一个 TaoToken API Key、Base URLhttps://taotoken.net/api、一个支持 tool call 的 Model ID。这三件套是后面所有配置的基础缺一不可。3. 可复制配置让 Claude Code 走对格式这一节是重点直接给可复制的配置片段。Claude Code 的配置方式有几种我用最常见的一种通过环境变量和 settings 文件。你可以根据自己的习惯选。先看环境变量方式。在~/.zshrc或~/.bashrc里加上这几行export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKEN你的TaoToken_API_Key export ANTHROPIC_MODELclaude-sonnet-4-20250514保存后source ~/.zshrc让它生效。这三行分别对应 Base URL、Key、Model ID就是前面说的三件套。注意ANTHROPIC_AUTH_TOKEN的值换成你自己在 https://taotoken.net/api-keys 创建的那个 Key。如果你更喜欢用 settings 文件Claude Code 支持~/.claude/settings.json。内容长这样{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: 你的TaoToken_API_Key, ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }这个 JSON 的路径是~/.claude/settings.json如果目录不存在就先mkdir -p ~/.claude。字段名和原文一致env下面挂三个环境变量Claude Code 启动时会读取。如果你用的是 CC Switch 这类配置管理工具那更简单。在编辑供应商的界面API 格式选择OpenAI Chat Completions然后把 Base URL 填https://taotoken.net/apiKey 填你的 TaoToken KeyModel ID 填你要用的模型。CC Switch 会帮你把格式转换的路由打开Claude Code 那边就不会再出现工具解析的问题。这里三件套同样要写全Base URL、Key、Model ID一个都不能少。还有一种情况是你用 Cline 或者带 MCP 的客户端。Cline 的配置里API Provider 选 OpenAI CompatibleBase URL 填https://taotoken.net/apiAPI Key 填 TaoToken KeyModel ID 填模型名。MCP 的配置如果是 JSON 形式也是同样的三件套放在mcpServers对应的env里。配置改完之后别急着跑复杂任务。先重启一下 Claude Code让新的环境变量或 settings 生效。然后可以用一个最小的请求验证格式转换是否正常这个放到下一节讲。这里提醒一句如果你之前配过ANTHROPIC_API_KEY一定要确认它没有被设成别的值。有些工具会优先读ANTHROPIC_API_KEY而不是ANTHROPIC_AUTH_TOKEN两个变量同时存在时行为不确定。最稳妥的做法是unset ANTHROPIC_API_KEY只保留ANTHROPIC_AUTH_TOKEN。4. 验证请求用最小请求复现并确认解析恢复配置改完怎么确认models tool call could not be parsed真的不再出现了别直接上大任务先用最小请求验证。第一步用 curl 直接打 TaoToken 的 Anthropic 格式接口看返回结构对不对。命令如下curl https://taotoken.net/api/v1/messages \ -H x-api-key: 你的TaoToken_API_Key \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d { model: claude-sonnet-4-20250514, max_tokens: 1024, tools: [ { name: get_weather, description: 获取指定城市的天气, input_schema: { type: object, properties: { city: {type: string} }, required: [city] } } ], messages: [ {role: user, content: 北京天气怎么样} ] }这个请求带了一个get_weather工具模型应该会返回一个tool_use块。你重点看返回的content数组里有没有type: tool_use以及它的input是不是一个 JSON 对象比如{city: 北京}而不是字符串。如果是对象说明 Anthropic 格式的解析是正常的。第二步在 Claude Code 里跑一个会触发工具调用的最小任务。比如让它读一个文件帮我读一下当前目录下的 README.md总结一下内容Claude Code 会调用 Read 工具。如果配置正确它会正常返回文件内容不会报models tool call could not be parsed。如果还是报错说明格式转换没生效回到上一节检查三件套。第三步观察日志。Claude Code 在调试模式下会打印请求和响应的结构。你可以用claude --debug启动看它发出的请求是不是打到了https://taotoken.net/api以及响应里的 tool call 字段长什么样。这一步能帮你定位是 Base URL 没生效还是 Key 不对还是 Model ID 不支持 tool call。实测下来只要三件套配对最小请求能返回正确的tool_use结构Claude Code 里的解析错误就会消失。如果 curl 那步就失败了那问题在通道或 Key不在 Claude Code 本身。5. 本篇常见错排查对照真实报错逐个解决这一节把可能遇到的报错列出来对照着排查。401 Unauthorized。这个最常见说明 Key 不对或者没带上。检查ANTHROPIC_AUTH_TOKEN的值是不是从 https://taotoken.net/api-keys 复制完整了有没有多余空格。另外确认请求头里带的是x-api-key还是Authorization: BearerAnthropic 格式用x-api-keyOpenAI 格式用Authorization: Bearer别搞混。local proxy failed。这个报错通常出现在你本地起了代理但代理没起来或者端口不对。如果你用 CC Switch 的路由功能确认路由是开启状态。如果没用代理检查ANTHROPIC_BASE_URL是不是被设成了http://localhost:xxxx这种本地地址改回https://taotoken.net/api。reading choices: unexpected end of JSON input。这个报错说明客户端在解析响应时期望的是 OpenAI 的choices字段但拿到的是 Anthropic 的content字段或者响应体被截断了。根因还是格式不匹配。确认你的客户端配置的 API 格式和实际请求的格式一致。Claude Code 走 Anthropic 格式就别在它上面配 OpenAI 格式的通道。OAuth 相关报错。如果你看到 OAuth token 之类的提示说明 Claude Code 在尝试走官方登录流程而不是用你配的 Key。检查是不是ANTHROPIC_API_KEY和ANTHROPIC_AUTH_TOKEN同时存在或者 settings 文件里有多余的认证配置。清掉多余的只留ANTHROPIC_AUTH_TOKEN。models tool call could not be parsed 依旧出现。如果三件套都配了还是报这个先确认 Model ID 对应的模型是否支持 tool call。有些模型不支持函数调用返回的响应里根本没有 tool call 字段客户端解析时就会报错。换一个支持 tool call 的模型试试。另外确认ANTHROPIC_BASE_URL没有拼错路径是https://taotoken.net/api不要多加/v1之类的后缀具体路径由客户端自己拼。排查的顺序建议是先 curl 测通道再检查环境变量再看客户端配置最后看模型是否支持 tool call。一层层往下基本都能定位到。6. 把配置固化下来下次直接复用配置调通之后建议把它固化下来别每次重装环境都重新折腾。如果你用环境变量把三件套写进~/.zshrc或~/.bashrc换机器时直接复制这几行。如果你用 settings 文件把~/.claude/settings.json备份一份新环境直接放回去。CC Switch 用户可以把供应商配置导出下次导入就行。Cline 和 MCP 的配置也是 JSON存到版本控制里团队共享时直接拉下来用。还有一个实用技巧在项目根目录放一个.env文件把ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_MODEL写进去然后用 direnv 或者手动 source。这样不同项目可以用不同的模型和 Key互不干扰。最后如果你在验证模型能力或者做格式转换的实验可以到 https://taotoken.net/chat 直接对话测试看 tool call 的返回结构。长期做编码 Agent 的话Coding Plan 那边有更完整的通道配置https://taotoken.net/coding-plan 可以看看。接入文档在 https://taotoken.net/doc 遇到字段对不上的地方对着文档查最快。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号