피드로 돌아가기
I can now replay any AI agent stream from production. Here's how.
Dev.toDev.to
AI/ML

개발자가 Async 래퍼로 SSE 스트림을 .jsonl 파일에 녹화하여 프로덕션 AI 에이전트 디버깅을 가능하게 했다

I can now replay any AI agent stream from production. Here's how.

Abhishek Chatterjee2026년 3월 30일6intermediate

Context

AI 에이전트 스트림은 SSE 연결이 상태 저장이고 일시적이다. REST API는 요청/응답을 로그로 남길 수 있지만, 스트림 이벤트는 버퍼에서 소비되자마자 사라진다. 프로덕션에서 UI가 잘못된 상태로 멈추면 스크린샷과 메모리로만 디버깅해야 했다.

Technical Solution

  • AgentStreamRecorder → Async 제너레이터를 래핑하여 각 SSE 이벤트를 .jsonl 파일에 저장하고 원본을 그대로 전달
  • 세션 헤더 → UUID, 시작 시간, t=0-baseline 포함하여 머신 간 이식성 보장
  • 상대 타임스탬프(t 필드) → 'tool_result가 tool_use 842ms 후 도착'과 같이 디버깅에 유용한 정보 제공
  • 매 쓰기 후 flush → 프로세스 충돌 시에도 마지막 이벤트까지 기록 유지
  • agent-stream CLI로 --speed 옵션을 사용한 배속/슬로우 재생 지원

Impact

프로덕션에서 3주간 재발생하던 버그를 녹화/재생으로 15분 만에 해결했다.

Key Takeaway

AI 에이전트 디버깅의 핵심은 개별 에러 코드가 아닌 이벤트 시퀀스이며, 스트림을 녹화 가능하게 만드는 것만으로 디버깅 방식이 근본적으로 달라진다.


SSE 기반 AI 에이전트 개발 시 AgentStreamRecorder로 모든 스트림 이벤트를 .jsonl에 녹화하면 재현 불가능했던 버그를 로컬에서 정확히 재현할 수 있다

원문 읽기