장기 코딩 에이전트의 비용을 줄이는 정밀도 우선 자동 문맥 압축, CliffCompaction
CliffCompaction: Cost-Efficient Compaction for Long-Horizon Coding Agents
무엇인가
이 논문은 수백만 토큰 규모의 문맥을 요구하는 장기 코딩 에이전트가 제한된 컨텍스트 윈도우 안에서 어떻게 작업을 지속하고 비용을 줄일 수 있는지를 다룬다. 기존 접근은 크게 두 가지 문제를 안는다. 슬라이딩 윈도우는 최근 턴만 남기지만 윈도우가 움직일 때마다 프리픽스 캐시를 무효화해 추론 비용을 높이고, LLM 요약은 요약의 요약이 반복되면서 손실이 누적된다. 효율 측면에서는 KV 캐시가 긴 세션의 메모리와 대역폭 병목이며, 문맥을 조금이라도 수정하면 캐시가 깨져 재프리필이 필요하다. 논문은 이때 캐시되지 않은 입력 토큰 비용이 캐시된 토큰보다 약 5~6배 비싸다고 지적한다. 테스트타임 스케일링도 여러 롤아웃 때문에 비용이 급증해 실용성이 떨어진다고 본다.
어떻게 동작하나
제안 방법인 CliffCompaction은 규칙 기반 자동 압축이다. 문맥을 자연스럽게 키우다가 미리 정한 토큰 임계값을 넘으면 압축을 수행한다. 압축 시 문맥 길이를 지배하는 도구 호출과 도구 출력을 주로 줄인다. 도구 결과는 500자 초과면 버리고 짧은 것은 유지한다. 도구 호출은 도구 이름, 대상 파일이나 경로, 핵심 인자만 남긴 서명 형태로 축약하고 파일 쓰기처럼 긴 내용을 인라인한 부분은 제거한다. 에이전트의 사고는 300자로 자르고, 시스템 프롬프트와 첫 사용자 메시지인 과제 설명은 전문을 유지하며 최근 K개 턴도 그대로 둔다. 중요한 점은 요약하거나 재작성하지 않고 자르거나 버리기만 해 원문 충실도를 높인다는 것이다. 또한 새 압축이 일어날 때 이전 압축 결과를 중첩하지 않고 완전히 폐기하며, 마지막 압축 이후의 살아 있는 세션만 압축한다. 압축을 압축하지 않는다는 원칙으로 문맥 드리프트 누적을 막는다. 대신 최근 창만 남기므로 압축 재현율은 낮아지고 정밀도는 높아지는 절충이 있다. 이전 문맥의 직접 정보는 사라지지만, 에이전트가 이전 압축을 본 상태에서 행동한 흔적이 다음 세션으로 잔류 전파되어 장기 세션에서 어느 정도 완충된다. 캐시 효율을 위해 압축 사이에는 문맥을 건드리지 않아 캐시를 유지하고, 압축 시점에만 재프리필 비용을 지불한다.
무엇과 다른가
실험은 SWE-bench Verified, Terminal-Bench 2.0과 2.1, KernelBench Level 3에서 이뤄졌다. 스캐폴드는 mini-swe-agent, OpenHands, Terminus-2, Claude Code를 사용했고 Kimi K2.5/K2.6/K2.7, GLM 5/5.1/5 Turbo/5.3 Flash/4.7 Flash, GPT-5-mini 등을 평가했다. 압축 임계값은 45K, 32K, 16K, 8K 토큰이다. Terminal-Bench 2.0에서 Kimi K2.6은 32K와 16K 설정 모두 61.42%로 전체 문맥 기준 59.16%를 2.26%포인트 앞섰다. 16K에서 Terminus-2의 네이티브 LLM 요약을 CliffCompaction으로 바꾸면 55.45%에서 61.42%로 올랐다. GLM 5.1은 전체 문맥 49.83%에서 32K 53.20%, 16K 54.33%로 개선됐다. Terminal-Bench 2.1의 Claude Code 환경에서 GLM 5.3 Flash는 약 45K 평균 피크 문맥에서 76.69%를 기록해 Claude Code 자동 압축 70.97%와 기본 200K 설정 73.03%를 모두 넘었고 시드 분산도 낮았다. SWE-bench Verified에서는 Kimi K2.6이 전체 문맥 73.87%에서 32K 73.27%로 거의 유지됐고 16K도 2.0%포인트 이내였다. GLM 5.1과 GLM-5 Turbo도 16K에서 전체 문맥 대비 약 2%포인트 이내를 유지했다. 8K는 더 공격적인 스트레스 테스트로 보며 성능 하락이 커진다. 논문은 비용을 최대 50% 줄이고 캐시 읽기 비용을 최대 90% 줄인다고 주장한다.
어떻게 쓰나
테스트타임 스케일링에서는 압축이 비용 구조를 바꾼다. 압축 없이 Kimi K2.6을 세 번 롤아웃하면 단일 실행 대비 4.8%포인트 이득에 3배 비용인 91.65달러가 들었다. CliffCompaction 16K 설정에서 세 번 롤아웃하면 10.5%포인트 이득에 1.9배 비용, 총 58.01달러로 GPT-5.3 Codex 단일 실행보다 저렴하면서 69.7%를 달성해 Opus 4.7의 69.4%와 맞먹고 GPT-5.3 Codex 64.7%, Opus 4.6 62.9%를 넘는다. 압축 없는 세 롤아웃 기준보다 5.7%포인트 높으면서 비용은 37% 낮다. 두 롤아웃만으로도 65.9%를 38.67달러, 1.3배 비용에 달성해 압축 없는 세 롤아웃 기준을 그 비용의 42%로 넘는다. GLM 5.1은 실용 해결률이 55.1%에서 60.7%로 오르고 스케일 추론 비용은 40% 줄어 158.25달러에서 95.34달러가 됐다. 선택기로는 실행 특징과 산출물 특징, 특히 롤아웃 간 라인 겹침과 그룹 내 일치 특징을 쓰는 Soft Group Verification을 LightGBM으로 학습해 사용하며, 다른 모델의 롤아웃으로 학습해도 일관됐고 테스트 누출은 없다고 밝힌다. 비용 대비 이득에서 LLM-as-a-Verifier가 5배 비용으로 3.4%포인트를 얻는 동안 CliffCompaction과 SGV는 1.9배 비용으로 10.5%포인트, 1.3배 비용으로 6.7%포인트를 얻는다.
전제와 한계
지속 학습 실험인 KernelBench Level 3에서는 한 궤적이 100만 토큰을 넘고 SWE-bench나 Terminal-Bench 중간값의 15~70배에 이른다. 압축 없이는 256K 문맥이 200스텝 예산 전에 고갈되어 L40S에서 98%, RTX Pro 6000에서 76%가 조기 종료됐고 중간 종료 스텝은 99와 122였으며 속도 향상은 1.30배와 1.51배에 그쳤다. CliffCompaction은 200스텝에서 2.23배와 1.87배, 400스텝에서 3.58배와 2.48배까지 올린다. L40S에서 2배 초과 커널 비율은 압축 없이 50%에서 400스텝 86%로, 1.2배 초과는 66%에서 92%로 늘고, RTX Pro 6000에서는 2배 초과가 32%에서 64%로 두 배가 되며 정확도는 98%에 이른다. 200K와 128K 임계값 모두 압축 없는 256K 기준을 능가한다. 같은 총비용에서 2.02배 대 1.30배로 더 많은 최적화를 산다. 커널 최적화 전용 시스템과 비교해도 200스텝에서 2.09배 대 AdaExplore 1.78배, 2.23배 대 CUDA-Agent 1.80배를 기록했고, 1.2배 초과 문제 비율 78%, 2배 초과 52%로 AdaExplore의 36%와 22%를 크게 앞선다. 기존 압축 전략 비교에서는 SWE-bench에서 네 방법이 2.6%포인트 안에 모이지만 슬라이딩 윈도우가 전체 문맥보다 9%와 7% 더 비쌌고 요약이 품질에서 가장 약했다. KernelBench에서는 CliffCompaction이 문제당 8.32달러로 3.58배, 요약이 8.10달러로 3.47배, 마이크로압축이 12.84달러로 3.33배, 슬라이딩 윈도우가 21.52달러로 2.86배였다. 논문은 세 벤치마크 모두에서 품질과 비용을 동시에 만족하는 유일한 방법이라고 주장한다.
개발자 관점에서 이 방법은 도구 호출과 도구 출력이 많은 장기 코딩 에이전트, 특히 캐시 읽기와 재프리필 비용이 큰 워크로드에 적합하다. 학습이 필요 없고 드롭인이며 모델 비종속적이고 보조 LLM 호출이 없으며 캐시 친화적이라는 점이 실무 장점이다. Claude Code, Codex 등에 붙일 수 있는 스캐폴드 비종속 API 프록시 구현이 공개되어 있다. 다만 스캐폴드마다 시스템 프롬프트와 도구 정의가 예산을 먼저 소비하므로 최소 임계값이 달라질 수 있고, 중장기 과제에서만 이득이 의미 있다. 500자 초과 도구 결과 삭제와 300자 사고 절단은 정보 손실을 만들 수 있으므로, 보존된 도구 호출 서명으로 같은 호출을 다시 해 복구 가능한지와 과제가 오래된 세부 정보의 정확한 회상을 요구하는지를 확인해야 한다. 두 번의 압축 뒤에는 직접 정보가 사라지고 잔류 전파에 의존하는 낮은 압축 재현율 설계라는 점도 운영 전에 검증할 필요가 있다.
저자들이 밝힌 한계는 분명하다. 이득은 스캐폴드와 과제에 의존하며, 스캐폴드가 복잡할수록 비용 절감은 커지지만 그만큼 고정 구성 요소가 예산을 잡아먹어 필요한 최소 임계값이 달라진다. 중간에서 긴 호라이즌 과제가 아니면 효과가 제한적이다. 비교 범위도 추론 시점에 대화 이력을 직접 조작하는 방법으로 한정되어 있어, 모델이 스스로 문맥을 관리하도록 학습하는 접근이나 외부 메모리 저장소를 쓰는 접근과는 비교하지 않았다. 또한 CliffCompaction은 정밀도를 위해 재현율을 희생하는 설계이므로, 장기간의 정확한 정보 회수가 중요한 환경에서는 별도 검증이 필요하다.
관련 논문
- 단일 모델을 기획자와 합성자로 나눠 딥서치의 역할 결합과 컨텍스트 누적을 푼 IterSynthReAct 방식 딥서치 에이전트의 역할 결합과 컨텍스트 누적 문제를 Planner와 Synthesizer 두 역할 분리로 해결한 IterSynth를 제안한다. 8B 모델로 5개 벤치마크 평균 50.7%를 기록해 동급 최강 대비 4.2%p 향상했고, 역할별 어드밴티지 정규화 RDPO가 핵심이다.
- 실패를 기억하는 이종 그래프로 소형 언어모델 도구 에이전트의 신뢰성을 높이는 FRESHFRESH는 소형 언어모델 도구 에이전트의 실패와 성공 이력을 이종 그래프 메모리로 구조화해, 반복 실패를 줄이고 상태 기반 도구 사용의 신뢰성을 높이는 프레임워크다. τ-Bench와 AppWorld 실험에서 기존 메모리 기반 접근보다 과제 성공률과 도구 사용 신뢰성이 개선됐다.
- 도구 응답 예측 대신 에이전트의 추론-행동을 판정·수정해 장기 과제 오염을 막는 AEWMLLM 에이전트의 장기 작업에서 누적되는 작업 상태 오염을 다루며, 툴 응답을 예측하는 대신 추론·행동이 미래 작업 진행에 미치는 영향을 모델링하는 AEWM과 EditAct를 제안한다. 기존 언어 월드 모델이 환경 관측을 예측하는 방식과 달리 실제 실행 피드백을 활용해 의사결정 기반 상태를 직접 바꾸는 접근으로, 여러 벤치마크에서 개선을 보고한다.