Skip to content

[Week2] 알고리즘 코치에 thread_id 메모리와 풀이 리뷰 HITL 추가#12

Open
pykido wants to merge 1 commit into
mainfrom
pykido/week2-state-memory
Open

[Week2] 알고리즘 코치에 thread_id 메모리와 풀이 리뷰 HITL 추가#12
pykido wants to merge 1 commit into
mainfrom
pykido/week2-state-memory

Conversation

@pykido
Copy link
Copy Markdown
Collaborator

@pykido pykido commented May 24, 2026

도메인 / 목표

  • 도메인 : 알고리즘 학습 / 코딩 테스트 준비 (1주차 유지)
  • 1주차 ReAct 그래프를 thread_id 기반으로 상태가 유지되는 workflow 로 확장하였습니다.
  • 1주차 PR 리뷰 반영 — 단일 노트북을 모듈(state / schema / tools / graph / run.ipynb)로 분리하였습니다.

그래프 흐름 (노드/엣지)

flowchart TD
    START([START]) --> agent
    agent -->|review_solution 포함| review_gate[review_gate / interrupt]
    agent -->|그 외 tool_calls| tools[tools / ToolNode]
    agent -->|tool_calls 없음| format_answer[format_answer / with_structured_output]
    review_gate -->|resume=full| tools
    review_gate -->|resume=hint| agent
    tools --> agent
    format_answer --> END([END])
Loading
  • agent — 1주차와 동일, bind_tools 된 LLM
  • 분기 — 1주차 tools_conditionroute_after_agent 3분기로 확장 (format_answer / review_gate / tools)
  • review_gatereview_solution 호출 직전 interrupt() 로 정지, Command(goto=...)resume=full → tools / resume=hint → agent 라우팅
  • checkpointer — InMemorySavercompile() 에 결합해 thread별 대화 상태 분리·복원

1주차 대비 추가 (State / Memory / Control)

항목 내용
Memory InMemorySaver + thread_id 로 대화 상태 분리·복원
Control interrupt (HITL) — 정답 rubric 공개 직전 "힌트만 / 전체 리뷰" 선택
구조 노트북 → 모듈 분리, route_after_agent 3분기 라우터
  • 제어 패턴으로 interrupt 를 고른 이유 : 학습 코치에서 정답 공개 는 되돌릴 수 없는 행동이라 그 직전이 사람이 개입하기 가장 자연스러운 지점. 전체 도구를 막는 대신 review_solution 만 게이트로 감쌌습니다 (패턴 조회·문제 추천은 멈추지 않음).

thread_id 분리

thread 질문 결과
alice 추천 후 "방금 그 문제 접근법", "그거 자주 하는 실수" 연쇄 앞 발화 복원 → pgs-43238 입국심사 로 정확히 해석
bob "방금 추천받은 그 문제 번호가 뭐였지?" 맥락 없음 → "추천한 적 없다" 고 응답, 메모리 분리 확인

테스트 (노트북에 출력 박혀 있음)

# 시나리오 호출/동작 결과
1 alice 맥락 질문 3연속 recommend_problems → 접근법 → 실수 전부 pgs-43238 맥락 유지
2 풀이 리뷰 (full) review_gate interrupt → resume=full review_solution 실행, 레퍼런스 기반 전체 리뷰
3 풀이 리뷰 (hint) resume=hint review_solution 미실행(used_tools=[]), 정답 미공개 힌트만
4 state history get_state_history(alice) 스냅샷 16개 누적
  • 추가 검증 : 비-review 멀티툴은 정지 안 함 / resume 임의값은 hint 폴백 / interrupt 가로질러도 thread 상태 유지

다음 주 개선

  • Domain RAG 단계에서 mock 데이터를 실제 문서 기반 검색으로 대체 예정

@pykido pykido self-assigned this May 24, 2026
@pykido pykido requested a review from myeolinmalchi May 24, 2026 16:40
@pykido pykido added the 과제 label May 24, 2026
@pykido pykido changed the title feat : 2주차 과제 완료 [Week2] 알고리즘 코치에 thread_id 메모리와 풀이 리뷰 HITL 추가 May 24, 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