Claude Code에서 백그라운드 에이전트를 사용 중이라면, 에이전트 패널 옆에 뜨는 '파일 수정 중…' 같은 상태 표시줄 텍스트를 위해 뒤에서는 상당한 양의 토큰이 소모될 수 있습니다. 2026년 8월 배포된 버전 2.1.232부터 인터랙티브 백그라운드 에이전트에는 agent_summary라는 기능이 기본 활성화되어, 30초마다 해당 에이전트의 전체 대화 트랜스크립트를 모델에게 보내 3~5 단어의 상태 텍스트를 생성합니다.
플램릭스(Flamerix) AI 팀이 자체 시스템의 OpenTelemetry 데이터를 분석해 공개한 바에 따르면, 이 agent_summary 요청으로 인한 비용이 전체 비용의 16.4%, API 요청 건수의 19.7%를 차지했습니다 1. GitHub 이슈 #86879에서는 여러 사용자가 서브 에이전트를 집중적으로 사용하는 환경에서 서로 다른 메트릭으로 상당한 비중을 보고했습니다. rflcrz는 4시간 세션(서브 에이전트 27개)에서 agent_summary가 요청 수의 22.7%, Opus 5 단가 기준 가중 토큰의 18.0%를 차지했다고 측정했고, sylvain-artois는 1시간 45분 세션에서 캐시 읽기 토큰의 26%, kcarriedo는 20개 이상 서브 에이전트 세션에서 가중 토큰의 15–22%를 확인했습니다 2. 반면 Anthropic의 에드윈 아버스(Edwin Arbus)는 텔레메트리를 전송하는 전체 사용자 평균 기준으로는 비용 비중이 약 2% 수준이라고 설명했습니다 3. 즉, 내 워크로드에서 체감되는 비용이 클지 여부는 서브 에이전트를 얼마나 자주, 그리고 얼마나 긴 컨텍스트로 실행하는지에 따라 크게 달라집니다.
이 글에서는 agent_summary 호출이 비싼 구조를 짚어보고, 이를 파악하며 현재 사용 가능한 차단 수단의 장점과 한계를 함께 정리합니다.
30초마다 전체 트랜스크립트를 읽는 비효율

Flamerix AI가 공개한 적용 전후 측정표. 특정 워크로드에서의 결과입니다. ↗
agent_summary의 비용이 큰 이유는 입력과 출력의 비대칭성 때문입니다. 기능은 30초마다 활성 백그라운드 에이전트의 전체 대화 이력을 모델에게 재전송하며, 모델은 이를 읽고 '마지막 행동 3~5단어로 요약'하라는 명령만 수행합니다.
플램릭스 팀의 측정 결과, 입력 토큰 대비 출력 토큰 비율은 약 9,000:1이었습니다. 또한 관련 비용의 96%가 고가인 Opus 모델에서 발생했습니다 1. sylvain-artois라는 GitHub 사용자는 380k 컨텍스트를 가진 에이전트가 시간당 약 4,500만 캐시 읽기 토큰을 소모한다고 보고하기도 했습니다 2. 3~5 단어의 상태를 표시하기 위해 수십만 토큰을 읽는 구조인 셈입니다.
이 소모는 본연의 에이전트 작업과 분리되어 있습니다. 호출 시 skipTranscript:true(트랜스크립트 미기록), 도구 전면 차단, 1턴 제한 등 에이전트의 실제 작업 컨텍스트와 독립적으로 동작하도록 설정되어 있습니다 2. 따라서 이 요청을 차단해도 에이전트가 파일을 수정하거나 명령을 실행하는 동작 자체에는 영향이 없습니다. 플램릭스 팀은 차단 후 OpenTelemetry 데이터에서 agent_summary 요청이 0건으로 기록되었고, 다른 쿼리 소스로 대체되지 않는다는 것을 확인했습니다 1.
현재 사용 가능한 차단 수단

