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. 1.一旦发生,运行 /clear(或开启新会话)丢弃被污染的历史——唯一确认有效的恢复方式
  2. 2.不要在同一会话中重试(会强化损坏格式)
  3. 3.在对话变长之前经常使用 /compact 压缩
  4. 4.不要一次堆叠太多编辑;在工具调用之间穿插简短说明/确认
  5. 5.避免一次性加载 XML/heredoc 密集的超大文件或 skill
  6. 6.将 Claude Code 更新到最新版本(修复仍在进行中)
  7. 7.在本页顶部确认这并非 Anthropic API 故障(本问题属于模型/系统侧,与 API 故障不同)

何时该等待 / 等待也无济于事的情况

这是模型/系统侧的已知问题(已在 GitHub 报告,永久修复仍在进行中),在同一会话中等待并不能解决。用 /clear 切换到新会话是可靠的解决办法。要避免复发,请保持会话简短、经常 /compact,并且绝不重试损坏的调用。

Claude Code 宕机时的替代方案

CodexCursorGitHub CopilotClineWindsurfContinue

相关报错

常见问题

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 故障不同)

对比查看 Claude Code