Claude Code's Hidden Agent Summaries Consume 16% of Token Budget — More Than the Main Conversation
A detailed OpenTelemetry analysis published this week by Flamerix AI found that Claude Code’s agent_summary feature consumes 16.4% of all API spend — slightly more than the main conversation at 15.7% — while producing only a 3-5 word status line that appears in the agents panel and is never read by the model.
What Agent Summary Does
Every 30 seconds, for every active background agent, Claude Code sends that agent’s entire transcript to its model (almost always Opus 5.5) and asks it to describe its most recent action in 3-5 words. The response populates the status display in the agents panel. It has no effect on the model’s reasoning or the user’s conversation.
The feature shipped as on-by-default in Claude Code 2.1.232 (August 2026). There is no setting to disable it.
The Numbers
Flamerix AI’s DRIM observability product detected the anomaly via Claude Code’s OpenTelemetry export, grouping claude_code.api_request events by query_source:
| Metric | Before hook | After hook |
|---|---|---|
| Share of all Claude Code spend | 16.4% | 0% |
| Share of all API requests | 19.7% (~1 in 5) | 0% |
| Spend on Opus | 96% | — |
| Input tokens per output token | ~9,000 : 1 | — |
The main conversation itself accounted for 15.7% of spend over the same period — meaning agent_summary was the single largest token consumer in the product.
GitHub issue #86879, opened after the gist circulated, collected four independent measurements spanning 18-26% of token spend, consistent with the telemetry figures.
The Fix
The published workaround is a Bun preload (~80 lines) that wraps setTimeout and setInterval. When a callback’s source text matches the [AgentSummary] timer anchor, the hook returns an inert handle instead of arming the timer. Every other timer passes through unmodified. The binary is not modified; BUN_OPTIONS=--preload injects the hook at runtime.
After installing the preload, the claude_code.api_request events with query_source = agent_summary disappear entirely from the OpenTelemetry export.
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
BUN_OPTIONS="--preload $HOME/.local/share/no-agent-summary.js" claude
The hook is version-sensitive: a Claude Code update can silently undo it because the binary ships as precompiled Bun bytecode.
Context
On Claude Code’s Max plan, users receive a fixed rate-limit headroom rather than a per-token invoice. The practical impact is that agent_summary consumes roughly one-sixth of a session’s capacity before the user has typed a single message in a multi-agent workflow. On pay-per-token deployments the cost is direct.
Anthropic has not commented on the issue. The GitHub thread remains open.