跳到主要内容
目前仅用于 langchainjs (JavaScript/TypeScript)。
此错误发生在工具调用操作期间,向模型传递不匹配、不足或过多的 @[ToolMessage] 对象时。 该错误源于一个基本要求:带有 tool_calls 的助手消息必须后跟响应每个 tool_call_id 的工具消息。 当模型返回带有工具调用的 AIMessage 时,您必须为每个工具调用提供恰好一个对应的 @[ToolMessage],并使用匹配的 tool_call_id 值。

常见原因

  • 响应不足:如果模型请求执行两个工具,但您只提供了一条响应消息,模型将拒绝不完整消息链
  • 重复响应:为相同的工具调用 ID 提供多个 @[ToolMessage] 对象会导致拒绝,不匹配的 ID 也会导致拒绝
  • 孤立的工具消息:在没有包含工具调用的先行 AIMessage 的情况下发送 @[ToolMessage] 违反了协议要求
这是一个有问题的模式示例
// Model requests two tool calls
responseMessage.tool_calls // Returns 2 calls

// But only one ToolMessage provided
chatHistory.push({
  role: "tool",
  content: toolResponse,
  tool_call_id: responseMessage.tool_calls[0].id
});

await modelWithTools.invoke(chatHistory); // Fails with INVALID_TOOL_RESULTS

故障排除

解决此错误
  • 计数匹配对:确保在先前的 AIMessage 中,每个工具调用都有一个 @[ToolMessage]
  • 验证 ID:确认每个 ToolMessage.tool_call_id 都与实际的工具调用标识符匹配

以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.