
Claude Code, 54분 자리 비우면 캐시 만료 전에 알아서 compact
3호
v2.1.299: 자리 비우면 알아서 compact
- 200K+ 토큰 대화
- 약 54분 방치
- 자동 compact
- 1시간 캐시 만료 전
터미널에서 200K 토큰이 넘는 대화를 약 54분 그대로 두면, 1시간 프롬프트 캐시가 만료되기 전에 대화를 compact한다. 그래서 다음 메시지를 보낼 때 대화 전체를 다시 처리하지 않는다. 최소 토큰 기준 200K는 CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS로 바꿀 수 있고, settings.json에 "idleCompaction": false를 넣으면 끈다. 두 설정 모두 v2.1.290 이상이 필요하다. 터미널 밖(VS Code, 데스크톱 앱)에서도 동작하는지는 미공개다.
출처: Claude Code GitHub 릴리스, 10월 14일 11:49 KST ↗
내 생각긴 대화가 요약(compact)되는 건 당연하다. 문제는 원하는 시점에 하느냐다. 나는 항상 수동으로 compact한다. 적절한 시점은 작업 하나가 끝났을 때, 긴 작업이라면 한 범주가 끝났을 때다. 또는 오랜 시간 자리를 비워야 할 때다. 컨텍스트가 많이 찬 상태에서 캐시 미스가 나면 아깝기 때문이다.
내가 손으로 하던 시점과 비교
수동 compact idle compaction 작업 하나 끝 해당 해당 없음 긴 작업의 한 범주 끝 해당 해당 없음 오래 자리 비움 해당 해당 해당해당 없음
idle compaction이 반응하는 조건은 대화 크기(200K 토큰 이상)와 방치 시간(약 54분) 두 가지다. 작업이나 범주가 끝났는지는 조건에 없다. 그래서 세 시점 중 자리를 비우는 경우만 자동으로 처리된다. 요약에 무엇을 남기는지 고를 수 있는지는 미공개다.
v2.1.300: 추적 추가, 이어하기 기록 유실 수정
- OTel 추적 확장
- 캐시 쓰기 5m / 1h 구분
- 이어하기 기록 유실 수정
- OpenTelemetry api_request 이벤트에 cache_creation_5m_tokens와 cache_creation_1h_tokens가 추가돼, 캐시 쓰기를 수명별로 나눠 볼 수 있다.
- 추적 span에 gen_ai.provider.name, gen_ai.conversation.id, gen_ai.tool.name, error.type 같은 OpenTelemetry GenAI 표준 속성이 붙는다.
- headless나 Agent SDK 세션을 이어할 때, 출력 토큰 한도에서 끊긴 답 뒤의 compaction이 남긴 최근 메시지가 사라지던 문제를 고쳤다. 이 버전 이후의 compaction부터 적용된다.
- 같은 턴에서 재시도했거나 덜 끝난 답 뒤에 compaction이 일어나면, 이어할 때 요약이 사라지거나 compaction 이전 기록이 되살아나던 문제도 고쳤다.
- 크래시로 기록 마지막 줄이 잘린 세션을 이어할 때 첫 기록이 사라지던 문제도 고쳤다.