Skip to content

[Week2] thread_id 기반 대화 상태 유지 및 스트리밍 출력 구현#9

Open
taekoong wants to merge 3 commits into
mainfrom
taekoong/week2-state-memory
Open

[Week2] thread_id 기반 대화 상태 유지 및 스트리밍 출력 구현#9
taekoong wants to merge 3 commits into
mainfrom
taekoong/week2-state-memory

Conversation

@taekoong
Copy link
Copy Markdown
Collaborator

구현 요약

파일 구조

assignments/{github-id}/week2/
├── schema.py      # MinecraftAgentResponse 구조화 응답 스키마
├── tools.py       # Minecraft 도메인 도구 3종
├── graph.py       # ReAct Graph + MemorySaver + Streaming
├── run.ipynb      # thread memory / streaming 테스트
└── graph.png      # 그래프 시각화

추가한 기능

  • thread_id 기반 메모리 : MemorySaver 체크포인터로 같은 thread_id 내 대화 맥락 유지
  • 스트리밍: 'stream_mode'="updates"로 노드 단위 실시간 출력 (agent/tools/format_output 진행 상황 확인 가능)
  • 토큰 사용량 로깅: with_token_loggin 래퍼 함수로 agent 노드 실행 시 토큰 수 출력

변경된 사항

  • build_graph()checkpointer=MemorySaver() 추가
  • agent_nodewith_token_logging으로 감싸서 등록
  • run.ipynbrun_agent()thread_id 파라미터 추가 및 graph.stream() 적용

테스트 결과

turn 질문 user 맥락 활용
1 "크리퍼에 대해 알려줘" user1 초기 몹 정보 답변, 크리퍼는 마인크래프트에서 적대적 몹으로, 체력은 총 20 HP입니다.
2 "거기서 드롭되는 아이템으로 뭘 만들 수 있어?" user1 이전 turn에서 다룬 "크리퍼"를 기억한 상태로 정보 설명, 화약은 크리퍼가 드롭하는 아이템 중 하나로, 여러 가지 아이템을 만드는 데 사용됩니다.
3 "거기서 드롭되는 아이템으로 뭘 만들 수 있어?" user2 어떤 몹에서 드롭되는 아이템을 알아보고 싶은지 말씀해 주시면, 해당 아이템으로 만들 수 있는 것들을 안내해 드리겠습니다. 구체적인 몹의 이름을 알려주실 수 있나요?

개선할 점

  • 토큰 로깅이 print로만 출력됨 → 파일이나 별도 저장소에 누적 기록하는 구조로 개선 가능

@taekoong taekoong requested a review from myeolinmalchi May 18, 2026 06:19
@taekoong taekoong self-assigned this May 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant