call_model 그래프 노드가 잘못된 형식의 메시지 목록을 받았을 때 발생합니다. 구체적으로는 tool_calls를 포함하는 AIMessages(도구 호출을 요청하는 LLM)에 대응하는 ToolMessage(LLM에 반환할 도구 호출 결과)가 없을 때 잘못된 형식으로 간주됩니다.
이 오류가 발생하는 몇 가지 이유가 있을 수 있습니다:
- 그래프를 호출할 때 잘못된 형식의 메시지 목록을 수동으로 전달한 경우, 예:
graph.invoke({'messages': [AIMessage(..., tool_calls=[...])]}) - 그래프가
tools노드로부터 업데이트(즉, ToolMessages 목록)를 받기 전에 중단되었고, None 또는 ToolMessage가 아닌 입력으로 그래프를 호출한 경우, 예:graph.invoke({'messages': [HumanMessage(...)]}, config). 이 중단은 다음 중 하나의 방법으로 발생할 수 있습니다:create_agent에서interrupt_before = ['tools']를 수동으로 설정한 경우
- 도구 중 하나에서 ToolNode (
"tools")에 의해 처리되지 않은 오류가 발생한 경우
문제 해결
이 문제를 해결하려면 다음 중 하나를 수행할 수 있습니다:- 잘못된 형식의 메시지 목록으로 그래프를 호출하지 마세요
- 중단이 발생한 경우(수동 또는 오류로 인한) 다음을 수행할 수 있습니다:
- 기존 도구 호출과 일치하는 ToolMessages를 제공하고
graph.invoke({'messages': [ToolMessage(...)]})를 호출합니다. 참고: 이렇게 하면 메시지가 히스토리에 추가되고 그래프가 START 노드부터 실행됩니다.- 상태를 수동으로 업데이트하고 중단된 지점부터 그래프를 재개합니다:
graph.get_state(config)를 사용하여 그래프 상태에서 가장 최근 메시지 목록을 가져옵니다- 메시지 목록을 수정하여 AIMessages에서 응답되지 않은 도구 호출을 제거하거나
- 상태를 수동으로 업데이트하고 중단된 지점부터 그래프를 재개합니다:
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.