피드로 돌아가기
Support Threads That Span Days: Agent Memory via Email
Dev.toDev.to
Backend

Email Header 기반의 Durable Session 설계로 수일간 지속되는 LLM Agent Memory 구현

Support Threads That Span Days: Agent Memory via Email

Qasim Muhammad2026년 6월 13일6intermediate

Context

기존의 채팅 세션이나 WebSocket 기반 상태 관리는 실시간 연결을 전제로 함. 이메일은 응답 간격이 수일에 달하며 프로세스 재시작이 빈번하여 기존의 In-memory 세션 유지 방식으로는 컨텍스트 추적이 불가능한 한계 존재.

Technical Solution

  • Message-ID, In-Reply-To, References 헤더를 활용하여 이메일 스레드 자체를 Durable Memory로 정의한 설계
  • 플랫폼 제공 thread_id를 세션 키로 사용하여 DB 내 내부 상태(티켓 레코드, 워크플로우 단계)와 매핑하는 구조 채택
  • Webhook 수신 시 self-sent check 및 중복 처리 방지를 위한 Idempotency 가드 로직 구현으로 무한 루프 및 중복 응답 차단
  • 스레드 재활성화 시 Threads API를 통해 전체 이력(Transcript)을 재조회하여 LLM이 현재 의도를 재분류(Reclassification)하도록 설계
  • 0.85 이상의 Confidence Threshold 및 6턴 제한, 168시간 휴면 후 재개 시 Human Handoff를 강제하는 Lifecycle Guard 적용
  • API와 IMAP이 동일한 메일박스를 공유하는 구조를 통해 Agent와 사람이 심리스하게 협업하는 Low-tech Handoff 메커니즘 구축

1. 비동기 스레드 식별자로 Subject 대신 고유한 thread_id 또는 Message-ID 체인 사용 여부 확인

2. Agent의 자기 응답으로 인한 무한 루프 방지를 위해 송신자 필터링 로직 포함 여부 검토

3. In-memory 맵 대신 DB 기반의 상태 저장소로 프로세스 재시작 후 컨텍스트 복구 가능성 검증

4. LLM의 오답 리스크를 줄이기 위한 Confidence Threshold 및 최대 턴 수 기반 에스컬레이션 정책 수립

원문 읽기