세션 상태를 남겨 장기 에이전트 작업을 재개하는 설계

컨텍스트 압축과 세션 중단 뒤에도 작업을 이어가기 위한 상태 외부화, 체크포인트, 잠금, 전제 재검증 설계 원칙을 다룬다.

2026-08-31

Claude Code와 Codex CLI의 2026년 8월 릴리스는 모두 세션 처리를 개선 항목으로 포함했다. Codex CLI 0.148.0은 세션 분기와 마크다운 내보내기를 추가해 작업 이력을 도구 밖으로 꺼낼 수 있게 했다.

수 시간 동안 이어지는 에이전트 작업에서는 중단 자체가 예외가 아니다. 컨텍스트 압축, 세션 종료, 도구 오류, 사람의 개입은 서로 다른 원인이지만 진행 상태와 판단 근거가 사라질 수 있다는 결과는 같다. 끊긴 지점에서 안전하게 이어가려면 대화 이력 전체가 아니라 작업 상태를 외부에 남겨야 한다.

재개 가능한 작업이 갖춰야 할 상태

계획은 컨텍스트가 아니라 파일에 둔다. 목표, 단계 목록, 각 단계의 완료 조건을 기록하고, 진행 중 바뀐 내용도 같은 계획 파일에 반영한다. 이 파일이 작업 상태의 단일 원본이 된다.

단계가 끝날 때는 완료 범위와 산출물 위치를 체크포인트로 남긴다. 체크포인트 사이의 작업은 재개 시 다시 수행될 수 있으므로, 단계의 크기는 재수행 비용을 기준으로 나누는 편이 낫다.

결정 기록도 필요하다. 어떤 방안을 선택했는지뿐 아니라, 어떤 대안을 왜 제외했는지와 그 판단의 조건을 남긴다. 조건이 달라지면 기존 결정을 다시 검토할 수 있고, 재개한 세션이 이미 검토한 대안을 반복해서 탐색하는 일도 줄어든다.

영속화 대상의 최소 집합은 다음과 같다.

  • 작업 계획
  • 완료된 단계와 산출물 위치
  • 결정 근거
  • 아직 해결되지 않은 항목

전체 대화 이력은 상태 파일에 넣을 대상이 아니다. 상태와 이력을 구분하지 않으면 재개 과정에서 읽어야 할 양만 늘어난다.

중단 뒤에는 상태를 읽고 전제를 확인한다

복원 절차는 고정해 두는 편이 좋다. 먼저 계획 파일과 체크포인트를 읽고 다음 수행 단계를 결정한다. 이전 세션의 대화를 전부 복원할 필요는 없다. 재개에 필요한 것은 이력이 아니라 현재 상태다.

다만 재개 시점의 작업 트리는 중단 당시와 같지 않을 수 있다. 파일 해시, 브랜치 이름, 미커밋 변경 여부를 확인해 달라진 전제를 식별한다. 전제가 어긋났다면 이전 계획을 바로 실행하지 않고 계획을 갱신한 뒤 이어간다.

실패성공필요불필요중단계속어긋남일치작업 착수작업 계획 외부 영속화 (목표 ·단계 · 완료 조건)작업 단위 잠금 획득?다른 세션 진행 · 대기 또는중단단계 수행결정 근거 기록 (선택 · 배제대안 · 조건)완료 단계 체크포인트 저장대안 접근 시험 필요?세션 분기 (전제 · 결과 별도기록)중단 발생 (압축 · 종료 · 오류)?재개 절차 시작전제 재검증 (파일 해시 ·브랜치 · 미커밋)계획 갱신 재개체크포인트 다음 단계부터 수행

병렬 작업과 분기를 상태 체계에 포함한다

여러 세션이 같은 작업을 동시에 다루면 변경이 서로 덮어써질 수 있다. 작업 단위 잠금을 두고, 비정상 종료한 세션이 작업을 계속 점유하지 않도록 잠금 만료 시간도 둔다.

대안 접근을 검증할 때는 세션을 분기하고, 각 분기에서 사용한 전제와 결과를 별도로 보관한다. 이후 어느 분기를 채택했는지, 다른 분기는 왜 버렸는지를 기록해야 분기 자체가 다시 탐색해야 할 미지의 이력이 되지 않는다.

상태 파일의 위치와 형상 관리 방식도 미리 정해야 한다. 계획과 체크포인트를 버전 관리 대상에 넣을지, 별도 영역에 둘지를 선택하고, 상태 파일이 저장소에 섞여 의도치 않게 커밋되지 않도록 경로 규칙과 무시 규칙을 명시한다. 워크트리나 컨테이너 환경에서 특정 경로가 사라질 수 있는 조건도 저장 위치를 정하기 전에 검토한다.

