AI 에이전트가 한 번 실행되는 동안 남긴 프롬프트, 응답, 도구 호출, 결과를 실제로 일어난 순서대로 타임라인에 다시 펼쳐 보는 디버깅 방식이다. 로그를 grep해 머릿속으로 순서를 맞추는 대신 세션 하나를 열어 따라가며, 에이전트가 실제로 무엇을 했는지, 왜 같은 일을 반복했는지, 어디서 엉뚱한 길로 빠졌는지 찾을 때 쓴다.
| 구분 | 기존 세션 리플레이 | 에이전트 세션 리플레이 |
|---|---|---|
| 기록 대상 | 사람의 클릭·스크롤·입력 | 프롬프트, 응답, 도구 호출, 에러 |
| 보여주는 방식 | 화면 녹화처럼 재생 | 스팬이 이어진 트레이스 타임라인 |
| 답하는 질문 | 사용자가 어디서 막혔나 | 에이전트가 실제로 무엇을 했나 |
리플레이는 프롬프트를 다시 보내거나 도구를 다시 실행하지 않는다. 같은 입력에도 매번 다르게 움직이는 에이전트는 재실행으로 같은 실패를 다시 만들기 어렵다. 그래서 실제로 있었던 실행을 그대로 보는 것이 무슨 일이 일어났는지 정직하게 확인하는 방법이다. 기록은 앞뒤로 넘겨 보거나 내보내서 분석할 수 있고, 다른 실행과 나란히 놓는 비교 기준으로도 쓴다.
워터폴 타임라인을 훑다가 이상한 스팬을 펼치면, 그때 실제로 나간 요청과 돌아온 응답 원문이 보인다. 실패했다는 사실만 아는 것과, 에이전트의 작업 순서 안에서 어디가 틀어졌는지 보는 것은 다르다.
| 증상 | 리플레이에서 볼 곳 |
|---|---|
| 같은 도구를 계속 부른다 | 반복되는 스팬과 그 직전 도구 결과 |
| 요청과 다른 일을 한다 | 방향이 바뀐 첫 모델 호출 |
| 중간에 멈췄다 | 훅 발동이나 에러 스팬 |
오픈소스 claude-replay는 Claude Code, Cursor, Codex CLI, Gemini CLI 등의 세션 로그(~/.claude/projects/ 등)를 외부 파일 없이 열리는 HTML 하나로 만들어 준다. 메일로 보내거나 문서에 넣어 동료와 리뷰할 때 좋다. --serve --watch로 돌아가는 세션을 실시간으로 볼 수 있고, 계획을 승인해 새 세션이 생겼다면 세션 여러 개(최대 20개)를 하나로 이어 전체 흐름을 볼 수 있다.
리플레이 파일에는 소스 코드, 파일 경로, 도구 입출력, 생각 과정까지 전부 들어간다. 기본 비밀값 가림 기능은 흔한 인증 정보 패턴만 잡고 코드나 파일 내용은 거르지 않는다. 공개하기 전에 생성된 파일을 직접 읽어 보는 게 안전하다.
가장 흔한 쓰임은 이상하게 끝난 에이전트 세션의 원인 찾기다. 결과만 보고 추측하는 대신 기록을 열어 틀어진 지점을 확인하고, 그 기록을 동료와 나누거나 고친 뒤의 실행과 비교한다.
| 어디서 | 어떻게 쓰나 |
|---|---|
| 코딩 에이전트 디버깅 | 루프에 빠지거나 엉뚱한 파일을 고친 세션을 열어 방향이 바뀐 첫 호출과 직전 도구 결과를 확인 |
| 동료와 세션 리뷰 | 세션을 HTML 하나로 만들어 문서·메일에 붙이고 함께 검토 |
| 프롬프트·설정 수정 전후 비교 | 고치기 전과 후의 실행 기록을 나란히 놓고 어디서 다르게 움직였는지 확인 |
| 오래 도는 작업 지켜보기 | 실시간 보기로 진행 중인 세션을 따라가다 꼬이기 시작하면 바로 멈춤 |