[Bug] Background classification agents consume ~10% of 5h token usage per minute

Status Open
Reported on v2.1.299
Maintainer reply None cached
Activity 3 comments · opened Oct 15, 2026

Bug Description
I have send a feedback that review panel destroyed wasted the tokens a3f17ca5-957d-4072-8af3-864d7904d389. That no an issue. I found the real issue. I run classification test where agents classigies entries in background and it started eating the tokens like 10% perminute of 5h usage. First I want your explanation why that started happening who eat all those tokens in that short time and I want to request compensation for my both accounts Personal and Companies

Environment Info

  • Platform: darwin
  • Terminal: ghostty
  • Version: 2.1.299
  • Feedback ID: b3e785ba-d34a-45b2-9253-c89bf68c2948

View original on GitHub ↗

3 Comments

Mantenzo · 4 hours ago

claude answer does not allign with token usage:

The eval runs used them. Each case is its own Opus claude -p session, and the benchmark ran two scripts at once, 8 sessions in parallel. Between 03:52 and 03:55 it finished 44 classifications.

What one classification costs:
- Prompt: 34 KB (v2) to 48 KB (v4), measured on VFK-13200/run1.prompt.txt. That's the agent file, team files, the examples skill, the story requirements and the finding, roughly 9–12k tokens.
- Plus the session's own system prompt, and the agent searching the code snapshots with Read and Grep. Every tool call sends the whole context again, so one classification adds up to several hundred thousand input tokens.

Unverified: the exact usage. The run logs don't record token counts, so the ~300k per run (about 13M tokens for those 44 runs) is an estimate from prompt size and turn count, not a measurement.

Proposals:
1. Make the eval cheaper:
   - run --parallel 2;
   - run only the 14 cases that fail in every version instead of all 46;
   - make run_eval.py pass --output-format json so each run logs its real token usage.
2. Cut the code search. Most of the cost likely comes from the agent's Grep and Read calls over the 2.5 GB snapshots. Limiting it to a few tool calls (or a turn cap on claude -p) would bound each run.
samzhang092-eng · 4 hours ago

i found same issue, token cost more than it declared and usage is very high for a simple task

lowkeybuilds · 3 hours ago

The detail in your own follow-up explains a lot of the speed: each eval case is its own claude -p session, 8 running in parallel. A fresh session can't reuse another session's cache, so every case starts by writing its whole starting context (system prompt, tools, CLAUDE.md, the case input) to the cache. Cache writes are the expensive kind of input. Eight of those at a time, back to back, can move a 5-hour meter by several percent a minute even if each case looks small. The plan-review panel in #102234 works the same way: 6 subagents, each paying to cache its own copy of the plan context.

Whether that fully explains your 10%/minute, or there's something more, is answerable from your transcripts. Each claude -p session writes its own .jsonl under ~/.claude/projects/<project>/, with cache writes, cache reads and output per call and timestamps. Summing cache writes per minute across the parallel sessions, and comparing that with the meter's movement, separates "expected cost of 8 cold sessions" from "metering out of line". That's the evidence a compensation request needs.

A free local tool that totals this (disclosure: I wrote it): npx github:lowkey-studio/quotatrace --only claude --since 2d (counts only, no prompts or paths). npx github:lowkey-studio/quotatrace record starts logging the 5h/weekly percentages from ~/.claude.json for the next run. If you want someone to go through the numbers for both accounts and draft the request, there's a paid review on https://quotatrace.appin60.com, but the tool alone gives you the tables. For future eval runs, fewer parallel sessions that each process several cases, rather than one cold session per case, will cut the cache-write cost a lot.