코딩 에이전트 세션은 대화·도구 호출·파일 내용이 쌓이며 컨텍스트 창을 넘는다. 컴팩션(compaction)은 오래된 이력을 짧은 요약으로 대체해 작업을 이어가는 방식이며, Pi에서는 자동 또는 /compact 명령으로 실행할 수 있다.
컴팩션 전후
전: [시스템·도구][오래된 대화][최근 대화]
후: [시스템·도구][구조화된 요약][보존한 최근 대화][새 요청]Pi는 문맥 한도가 가까워지면 턴 종료 후 자동 컴팩션을 확인하고, overflow가 나면 턴 중에도 수행할 수 있다. 최근 메시지는 설정 가능한 토큰 예산 안에서 원문으로 남기고, 그보다 앞선 이력은 별도 LLM 요청으로 요약한다. 기본 보존 예산은 약 2만 토큰으로, 대략 5~20턴에 해당할 수 있다.
좋은 요약의 내용
요약은 단순 대화 축약이 아니라 다음 작업자에게 주는 handoff여야 한다.
- 현재 목표와 완료·미완료 상태
- 이미 시도한 방법과 실패 원인
- 핵심 결정과 그 근거
- 수정한 파일, 실행한 명령, 다음 검증 단계
중요한 사실을 잃으면 세션은 이어져도 에이전트가 같은 조사를 반복하거나 잘못된 전제로 작업한다. context-engineering의 회상·연속성 프로브로 압축 품질을 점검하는 이유다.
캐싱과의 교환
프롬프트 캐시는 이전 요청과 동일한 접두사를 재사용한다. 컴팩션 뒤에는 오래된 이력 대신 요약이 들어가므로 접두사가 바뀌고, 첫 요청은 과거 캐시를 재사용하지 못한다. 따라서 매우 긴 세션에서 가능한 한 늦게 압축하라는 뜻은 아니다. 컨텍스트 과밀로 품질이 떨어지는 비용과 한 번의 캐시 손실을 실제 사용량으로 비교해야 한다.
관련 문서
- context-engineering — 컨텍스트를 유한한 실행 자원으로 설계하는 방법
- agentic-context-management — 기억·검색·압축의 수명주기 관리
- llm-tips-prompt-caching-vs-fine-tuning — 프롬프트 캐싱의 비용 특성
참고 자료
- How Compaction Works in Pi — EARENDIL (2026-08-13)