해결된 질문
작성
·
19
·
수정됨
0
안녕하세요.
해당 챕터에서 강의 내용과 실행 결과 간 매치가 잘 안되는 듯 느껴져 문의드립니다.
from langchain_core.messages import HumanMessage
for chunk in graph.stream({'messages': [HumanMessage('3에다 5를 더하고 거기에 8을 곱하면?')]}, stream_mode='values'):
chunk['messages'][-1].pretty_print()
강의 화면에서 위와 같은 query 에 대해 노드 단위로 출력한 결과를 보면, 첫 번째 Ai Message 는 Tool Calls 로 add 과 multiply 두 툴에 대한 요청을 함께 생성하고 다음 Tool Message 로 multiply 의 결과 64 를 반환, 두 번째 Ai Message 는 Tool Calls 로 multiply 만 생성하고 다음 Tool Message 로 결과 64를 반환하고 있습니다.
근데 강의에서는 첫 번째 Ai Message 에 대해 "먼저 덧셈을 실시합니다. 그러니까 multiply(?) 라는 툴이 64를 주고, 근데 task 가 두 개니까 task 에서 도구 호출을 또 하는 겁니다. 그런 다음에 64라는 답이 나오고..." 라고 녹화되어 있는데... 이게 무슨 얘기인지 잘 와닿지가 않네요..
녹화 당시의 실행 결과와 상관없이 add 한 번 호출 후 multiply 한 번 호출에 대한 설명인 걸까요? 아니면 병렬 도구 호출에 대한 설명인 걸까요?
감사합니다.
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. 명탐정님.
질문 주신 부분은 LangGraph에서의 에이전트의 계산 흐름과 출력 결과에 관한 이해가 필요해 보이는 상황입니다. 강의 내용과 실제 실행 결과 간의 불일치를 경험하고 계신 것 같습니다.
강의 내용에서는 두 개의 연산(add
와 multiply
)이 어떻게 처리되는지를 설명하는 부분에서 멀티턴 대화 과정이나 병렬 도구 호출 방식 등에 대한 설명이 혼동될 수 있습니다.
도구 호출 순서:
Tool
(add
와 multiply
)가 요청되어 있는 상황을 설명하고 있습니다.출력 과정:
AI Message
에서 add
와 multiply
작업을 모두 요구하지만, 보통 add
작업이 선행됩니다. 이는 일반적인 산술 연산에 따른 논리 순서입니다.multiply
가 계산되어 두 작업의 최종 결과가 생성됩니다.병렬 도구 호출:
순차 도구 호출:
강의에서는 이러한 호출 방식이 모두 다뤄질 수 있겠으나, AI 에이전트가 두 작업 중 어느 한쪽이 먼저 처리되어야 하는 것을 판단하며 작업을 요청하는 상황과 관련된 설명이었을 것입니다. 실제 실행 결과와 강의 내용이 다르게 여겨졌다면, 강의는 이론적 예제로 다룬 부분로 이해할 수 있습니다.
멀티턴 대화와 도구 호출 방식
을 다룬 게시물을 참고하시면 도움이 될 수 있습니다.저는 질문자님이 LangGraph의 매커니즘을 충분히 이해할 수 있도록 돕고자 지식공유자님의 기존 답변을 바탕으로 유사한 답변 링크를 추천해드렸습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.