Skip to main content
:::python 这个错误在预构建的 @[create_agent] 中抛出,当 call_model 图节点接收到一个格式不正确的消息列表时。具体来说,当存在 AIMessages 且带有 tool_calls(LLM 请求调用工具)但没有对应的 @[ToolMessage](工具调用的结果,用于返回给 LLM)时,列表就是格式不正确的。 ::: :::js 这个错误在预构建的 @[createAgent] 中抛出,当 callModel 图节点接收到一个格式不正确的消息列表时。具体来说,当存在 AIMessage 且带有 tool_calls(LLM 请求调用工具)但没有对应的 @[ToolMessage](工具调用的结果,用于返回给 LLM)时,列表就是格式不正确的。 ::: 出现这个错误可能有以下几个原因: :::python
  1. 在调用图时手动传递了一个格式不正确的消息列表,例如 graph.invoke({'messages': [AIMessage(..., tool_calls=[...])]})
  2. 图在接收到来自 tools 节点的更新之前被中断(即接收到一个 @[ToolMessage] 列表),并且你使用了一个不是 None 或 ToolMessage 的输入来调用它,例如 graph.invoke({'messages': [HumanMessage(...)]}, config)。 这个中断可能是以下方式之一触发的:
    • 你在 create_agent 中手动设置了 interrupt_before = ['tools']
    • 其中一个工具抛出了一个未被 @[ToolNode]("tools")处理的错误 :::
:::js
  1. 在调用图时手动传递了一个格式不正确的消息列表,例如 graph.invoke({messages: [new AIMessage({..., tool_calls: [...]})]})
  2. 图在接收到来自 tools 节点的更新之前被中断(即接收到一个 @[ToolMessage] 列表),并且你使用了一个不是 null 或 ToolMessage 的输入来调用它,例如 graph.invoke({messages: [new HumanMessage(...)]}, config)。 这个中断可能是以下方式之一触发的:
    • 你在 createAgent 中手动设置了 interruptBefore: ['tools']
    • 其中一个工具抛出了一个未被 @[ToolNode]("tools")处理的错误 :::

故障排除

要解决这个问题,你可以做以下操作之一:
  1. 不要用格式不正确的消息列表调用图
  2. 如果发生中断(手动或由于错误),你可以:
:::python
  • 提供与现有工具调用匹配的 @[ToolMessage] 对象,并调用 graph.invoke({'messages': [ToolMessage(...)]})。 注意:这将把消息附加到历史记录中,并从 START 节点重新运行图。
    • 手动更新状态并从中断处恢复图:
      1. 使用 graph.get_state(config) 从图状态获取最新的消息列表
      2. 修改消息列表,要么从 AIMessages 中移除未处理的工具调用
或添加与未处理的工具调用匹配的 ToolMessage 对象,其中包含 tool_call_ids 3. 使用修改后的消息列表调用 graph.update_state(config, {'messages': ...}) 4. 恢复图,例如调用 graph.invoke(None, config) ::: :::js
  • 提供与现有工具调用匹配的 ToolMessage 对象,并调用 graph.invoke({messages: [new ToolMessage(...)]})。 注意:这将把消息附加到历史记录中,并从 START 节点重新运行图。
    • 手动更新状态并从中断处恢复图:
      1. 使用 graph.getState(config) 从图状态获取最新的消息列表
      2. 修改消息列表,要么从 AIMessages 中移除未处理的工具调用
或添加与未处理的工具调用匹配的 ToolMessage 对象,其中包含 toolCallId 3. 使用修改后的消息列表调用 graph.updateState(config, {messages: ...}) 4. 恢复图,例如调用 graph.invoke(null, config) :::
官方原文:src/oss/langgraph/errors/INVALID_CHAT_HISTORY.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。
Last modified on November 3, 2026