AI 생성 이미지
AI 코딩 에이전트의 품질은 단순히 “한 번에 얼마나 똑똑하게 답하는가”로만 결정되지 않습니다. 실제 개발 작업에서는 몇 시간 동안 파일을 읽고, diff를 만들고, 도구를 호출하고, 이전 결정을 이어가야 합니다. 이 긴 흐름을 유지하기 위해 필요한 기술이 Codex Compaction입니다.
Compaction은 긴 세션을 위한 상태 관리다
컨텍스트 컴팩션은 오래된 대화 이력과 작업 기록을 요약·압축해 에이전트가 긴 코딩 세션을 계속 이어갈 수 있게 하는 메커니즘입니다.1
코딩 세션이 길어질수록 프롬프트, 툴 호출, 파일 읽기, diff, 추론 흔적이 누적됩니다. 이 정보가 컨텍스트 한도에 가까워지면 응답 품질이 떨어지고, 비용이 늘며, 이전 작업을 잊는 문제가 생길 수 있습니다.1
따라서 컴팩션은 컨텍스트 한계를 없애는 기술이 아닙니다. 제한된 창 안에서 무엇을 남기고 무엇을 줄일지 결정하는 운영 방식에 가깝습니다. 잘 작동하면 사용자는 긴 작업을 자연스럽게 이어갈 수 있지만, 잘못 요약되면 중요한 의도나 제약이 사라질 수 있습니다.
Codex CLI는 모델에 따라 다르게 압축한다
Codex CLI의 compaction 방식은 사용하는 모델에 따라 달라집니다.
비-Codex 모델에서는 로컬에서 LLM 요약을 수행해 컨텍스트를 압축합니다. 이때 사용하는 컴팩션 프롬프트와 handoff 프롬프트는 소스 코드에서 확인할 수 있습니다.2 즉, 어떤 방식으로 이전 대화가 요약되는지 비교적 관찰 가능한 구조입니다.
반면 Codex 모델에서는 로컬 요약 대신 compact() API를 호출합니다. 이 API는 사람이 읽을 수 있는 요약문이 아니라 암호화된 blob을 반환합니다.2
이 blob은 AES로 암호화되어 있으며 키는 OpenAI 서버에 있습니다. 클라이언트에서는 내용을 평문으로 읽을 수 없습니다. 이후 responses.create()에 이 blob을 전달하면 서버가 복호화해 모델 컨텍스트를 다시 조립합니다.2
핵심 차이는 투명성입니다. 로컬 요약은 사용자가 동작을 추적하기 쉽지만, Codex 모델의 encrypted compaction은 내부 상태를 직접 검수하기 어렵습니다. 대신 서버 측에서 요약 형식이나 컨텍스트 조립 방식을 클라이언트 변경 없이 개선할 수 있습니다.
개발자가 실제로 봐야 할 것
Codex Compaction을 이해할 때 중요한 질문은 “컨텍스트가 얼마나 커지는가”가 아니라 “줄어들 때 무엇이 사라지는가”입니다.
첫째, 컴팩션은 본질적으로 손실 압축입니다. 요약 과정에서 빠진 정보는 이후 작업 품질에 영향을 줄 수 있습니다. 중요한 규칙, 아키텍처 결정, 프로젝트 관례는 대화 안에만 두기보다 프로젝트 문서나 명시적인 지시로 남겨두는 편이 안전합니다.
둘째, 긴 작업을 모두 하나의 세션에 맡기는 방식은 위험할 수 있습니다. 기능 단위나 의사결정 단위로 중간 정리를 해두면, compaction 이후에도 에이전트가 작업 맥락을 더 안정적으로 이어갈 수 있습니다.
셋째, 불투명한 compaction은 사용자 경험을 좋게 만들 수 있지만 디버깅은 어렵게 만듭니다. 긴 스레드에서 /compact 후 UI는 “Context compacted”라고 표시했지만 context_length_exceeded 오류가 발생한 사례도 보고되었습니다.3 사용자는 compaction이 항상 문제를 해결한다고 가정하기보다, 실패 가능성까지 염두에 두어야 합니다.
결론: 무한 컨텍스트가 아니라 지속 가능한 작업 흐름
Codex Compaction의 가치는 “무한 컨텍스트”를 제공하는 데 있지 않습니다. 긴 코딩 세션에서 필요한 정보를 압축하고, 작업 흐름이 끊기지 않도록 돕는 데 있습니다.
AI 코딩 도구를 잘 쓰려면 모델 성능만 볼 것이 아니라, 컨텍스트가 언제 줄어들고 어떤 정보가 유지되는지도 함께 봐야 합니다. 특히 긴 작업일수록 중요한 결정은 명시적으로 남기고, 세션 경계를 관리하며, compaction 이후 결과를 검증하는 습관이 필요합니다.
1Context Compaction Deep Dive: How Codex CLI, Claude Code, and OpenCode Manage Long Sessions
2Investigating how Codex context compaction works
3Codex app /compact fails with context_length_exceeded after UI says "Context compacted"
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.
