Skip to content

INVALID_CHAT_HISTORY

当预构建的 create_react_agent 中的 call_model 图节点接收到格式不正确的消息列表时,会引发此错误。具体来说,当存在不包含相应 ToolMessage(工具调用的结果,返回给 LLM)的 AIMessages (LLM 请求调用工具)时,这些消息就是格式不正确的。

您看到此错误的原因可能有以下几种:

  1. 您在调用图时手动传递了格式不正确的消息列表,例如 graph.invoke({'messages': [AIMessage(..., tool_calls=[...])]})
  2. 图在获取来自 tools 节点的更新(即一系列 ToolMessages)之前被中断,并且您用一个非空或非 ToolMessage 的输入调用了它,例如 graph.invoke({'messages': [HumanMessage(...)]}, config)。 此中断可能通过以下方式之一引发:
  3. 您在 create_react_agent 中手动设置了 interrupt_before = ['tools']
  4. 其中一个工具引发了未被 ToolNode 处理的错误("tools"

故障排除

为解决此问题,您可以采取以下措施之一:

  1. 不要用格式不正确的消息列表调用图。
  2. 在发生中断(手动或由于错误)时,您可以:

    • 提供与现有工具调用匹配的 ToolMessages,并调用 graph.invoke({'messages': [ToolMessage(...)]})注意:这将把消息附加到历史记录中,并从 START 节点运行图。
    • 手动更新状态并从中断处恢复图:

      1. 使用 graph.get_state(config) 获取图状态中最近的消息列表。
      2. 修改消息列表,以删除 AIMessages 中未回复的工具调用或添加与未回复工具调用匹配的 tool_call_ids 的 ToolMessages。
      3. 使用修改后的消息列表调用 graph.update_state(config, {'messages': ...})
      4. 恢复图,例如调用 graph.invoke(None, config)
优云智算