Skip to main content
이 오류는 사전 구축된 @[createAgent][create_agent]에서 callModel 그래프 노드가 잘못된 형식의 메시지 목록을 받았을 때 발생합니다. 구체적으로는 tool_calls를 포함하는 AIMessage들(도구 호출을 요청하는 LLM)에 대응하는 ToolMessage(LLM에 반환할 도구 호출 결과)가 없을 때 잘못된 형식으로 간주됩니다. 이 오류가 발생하는 몇 가지 이유가 있을 수 있습니다:
  1. 그래프를 호출할 때 잘못된 형식의 메시지 목록을 수동으로 전달한 경우, 예: graph.invoke({messages: [new AIMessage({..., tool_calls: [...]})]})
  2. 그래프가 tools 노드로부터 업데이트(즉, ToolMessages 목록)를 받기 전에 중단되었고, null 또는 ToolMessage가 아닌 입력으로 그래프를 호출한 경우, 예: graph.invoke({messages: [new HumanMessage(...)]}, config). 이 중단은 다음 중 하나의 방법으로 발생할 수 있습니다:
  • createAgent에서 interruptBefore: ['tools']를 수동으로 설정한 경우
  • 도구 중 하나에서 ToolNode ("tools")에 의해 처리되지 않은 오류가 발생한 경우

문제 해결

이 문제를 해결하려면 다음 중 하나를 수행할 수 있습니다:
  1. 잘못된 형식의 메시지 목록으로 그래프를 호출하지 마세요
  2. 중단이 발생한 경우(수동 또는 오류로 인한) 다음을 수행할 수 있습니다:
  • 기존 도구 호출과 일치하는 ToolMessages를 제공하고 graph.invoke({messages: [new ToolMessage(...)]})를 호출합니다. 참고: 이렇게 하면 메시지가 히스토리에 추가되고 그래프가 START 노드부터 실행됩니다.
    • 상태를 수동으로 업데이트하고 중단된 지점부터 그래프를 재개합니다:
      1. graph.getState(config)를 사용하여 그래프 상태에서 가장 최근 메시지 목록을 가져옵니다
      2. 메시지 목록을 수정하여 AIMessages에서 응답되지 않은 도구 호출을 제거하거나
응답되지 않은 도구 호출과 일치하는 toolCallId들을 가진 ToolMessages를 추가합니다 3. 수정된 메시지 목록으로 graph.updateState(config, {messages: ...})를 호출합니다 4. 그래프를 재개합니다, 예: graph.invoke(null, config)를 호출합니다
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I