summary 를. 시스템메세지에 추가하는 부분에 관하여
70
작성자 없음
0 asked
agent(state:AgentState) ->AgentState:
messages =state['messages']
summary = state.get('summary',None)
if summary:
messages =[SystemMessage(content='Here is the summary of the earil er conversation : {summary}')]+messages
response = llm_with_tools.invoke(messages)
return {'messages':[response]}안녕하세요 강사님, 강의 재밌게 듣고 있습니다.
수강중 궁금한 사항이 있어 질문 남깁니다.
위와 같이 코드를 알려주셨는데요,
이런 흐름이라면, messages 에 동일한 내용의 SystemMessage가 여러번 들어가게되는 걸까요?
예를 들어 사용자 질의 한개를 처리하는데,
agent <-> tool 간의 반복 작업이 3번 있었다면
agent 가 3번 호출될 때마다 messages 리스트 앞에 동일한 SystemMessage 객체가 중복되어 붙을거 같아서요.
Answer 3
1
아 아닙니다 강사님 코드를 잘못 읽었네요.. agent 함수내에서 messages는 새로운 리스트 객체를 참조하고 있었네요. 그래서 agent가 반복 호출되어도 systemMessage가 중복 누적되지 않는 것이었습니다.
0
맞습니다, 지금 구조라면 agent()가 다시 호출될 때마다 현재 턴의 messages 앞에 같은 요약용 SystemMessage를 계속 덧붙이게 됩니다. 보통은 state["messages"] 자체를 직접 늘리지 않도록 분리해서 LLM 호출용 입력만 임시로 만들거나, 요약 메시지가 이미 들어있는지 체크해서 한 번만 붙이도록 처리합니다.
https://www.inflearn.com/en/community/questions/1761567/summary-%EB%A5%BC- fnf
0
안녕하세요, 인프런 AI 인턴입니다. 유준모님. LangGraph를 활용한 강의 중 SystemMessage 의 반복 추가에 대한 질문을 주셨군요.
핵심 사항
질문에서 다루고 계신 부분에 대해 몇 가지 중요한 점을 정리해드리겠습니다.
문제 정의:
SystemMessage를 매번messages리스트의 앞부분에 추가하는 방식은, 에이전트가 호출될 때마다 동일한 시스템 메시지가 누적되는 구조입니다. 결과적으로, 반복적인 호출 시 동일한 내용의 시스템 메시지가 여러 번 추가될 수 있습니다.
예상되는 결과:
- 능동적인 반복 호출이 이루어지면, 중복된
SystemMessage객체가messages리스트에 누적될 것입니다. 이는 수신자 입장에서 필요 이상으로 많은 안내 메시지를 보게 될 수 있다는 것을 의미합니다.
- 능동적인 반복 호출이 이루어지면, 중복된
처리 방법:
- 중복된
SystemMessage를 방지하려면, 추가하기 전에 이미messages리스트에 해당 메시지가 포함되어 있는지 확인하는 로직이 필요합니다.
- 예를 들어, 시스템 메시지가 리스트에 없을 경우에만 추가하는 조건문을 삽입합니다:
if summary and not any(isinstance(msg, SystemMessage) and 'Here is the summary' in msg.content for msg in messages): messages = [SystemMessage(content=f'Here is the summary of the earlier conversation: {summary}')] + messages이 코드는
SystemMessage가 이미 포함되어 있는지를 확인하고, 중복된 메시지의 삽입을 방지합니다.- 중복된
추가 자료
이와 관련된 유사한 접근 방법이 논의된 자료를 확인해 보실 수 있습니다. 이러한 자료는 추가적인 학습에 도움을 줄 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
마크다운을 텍스트 파일로 변환하기
0
11
1
max token을 제한하는게 왜 성능을 개선하게 되는걸까요?
0
42
2
pyzerox 유니코드 에러
0
75
2
영상 메타데이터 생성 관련 LLM 활용 질문
0
72
1
종합부동산세 부분 tool 사용 질문 드립니다.
0
74
2
uv sync 파이썬 버전문제 onnxruntime
-1
106
2
MCP를 활용해서 간단한 에이전트를 만들어보세요
0
97
1
PDF 형식
0
66
1
5.3 langchain-mcp-adpater를 활용한 MCP 도구 사용 tool_list 지연 사유
0
91
2
3.6 human_in_the_loop 3rd case
0
81
1
병렬 처리 중 retrieve 관련 궁금한 사항
0
76
1
query 에 대한 answer 결과값이 나오지 않습니다.
0
96
2
사람과 관련된 표현이 없는데 rewrite 로 이동하지 않는경우
0
77
1
retriever 관련 질문
0
65
1
인터룹 관련 질문
0
49
2
2.4 Self-RAG 결과가 달라요!
0
78
2
md vs txt 차이..
0
140
2
OpenAI API 호출 때문에 발생하는 Error code: 429 문제
0
115
2
단순 도구 사용과 도구를 가진 에이전트를 사용하는 것의 차이가 궁금합니다.
0
88
1
LangChain과 LangGraph v1
0
137
1
2.4 강의 관련 질문(답변을 검증하는 self rag)
0
75
2
후속강의 문의
0
74
2
3.6 강의 관련 질문(interrupt 관련)
0
51
1
그래프 구현 조언 부탁드립니다!
0
77
2

