Skip to main content
이 오류는 사전 구축된 create_agent에서 call_model 그래프 노드가 잘못된 형식의 메시지 목록을 받았을 때 발생합니다. 구체적으로는 tool_calls를 포함하는 AIMessages(도구 호출을 요청하는 LLM)에 대응하는 ToolMessage(LLM에 반환할 도구 호출 결과)가 없을 때 잘못된 형식으로 간주됩니다. 이 오류가 발생하는 몇 가지 이유가 있을 수 있습니다:
  1. 그래프를 호출할 때 잘못된 형식의 메시지 목록을 수동으로 전달한 경우, 예: graph.invoke({'messages': [AIMessage(..., tool_calls=[...])]})
  2. 그래프가 tools 노드로부터 업데이트(즉, ToolMessages 목록)를 받기 전에 중단되었고, None 또는 ToolMessage가 아닌 입력으로 그래프를 호출한 경우, 예: graph.invoke({'messages': [HumanMessage(...)]}, config). 이 중단은 다음 중 하나의 방법으로 발생할 수 있습니다:
    • create_agent에서 interrupt_before = ['tools']를 수동으로 설정한 경우
  • 도구 중 하나에서 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)를 호출합니다
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I