AgentState의 messages 확인해주세요.
2
1 asked
강의에서
class AgentState(TypeDict):
messages: list[Annotated[AnyMessage, add_messages]]라고 하셨는데, 위와 같이 하면 AIMessage만 결과로 출력되게 된 걸로 보아 덮어진 것 같습니다.
class AgentState(TypedDict):
messages: Annotated[list[AnyMessage], add_messages]위와 같이
Annotated 가 밖으로 나와야 하는 것이 맞는지 확인해주세요.
이때는 결과가 HumanMessage, AIMessage 둘 다 출력되더라구요.
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다. 도비두바님.
LangGraph를 활용한 AI Agent 개발 강의에서 AgentState 클래스 내의 messages 필드 정의에 대해 질문해 주셨군요. 두 가지 코드 예제를 비교하시면서 Annotated 사용 방식에 대해 의문을 가지신 것 같습니다.
차이점 분석
초기 방식:
class AgentState(TypeDict): messages: list[Annotated[AnyMessage, add_messages]]이 방식에서는
list타입이Annotated로 감싸져 있고,add_messages가 각각의AnyMessage항목에 적용됩니다.Annotated는 일반적으로 추가 메타데이터를 전달하기 위해 사용됩니다. 이 경우AnyMessage에서만 적용되는 것으로 보입니다.결과적으로,
AIMessage만 출력되는 이유는,add_messages주석이 제대로 작동하지 않아 예상하지 못한 방식으로 메시지를 덮어쓸 수 있기 때문입니다.
수정된 방식:
class AgentState(TypedDict): messages: Annotated[list[AnyMessage], add_messages]여기서는
Annotated가 전체 리스트에 적용되므로,add_messages주석이 리스트 전체에 영향을 미칩니다. 이 방식은HumanMessage와AIMessage모두를 결과로 출력하게 해 줄 수 있습니다.즉,
messages리스트에 포함된 각AnyMessage가add_messages메타데이터와 함께 적절히 처리될 수 있도록 합니다.
결론
따라서, Annotated 를 리스트 전체에 적용하여 add_messages 를 사용하시려는 의도가 맞다면, 아래 수정된 방식이 적절해 보입니다. 각 메시지 타입을 포함하여 상태와 기록을 관리하려면 Annotated 를 list 위에 위치시키는 것이 더 적합합니다.
이와 같은 코딩 방법의 차이는 타입 힌팅과 주석 사용의 차이에서 비롯된 것으로 보입니다.
추가적으로 참고할 수 있는 자료가 필요하시다면, 인프런 내의 유사한 토론 링크를 추천해드립니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
2.3 Agentic RAG 관련 질문이 있습니다.
0
32
2
깃허브 레포지토리 확인 요청
0
47
2
제공해주신 레포가 Windows 환경에 너무 비친화적입니다.
0
79
2
마크다운을 텍스트 파일로 변환하기
0
79
1
max token을 제한하는게 왜 성능을 개선하게 되는걸까요?
0
78
2
pyzerox 유니코드 에러
0
99
2
영상 메타데이터 생성 관련 LLM 활용 질문
0
93
1
종합부동산세 부분 tool 사용 질문 드립니다.
0
90
2
uv sync 파이썬 버전문제 onnxruntime
-1
150
2
MCP를 활용해서 간단한 에이전트를 만들어보세요
0
124
1
PDF 형식
0
86
1
5.3 langchain-mcp-adpater를 활용한 MCP 도구 사용 tool_list 지연 사유
0
107
2
3.6 human_in_the_loop 3rd case
0
97
1
summary 를. 시스템메세지에 추가하는 부분에 관하여
0
100
3
병렬 처리 중 retrieve 관련 궁금한 사항
0
89
1
query 에 대한 answer 결과값이 나오지 않습니다.
0
109
2
사람과 관련된 표현이 없는데 rewrite 로 이동하지 않는경우
0
85
1
retriever 관련 질문
0
70
1
인터룹 관련 질문
0
52
2
2.4 Self-RAG 결과가 달라요!
0
91
2
md vs txt 차이..
0
190
2
OpenAI API 호출 때문에 발생하는 Error code: 429 문제
0
139
2
단순 도구 사용과 도구를 가진 에이전트를 사용하는 것의 차이가 궁금합니다.
0
95
1
LangChain과 LangGraph v1
0
144
1

