当预构建的Documentation Index
Fetch the complete documentation index at: https://nvd-54.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
createAgent 中的 callModel 图节点接收到格式错误的消息列表时,会引发此错误。具体来说,当存在带有 tool_calls(LLM 请求调用工具)的 AIMessage 但没有对应的 ToolMessage(返回给 LLM 的工具调用结果)时,格式就是错误的。
你看到此错误可能有以下几个原因:
- 你在调用图时手动传入了格式错误的消息列表,例如
graph.invoke({messages: [new AIMessage({..., tool_calls: [...]})]}) - 图在从
tools节点接收更新(即ToolMessage列表)之前被中断, 并且你使用非 null 或非 ToolMessage 的输入调用了它, 例如graph.invoke({messages: [new HumanMessage(...)]}, config)。 此中断可能由以下方式触发:- 你在
createAgent中手动设置了interruptBefore: ['tools'] - 其中一个工具引发了未被
ToolNode("tools")处理的错误
- 你在
故障排除
要解决此问题,你可以执行以下操作之一:- 不要使用格式错误的消息列表调用图
- 在中断情况下(手动或由于错误),你可以:
- 提供与现有工具调用匹配的
ToolMessage对象并调用graph.invoke({messages: [new ToolMessage(...)]})。 注意:这将把消息追加到历史记录中并从 START 节点运行图。- 手动更新状态并从中断处恢复图:
- 使用
graph.getState(config)从图状态中获取最新消息列表 - 修改消息列表以从 AIMessage 中删除未回答的工具调用
- 使用
- 手动更新状态并从中断处恢复图:
toolCallId 与未回答的工具调用匹配的 ToolMessage 对象 3. 使用修改后的消息列表调用 graph.updateState(config, {messages: ...}) 4. 恢复图,例如调用 graph.invoke(null, config)
将这些文档连接到 Claude、VSCode 等工具,通过 MCP 获取实时答案。