원문에 공개된 Bun preload 실행 예시. ↗
아직 agent_summary를 공식적으로 끄는 전용 설정은 없습니다. 대신 플램릭스 팀과 GitHub 사용자들은 다음과 같은 우회 방법을 제시했습니다.
1. Bun preload 스크립트로 타이머 우회
플램릭스 팀은 Claude Code 바이너리를 수정하지 않고 Bun의 --preload 옵션으로 타이머를 무력화하는 약 70줄 분량의 스크립트를 공개했습니다. 전역 setTimeout을 래핑하여, 요약 타이머 콜백의 소스 코드에서 특정 앵커 문자열을 찾으면 실제 타이머를 실행하지 않고 빈 핸들만 반환하는 방식입니다 1.
curl -fsSL https://gist.githubusercontent.com/flamerix-ai/c3905705cc4205e5de3011fa2e74efce/raw/no-agent-summary.js -o ~/.local/share/no-agent-summary.js
claude daemon stop --any
export BUN_OPTIONS="${BUN_OPTIONS:+$BUN_OPTIONS} --preload=$HOME/.local/share/no-agent-summary.js"
claude이 방식의 주의점은 앵커 의존성입니다. 스크립트가 'Fail-open' 방식으로 작동하여, Claude Code 업데이트 시 내부 코드나 문자열 구조가 바뀌면 스크립트가 조용히 제 기능을 하지 못합니다. 따라서 버전 업데이트 후 OpenTelemetry 데이터로 요청 발생 여부를 다시 확인해야 합니다 1.
2. CLAUDE_CODE_FORK_SUBAGENT 환경변수 설정
GitHub 이슈 #86879 참여자들, 특히 uwuclxdy는 CLAUDE_CODE_FORK_SUBAGENT=0 환경변수를 설정하면 요약이 멈춘다고 보고했습니다 2.
{
"env": {
"CLAUDE_CODE_FORK_SUBAGENT": "0"
}
}그러나 이 변수는 포크 모드 자체를 비활성화합니다. sylvain-artois가 코드 분석으로 확인한 바에 따르면, 요약 활성화 조건이 포크 게이트와 연동되어 있어 포크 기능을 꺼야만 요약도 꺼지는 구조입니다 2. 따라서 서브 에이전트가 대화 이력을 복사하는 포크 모드까지 함께 필요 없는 사용자라면 직관적인 대안이 될 수 있지만, 포크 기능이 필요하면 사용할 수 없습니다. 참고로 2.1.276 버전 번들 분석에서는 인터랙티브 CLI에서 이 기능을 끄는 공식 경로가 존재하지 않는다는 점도 확인되었습니다 2.
차단 시 변화하는 사용자 경험

Anthropic이 공개한 에이전트 목록 UI 예시. 차단 전후 비교 화면은 아닙니다. ↗
agent_summary를 차단하면 백그라운드 에이전트의 상태 표시줄 텍스트가 갱신되지 않습니다. 현재 에이전트가 무엇을 수행 중인지 시각적으로 알 수단이 사라지는 것입니다.
Anthropic 측은 이 점을 인지하고 있습니다. 에드윈 아버스는 Hacker News에서 현재 방식이 "상태 표시줄에는 과도하다"고 인정하며, 2.1.311+ 버전에서 캐시 미스 문제를 수정했습니다. 또한 전체 트랜스크립트 대신 짧은 메모를 소형 모델에 전송하는 'short 모드'를 개발 중이라고 밝혔습니다 3. 2.1.310 버전 코드에서 관련 로직이 확인되지만 아직 기본값은 비활성 상태입니다 3.
내 워크로드에서의 비중 측정

GitHub 이슈에 보고된 4시간·서브 에이전트 27개 세션의 측정표. ↗
백그라운드 에이전트를 사용하지 않으면 이 기능의 비중은 0%에 가깝고, 서브 에이전트를 다수·장시간 실행하면 비용 평가 기준 약 16%, 캐시 읽기 토큰 기준 약 26%까지 올라갈 수 있습니다 1, 2. 메트릭에 따라 수치가 다르므로, 차단 여부를 결정하기 전에 내 환경에서의 비중을 먼저 파악하는 것이 좋습니다.
상태 표시줄 요약 요청은 트랜스크립트에 기록되지 않기 때문에 JSONL 로그 기반의 일반 비용 추적 도구로는 확인할 수 없습니다. CLAUDE_CODE_ENABLE_TELEMETRY=1로 OpenTelemetry 익스포트를 활성화하고, query_source = agent_summary 항목의 요청 수와 비용을 집계해야 정확한 비중을 확인할 수 있습니다 1, 3.
Bun preload 스크립트를 적용한 후 OpenTelemetry 데이터에서 query_source = agent_summary 항목이 사라졌는지 확인하여 효과를 검증하는 것이 확실한 방법입니다 1. 환경변수 CLAUDE_CODE_FORK_SUBAGENT=0은 포크 모드 전체를 비활성화하므로, 포크 기능을 사용하지 않는 사용자라면 플램릭스 팀이 제시한 Bun 스크립트 없이도 동일한 효과를 얻을 수 있습니다 2.
