Claude Code "tool call could not be parsed" / 工具调用格式损坏的原因与解决方法(call / invoke / parameter 以文本形式出现)
现在有故障吗?
Claude Code 官方状态正常。若此报错持续出现,多半是实现或你的运行环境问题。
更新于: 2026年6月6日 03:36 UTC
查看 Claude Code 的运行状态 →报错含义
模型生成的工具调用格式不正确,因此系统将其判定为 "tool call could not be parsed(无法解析)"。本应被正确包裹的调用变成了缺少外层包装的裸 invoke,不会执行,并把 "call"、"<invoke name=…>"、"<parameter>" 当作文本直接显示出来。在长会话中,一旦一个损坏的调用进入对话历史,之后的每次工具调用都会复制同样的损坏格式(上下文内的 few-shot 自我污染)。这不是你代码的 bug,而是 Claude Code(模型/系统)一侧的已知问题。
常见原因
- •长会话中连续大量地链式调用工具
- •损坏的调用一旦进入历史,模型会自回归地不断复现(few-shot poisoning)
- •在同一会话中重试会把损坏示例进一步固化,使问题加重
- •加载 XML/标记密集的超大文件或长 skill,削弱了对工具格式的控制
- •大上下文(如 1M)+高强度长时间作业
解决方法
- 1.一旦发生,运行 /clear(或开启新会话)丢弃被污染的历史——唯一确认有效的恢复方式
- 2.不要在同一会话中重试(会强化损坏格式)
- 3.在对话变长之前经常使用 /compact 压缩
- 4.不要一次堆叠太多编辑;在工具调用之间穿插简短说明/确认
- 5.避免一次性加载 XML/heredoc 密集的超大文件或 skill
- 6.将 Claude Code 更新到最新版本(修复仍在进行中)
- 7.在本页顶部确认这并非 Anthropic API 故障(本问题属于模型/系统侧,与 API 故障不同)
何时该等待 / 等待也无济于事的情况
这是模型/系统侧的已知问题(已在 GitHub 报告,永久修复仍在进行中),在同一会话中等待并不能解决。用 /clear 切换到新会话是可靠的解决办法。要避免复发,请保持会话简短、经常 /compact,并且绝不重试损坏的调用。
Claude Code 宕机时的替代方案
相关报错
常见问题
Tool call could not be parsed 是什么?
模型生成的工具调用格式不正确,因此系统将其判定为 "tool call could not be parsed(无法解析)"。本应被正确包裹的调用变成了缺少外层包装的裸 invoke,不会执行,并把 "call"、"<invoke name=…>"、"<parameter>" 当作文本直接显示出来。在长会话中,一旦一个损坏的调用进入对话历史,之后的每次工具调用都会复制同样的损坏格式(上下文内的 few-shot 自我污染)。这不是你代码的 bug,而是 Claude Code(模型/系统)一侧的已知问题。
Tool call could not be parsed 如何解决?
一旦发生,运行 /clear(或开启新会话)丢弃被污染的历史——唯一确认有效的恢复方式 / 不要在同一会话中重试(会强化损坏格式) / 在对话变长之前经常使用 /compact 压缩 / 不要一次堆叠太多编辑;在工具调用之间穿插简短说明/确认 / 避免一次性加载 XML/heredoc 密集的超大文件或 skill / 将 Claude Code 更新到最新版本(修复仍在进行中) / 在本页顶部确认这并非 Anthropic API 故障(本问题属于模型/系统侧,与 API 故障不同)