충돌 신호는 잠금 획득 실패, 파일 해시 불일치, 브랜치 변경처럼 명확하게 정의할 수 있다. 이런 신호가 발생했을 때 자동 진행을 멈추고 사람 확인을 요구하는 기본값을 둔다. 상태 파일이 손상됐거나 전제가 크게 달라졌을 때는 처음부터 다시 시작하는 선택지도 복원 절차에 포함해야 한다.

상태를 밖에 둘 때와 컨텍스트에만 둘 때

구분 외부 상태 파일 영속화 컨텍스트 내 유지
재개 신뢰성 높음 낮음
압축 내성 있음 없음
구현 부담 없음
도구 교체 이식 가능 불가
병렬 세션 조율 가능 불가
잡음 파일 증가 없음

외부 상태 파일을 사용하면 컨텍스트가 압축되거나 세션이 종료돼도 계획과 결정 근거가 남는다. 여러 세션이 같은 상태를 참조해 조율할 수 있고, 도구를 바꿔도 상태를 옮길 수 있다. 대신 기록과 확인 단계가 추가돼 토큰과 시간이 들며, 상태 파일이 저장소에 쌓여 관리 대상이 늘어난다. 파일 내용과 실제 진행이 어긋나면 잘못된 전제를 제공할 위험도 있다.

컨텍스트에만 상태를 두는 방식은 별도 구현이 필요 없고, 짧은 작업에서는 충분히 동작할 수 있다. 하지만 압축 과정에서 무엇이 사라졌는지 통제하기 어렵고, 세션이 끝나면 진행 상태도 함께 사라진다. 다른 세션이 참조할 공통 상태도 만들 수 없다. 작업 길이가 컨텍스트 압축 지점을 넘어서는 순간부터 외부 영속화는 선택이 아니라 요건이 된다.

자동 체크포인트는 사람이 잊어도 상태를 남기고, 일정한 주기의 기록으로 복원 지점을 예측 가능하게 한다. 반면 의미 없는 지점의 기록이 늘어나면 복원 시 선택이 어려워지고 저장 자체가 토큰을 소모한다. 수동 저장은 중요한 지점만 남기고 내용을 정리할 수 있지만, 저장을 잊으면 그 사이의 작업이 통째로 사라질 수 있다. 단계 완료를 자동 체크포인트 조건으로 삼으면 두 방식의 성질을 함께 활용할 수 있다.

단일 장기 세션은 이전 탐색에서 얻은 판단을 계속 활용하고 작업 전환 비용을 줄인다. 그러나 컨텍스트가 늘면서 비용이 누적되고, 압축 시점에 손실 범위를 통제하기 어렵다. 잘못된 전제도 세션 전체에 남는다. 분할 단기 세션은 매번 깨끗한 상태에서 시작하고 세션당 비용을 예측하기 쉽지만, 상태 파일을 다시 읽는 비용과 기록되지 않은 판단의 유실을 감수해야 한다. 상태 영속화가 충실할수록 분할 단기 세션의 재개 비용은 낮아진다.

트랜잭션·형상 관리·업무 연속성으로 보는 구조

체크포인트와 복원 절차는 장애 이후 재수행 범위를 제한하는 회복 기법과 같은 구조를 가진다. 작업 단위 잠금과 만료 시간은 상호배제와 교착 방지를 함께 다루는 장치다.

상태 파일의 저장 위치와 커밋 여부를 정하는 일은 산출물 분류와 형상 항목 식별에 해당한다. 세션 분기와 채택 근거 기록은 분기 관리 및 병합 결정을 이력으로 남기는 방식이다.

재개 전에 전제를 검증하는 절차는 복구 뒤 무결성을 확인하는 과정에 대응한다. 복원에 실패했을 때 처음부터 다시 시작하는 경로를 둔 것은 복구 불가 상황을 위한 대체 계획이기도 하다.

세션 처리 방식이 향하는 방향

세션 이력의 표준 내보내기 형식이 합의되면 도구 간 상태 이식이 가능해지는 방향으로 갈 수 있다. 작업 계획과 체크포인트 파일의 구조도 프레임워크 수준에서 규격화되는 흐름이 예상된다.

세션 분기는 실험적 기능에서 장기 작업의 기본 운용 방식으로 자리 잡는 방향이며, 병렬 에이전트 세션을 위한 작업 잠금도 도구 내장 기능으로 편입되는 흐름이다.

긴 작업에서 재개 가능성을 결정하는 것은 컨텍스트 안에 남은 대화량이 아니라 외부에 남은 상태다. 계획, 완료 단계, 결정 근거, 미해결 항목을 보존하고 재개 전 전제를 확인해야 달라진 파일 위에 이전 계획을 그대로 얹는 일을 피할 수 있다. 상태 영속화가 좋아질수록 작업을 짧은 세션으로 나누는 선택도 현실적인 운영 방식이 된다.

Sources

AI 에이전트세션 영속화체크포인트작업 재개컨텍스트 압축