> ## Documentation Index
> Fetch the complete documentation index at: https://langchain-docs-zh.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# INVALID_CHAT_HISTORY

> 这个错误在预构建的 @[createagent] 中抛出，当 callmodel 图节点接收到一个格式不正确的消息列表时。具体来说，当存在 AIMessages 且带有 toolcalls（LLM 请求调用工具）但没有对应的 @[ToolMessage]（工具调用的结果，用于返回给 LLM）时，列表就是格式不正确的。

:::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](https://github.com/langchain-ai/docs/blob/main/src/oss/langgraph/errors/INVALID_CHAT_HISTORY.mdx) · 非官方翻译，译文由 AI 生成，以英文原文为准。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.