CliffCompaction: 장시간 코딩 에이전트를 위한 저비용 컨텍스트 압축
CliffCompaction: Cost-Efficient Compaction for Long-Horizon Coding Agents
TL;DR Highlight
요약 없이 긴 툴 출력만 잘라냈더니 Terminal-Bench 비용 50% 절감, 성능은 유지
Who Should Read
Claude Code·OpenHands 같은 코딩 에이전트를 오래 돌리다 컨텍스트 비용과 품질 저하로 고민하는 개발자
Core Mechanics
- 요약하지 않고 잘라내기만 한다
- 임계치(토큰 수)에 닿으면 긴 툴 결과(500자 초과)는 버리고, 짧은 결과는 그대로 둔다.
- 툴 호출은 이름·경로 같은 시그니처만 남기고, 생각(thinking)은 300자로 자른다.
- 시스템 프롬프트와 첫 사용자 메시지는 전부 유지하고 최근 K턴도 그대로 둔다.
- 압축본을 다시 압축하지 않는다
- 새 압축 때 이전 압축본은 통째로 버리고 현재 구간만 압축한다.
- 요약의 요약이 쌓이며 정보가 왜곡되는 현상(context drift)을 막는다.
- 대신 두 번 압축 이후의 직접 기억은 사라지는 것을 감수한다.
- 요약은 에이전트를 안심시켜 재확인을 줄인다
- 요약이 그럴듯하면 모델이 문서·코드를 다시 읽지 않는다.
- 반면 잘라낸 빈 자리는 눈에 보여서 에이전트가 원본을 다시 읽는다.
- 캐시가 깨지는 횟수가 적어 싸다
- 압축 사이에는 컨텍스트를 건드리지 않아 KV-cache(이전 토큰 계산 결과 재사용)가 유지된다.
- 캐시 miss 입력 토큰은 캐시 hit보다 5~6배 비싸서 잦은 컨텍스트 수정이 비용을 키운다.
- 슬라이딩 윈도우는 창이 움직일 때마다 캐시가 깨져 풀 컨텍스트보다 비싸졌다.
Evidence
- Terminal-Bench 2.0에서 Kimi K2.6 성공률 상승
- 32K·16K 모두 61.42%로 풀 컨텍스트 59.16%보다 2.26%p 높다.
- 16K에서 Terminus-2 기본 요약(55.45%) 대비 61.42%다.
- Terminal-Bench 2.1에서 Claude Code 하 GLM 5.3 Flash
- 45K 압축 76.69%로 Claude Code 자동 압축(70.97%)과 기본 200K(73.03%)보다 높다.
- 3회 롤아웃 + SGV 비용 대비 성능
- Kimi K2.6 16K 3회는 69.7%, $58.01로 압축 없는 3회(64.0%, $91.65)보다 5.7점 높고 비용은 37% 낮다.
- 단일 풀 컨텍스트 실행 대비 +10.5점이 1.9배 비용이며, Opus 4.7(69.4%)과 같고 GPT 5.3 Codex(64.7%)·Opus 4.6(62.9%)보다 높다.
- KernelBench Level 3 속도 향상
- Kimi K2.7 압축 128K는 200스텝 2.23배, 400스텝 3.58배로 압축 없는 256K의 1.30배보다 높다.
- GPT-5-mini 200스텝 2.09배로 AdaExplore 1.78배, 같은 비용에서 2.02배 대 1.30배다.
- 압축 방식 비교에서 400스텝 기준 슬라이딩 윈도우 2.86배($21.52), 요약 3.47배($8.10), 마이크로압축 3.33배($12.84), CliffCompaction 3.58배($8.32)다.
How to Apply
- 에이전트 로그에서 토큰 비중부터 재기
- 오늘 쓰는 에이전트 세션 하나에서 툴 결과·툴 호출·생각이 각각 몇 %인지 집계하라.
- 논문에서는 GLM 5.1 Terminal-Bench 기준 툴 결과 56%, 툴 호출 28%였으니 자기 로그와 비교하라.
- 툴 결과 500자 초과분을 버리는 압축 규칙 넣기
- 자체 하네스에서는 압축 임계치를 16K~32K로 실험하기
- Claude Code류 폐쇄형 도구에는 API 프록시로 붙이기
Try It
# 논문 방법의 간이 버전: Claude Code·ChatGPT 등 긴 코딩 대화창에 붙여넣기
지금부터 컨텍스트를 줄이는 작업을 한다. 아래 규칙으로 이 대화의 이전 내용을 압축한 블록을 만들어라. 요약이나 바꿔 쓰기는 금지하고 자르거나 빼기만 한다.
- 도구 결과가 500자를 넘으면 통째로 뺀다. 500자 이하면 원문 그대로 둔다.
- 도구 호출은 도구 이름, 대상 파일 경로, 핵심 인자만 남긴다. 파일에 쓴 긴 내용은 뺀다.
- 너의 이전 생각·계획은 각각 300자까지만 남긴다.
- 시스템 지시와 첫 과제 설명은 그대로 둔다.
- 이전에 만든 압축 블록이 있으면 버리고 그 이후 내용만 압축한다.
대상 대화 내용:
{{압축할 대화 로그}}
이어서 해 볼 것: 압축 블록만으로 작업을 이어 가게 하고, 빠진 내용이 필요하면 도구를 다시 호출해 가져오게 해 보라.Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓
Related Resources
Original Abstract (Expand)
Agents often work on complex problems that require millions of tokens of context, which necessitates compacting across sessions due to limited context windows. We develop CliffCompaction, an autocompaction technique that reduces cost by up to 50% under a bounded context while maintaining or improving performance on Terminal-Bench and achieving new levels of efficiency for test-time scaling and state-of-the-art results on KernelBench. The per-rollout savings of CliffCompaction make the performance--cost trade-off of test-time scaling more efficient, adding over 10 percentage points on Terminal-Bench for less than the cost of two full-context runs. Under parallel test-time scaling, CliffCompaction lets Kimi K2.6 match Opus 4.7, and exceed Opus 4.6 and GPT-5.3 Codex at lower cost. The key to CliffCompaction's effectiveness is that it keeps compacted information faithful by only truncating or dropping content, never rephrasing or rewriting it. We never compact a compaction---each pass operates only on original content, and prior compacted output is discarded, preventing context drift from accumulating. These properties sustain continual learning over sessions exceeding a million tokens: on KernelBench, CliffCompaction reaches CUDA kernel speedups of $2.23\times$ after 200 steps and $3.58\times$ after 400 steps, surpassing specialized search algorithms and trained agents despite being a general-purpose compaction technique. We open-source a scaffold-agnostic API-proxy implementation of CliffCompaction usable with Claude Code, Codex and other harnesses.