← Claude Code Hub
Nov 5, 2026 · 5 min read ✦ Tip #255

Claude Code background agents: seeing what they do now costs 99% less

Claude Code background agents rewrite their status every 30 seconds, and on the old path each rewrite re-sends their whole conversation. Anthropic switched it to short notes, but account by account: here is how to check yours.

Every 30 seconds, a background agent's status line used to come from re-sending its whole conversation; now a small model writes it from short notes, but only where Anthropic has already switched it on

TL;DR The line that says what each background agent is doing ("Reading docs/wmedia.md") is rewritten every 30 seconds, and on the old path each rewrite re-sends the agent's whole conversation. Anthropic announced on November 4 that Haiku 5.5 now writes it from short notes, about 99% less per update, but it's switching it on account by account. Check which path you're on with --debug-file; if you're still on the old one, CLAUDE_CODE_DISABLE_AGENT_PROGRESS_SUMMARIES=1 turns it off.

While a background agent works, Claude Code gives it a short label in the agent's row and refreshes it every 30 seconds. The agent doesn't write that label: it's a separate call to the model, and it counts against your usage limit like any other. Five agents running in parallel for twenty minutes means up to two hundred calls you never asked for.

The @ClaudeDevs announcement sums it up: each update used to re-read the agent's whole conversation, and now Haiku 5.5 writes it from short notes, about 99% less per update. The announcement is about that label only, not the agent's own work.

What you see in the agent's row

In an interactive Claude Code v2.1.318 session, with a background agent reading the files in a folder one by one, the row changes on its own after 30 seconds:

  ◯ general-purpose  Reading docs/wmedia.md                     32s · ↓ 41.3k tokens

Reading docs/wmedia.md is the label. Before the first update, the row shows the description the agent was launched with (Summarize docs files).

What that label cost

Claude Code logs every update in its debug log, prefixed with [AgentSummary]. That session took the old path, a fork of the agent with its whole context:

[AgentSummary] Timer fired for agent a1e2959a182852a9e
[AgentSummary] Forking for summary, 46 messages in context
Forked agent [agent_summary] finished: 1 messages, types=[assistant], totalUsage: input=9713 output=14 cacheRead=40319 cacheCreate=435
[AgentSummary] Summary result for a1e2959a182852a9e: Reading docs/wmedia.md

About 50,000 input tokens to write 14 output tokens. 40,319 came from the agent's prompt cache, which costs far less, but 9,713 didn't. And that's one update for an agent 30 seconds in: the context grows while it works, so the next one reads more.

The new path leaves a different line in the same place, Asking <model> for summary from <N> characters of notes. According to the binary, the notes stay under about 1,500 tokens.

Not every tick ends in a call: it's skipped when the agent has fewer than three messages or nothing has changed since the last label, and it stops when the agent finishes. On the old path, if the agent's cache is cold, it waits instead of paying for the whole context uncached; the log says so with its prompt cache is likely cold.

Who has the new path yet

In v2.1.318, the new path sits behind a feature flag Anthropic controls, and if the flag doesn't arrive, the default is the old one. The binary has room to turn it on by default for some models in a later version, but in this one that list is empty.

Your session Path
Anthropic API, flag already on for you, Haiku model not overridden (ANTHROPIC_DEFAULT_HAIKU_MODEL, ANTHROPIC_SMALL_FAST_MODEL) Short notes
Anthropic API, flag not on yet Fork with the whole context
Bedrock, Vertex, Foundry, a gateway, or no feature flag download (DISABLE_TELEMETRY, CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC) Fork with the whole context

The v2.1.318 changelog names that last group in a line of its own: on Bedrock, Vertex, Foundry or with telemetry off, an update on a cold prompt cache can now wait up to 5 minutes for the agent's pending response. The example session was a claude.ai cloud session on November 5, and it said Forking: Anthropic announcing it doesn't mean you have it yet.

Check yours and decide

1. Start with a debug log

claude --debug-file /tmp/cc-debug.txt

2. Launch a background agent that runs for more than 30 seconds

Launch a background agent that reads the files in docs/ one by one and summarizes each.

3. Look for the line

grep "AgentSummary" /tmp/cc-debug.txt

characters of notes is the new path, and there's nothing to do. Forking for summary is the old one, and the Forked agent [agent_summary] finished line tells you what each tick cost.

4. If you're on the old path and run lots of agents, turn it off

export CLAUDE_CODE_DISABLE_AGENT_PROGRESS_SUMMARIES=1

With the variable set, the log says so when the agent launches and no timer starts:

[AgentSummary] No progress summaries for ae1d85f08a38dde8a: CLAUDE_CODE_DISABLE_AGENT_PROGRESS_SUMMARIES is set

The agent's row keeps its fixed description (Summarize docs files). All you lose is seeing which file it's on. The variable isn't in the docs, it comes from the binary: test it again after you update.

Two more details

  • On the new path, the label comes in your language. If you set language in settings, the instruction asks for the label in that language, with file and function names left as they are. The old path sends no such instruction.
  • In claude -p and the Agent SDK labels are only generated when the integration turns on the agentProgressSummaries option. A script that launches agents doesn't pay for this unless it asks.

To make the agent's own work cheaper, what matters is its model and its effort: Haiku 5.5 for subagents and low effort for the quick ones. And where to watch everything running at once is in the tasks panel tip.

Official docs: Changelog, v2.1.318 · Subagents (doesn't cover the labels)

Tested with Claude Code v2.1.318 in a cloud session, on November 5, 2026.

Found this useful? See more of wmedia.es in your Google results.

Add wmedia.es as a preferred source on Google
FREE GUIDE

You don't need Opus every time.

Model and effort are two settings, not one. 8 pages with the settings that actually move your bill, a three-question diagnostic for when something fails, and the price ladder.

  • 1. What "better" means capability, time and money
  • 2. Model who you send
  • 3. Effort how much rope you give
  • 4. Diagnostic three questions when something fails
  • 5. The bill where it comes from
Are you a professional Web developer?

It arrives by email · You join the Gravitas newsletter · Unsubscribe anytime

Stop overpaying in Claude Code
FREE GUIDE

You don't need Opus every time.

Are you a professional Web developer? · Unsubscribe anytime
Workshop for teams

Multiply your team's output without sacrificing quality: a 6 to 8 hour AI First workshop, online, on the Claude platform.

See the workshop

Using Opus for everything? See when you don't need it.