What three windows of our agents’ sessions taught us about handover points and token cost
In September we counted where our agents’ tokens go and found that the size of the context multiplies everything. Then we changed several settings and measured three windows of our own sessions: before, the day after, and a week later. This is what the measurements taught us: how the handover point, waiting, messages and subagents drive context and cost, and why the handover point is a trade-off between continuity of work and weight. Numbers, the trade-off, and what we would try next. No saving is promised; these are one team’s sessions.
Key numbers
- $0.101
- cost of one main-session step at API list prices in the last three days; $0.096 before our changes, $0.075 the day after
- 36%
- of the weight sits in steps above 400k tokens of context; 48% before, 14% the day after
- 715k
- tokens: the median context at which our leads hand over, against a 400k default
- 65
- times a day an agent re-warms its cache after an idle hour; 10 before, 31 the day after
In this article
- What we changed
- How we compared the three windows
- A day later: a step cost a quarter less
- A week later: the handover point decides
- What moved it: the handover points
- Waiting has a price
- Messages wake the agents with the largest contexts
- Subagents took work and stayed cheap
- What we would try next
- What we measured and what we did not
- What to take from this
- Where harnsy fits
This is the second article on how our agents use tokens. The first one counted a week of 65,000 requests and ended with a hypothesis: if the size of the context multiplies the weight of every step, keep it short. We then changed several settings and measured again, twice: a day after and a week after. The two measurements showed different things, and the difference is what taught us most.
What we changed
On 29 September we switched on four things:
- Handover at 40% of the window: when an agent’s context reaches it, harnsy asks the lead to hand the role over to a fresh agent, which starts from a written note. A threshold set on a role overrides the default.
- Sonnet 5.5 on six roles (at the time) that follow a procedure or write text. Developers, reviewers and leads stayed on Opus 5.5.
- Shorter role documents: the developer’s and the lead’s came down to about a third of their length.
- Batched notices: 299 batches instead of 1,086 single notices in the first day.
Our own model of the step history said this would take about 20% off the weight of the main sessions. In the first 17 hours the step price fell by about a quarter, which agreed.
How we compared the three windows
Same method as in the first article: the transcripts Claude Code keeps, one line per request, every request priced at its model’s published API rate, no duplicates. We limited the data to our company’s sessions and recomputed the “before” window the old way, over all our projects: it gives the same figures as the first study (73,046 steps, $7,044), so the comparison is fair. Because the data is narrower, the average context before is 305k here, against 306k over all projects.
| Window | Period | Steps |
|---|---|---|
| Before | 23 Sep 00:00 – 29 Sep 21:30 (6.9 days) | 40,759 |
| Right after | 29 Sep 21:30 – 30 Sep 14:24 (16.9 hours) | 10,686 |
| Now | 5 Oct 00:00 – 8 Oct 00:00 (3 days) | 33,406 |
A day later: a step cost a quarter less
The step of a main session, the one an agent makes in its own conversation, cost $0.096 before and $0.075 right after. The average context of a step fell from 322k to 257k tokens. The weight in steps above 400k tokens fell from 48% to 14%.
The reason was the handover point. A step on the same context costs the same before and after ($0.089 and $0.090 for 200–400k); the saving came only from contexts growing less often. Our estimate of what each change was worth:
| Change | What the data showed | Weight |
|---|---|---|
| Handover at 40% | Steps above 400k: 52% of the weight (all projects) became 14%. Replaying the old steps at the new thresholds gives −20%. | −15…−20% (calculated and measured) |
| Sonnet 5.5 on six roles | 3,235 steps, $204. The same tokens at Opus 5.5 prices: $258. Sonnet writes more per step. | about −5% (measured) |
| Shorter role documents | Fresh sessions carry 11k fewer tokens at the 12th step and 27k fewer at the 100th. | −2…−4% (measured, converted by estimate) |
| Batched notices | 787 fewer wake-ups on the first day. | −1…−3% (estimate) |
A week later: the handover point decides
We measured again on 5–8 October, three full days. The step of a main session now costs $0.101 (it was $0.096 before our changes and $0.075 the day after). The average context is 311k tokens, close to the 322k we started from. The weight in steps above 400k is 36%. What differs from the day after is the handover points, as the next section shows.
Cost of one main-session step
| Window | Per step |
|---|---|
| Before | $0.096 |
| Right after | $0.075 |
| Now | $0.101 |
$0.101 per step with handover points at 600–700k.
| Window | Share |
|---|---|
| Before | 48% |
| Right after | 14% |
| Now | 36% |
All steps together, subagents included, cost $0.087, against $0.091 before. That figure blends two things: subagents now carry 20% of the weight (3% before), and their steps are cheap, $0.055. The main sessions, where the settings show, are the better yardstick.
What moved it: the handover points
The cause is a setting. In the first days of October the handover points were raised: developers and reviewers to 600k, the site lead from 600k to 700k; the product lead had been at 700k since 30 September. The numbers below show where sessions actually handed over.
| Role | In the first study | Now |
|---|---|---|
| Developers and reviewers | about 400k | 540–636k; 16 of 20 finished sessions above 550k |
| Leads | 600–700k (a setting per role overrides the 40% default) | 681–770k, median 715k; all 8 finished sessions |
Who makes the steps above 400k
| Group | Share |
|---|---|
| Leads | 48% |
| Developers and reviewers | 48% |
| Everyone else | 4% |
The roles that kept the 40% setting (designer, DevOps, UX) stayed near their numbers of the day after. The roles with higher points carry longer contexts and weigh more per step.
| Role | Before | Right after | Now |
|---|---|---|---|
| Product team, developer | $0.089 · 283k | $0.070 · 218k | $0.082 · 255k |
| Product team, reviewer | $0.107 · 363k | $0.065 · 194k | $0.081 · 252k |
| Product team, lead | $0.105 · 422k | $0.093 · 374k | $0.101 · 388k |
| Site team, lead | $0.091 · 313k | $0.073 · 258k | $0.124 · 425k |
| Site team, designer | $0.079 · 206k | $0.069 · 168k | $0.075 · 209k |
| Site team, DevOps | $0.088 · 260k | $0.081 · 217k | $0.093 · 244k |
A higher point is a trade-off, and we measured one side of it. A successor that starts from a note can lose the thread; a higher point lowers that risk. We measured what the higher point costs in weight; what it protects, we did not measure.
The expensive roles kept their models. Sonnet’s share of the weight fell from 27% to 11.5% only because the roles on Sonnet worked less in these three days.
Waiting has a price
The second lever is waiting. An agent that sits idle for more than an hour loses its cache and has to write the whole context again. Before our changes this happened 10 times a day; now 65 times, at $2.04 each, 14% of the weight.
Cache re-warms after an idle hour
| Window | Per day | One re-warm |
|---|---|---|
| Before | 10 | $3.28 |
| Right after | 31 | $1.56 |
| Now | 65 | $2.04 |
14% of the weight now goes to re-warming the cache.
It is not only the morning. Re-warms run all day, with peaks at 10:00 and around midnight. The median pause is 2.7 hours; a quarter of the pauses are shorter than 1.5 hours and a quarter longer than 8. Leads and developers are the most frequent, then DevOps, UX, reviewers and the designer. An agent waits for a review or for the next task, and the cache expires in the meantime.
Messages wake the agents with the largest contexts
Turns started by a message from another agent are now 65% of the weight (69% with subagents’ hand-backs), against 79% before. The drop is mostly the subagents taking part of the work, not a change in how agents talk.
Short turns, one to three steps like “got it”, are 729 a day and 17% of the weight, $0.225 per turn. Leads make 64% of them. Per 1,000 steps they went from 101 to 74 to 65, a slow decline. Each such turn costs more than in the first study ($0.225 against $0.158), because the leads’ contexts are larger at their higher handover point.
Subagents took work and stayed cheap
Subagents went from 3% to 20% of the weight. Almost all of them are developers handing a whole build to a subagent. Such a subagent does not hand over and grows without a threshold: the largest reached 783k tokens and weighed $61. Even so, steps above 400k are only 2.9% of the subagents’ weight, and their step is cheap. Moving work into a subagent is useful: the main session grows more slowly.
What we would try next
These are proposals, not results. Each estimate is a replay of our past steps, with the handover price set at $0.70 and a fresh session starting at 60k tokens. A real lead’s handover note is longer, so the saving for leads may be a little smaller. The percentages are shares of the whole weight, about $964 a day at API list prices.
| Handover points (K tokens) | Weight | Extra handovers a day |
|---|---|---|
| Leads 400, the rest as now | −6.8% | +1 |
| Developers and reviewers 400, the rest as now | −6.1% | +4 |
| Leads 400 and developers and reviewers 400 | −12.9% | +5 |
| Leads 500 and developers and reviewers 400 | −11.8% | +4 |
| Leads 500 and developers and reviewers 500 | −9.3% | +4 |
| Everyone 300 | −19.8% | +18 |
- Lower the points: developers and reviewers to 400k, leads to 500k, for about −11%. If the higher points protect the thread of the work, the compromise is 500k for all three, about −9%. Run it on one team for a week and compare not the cost of a step but the cost of a closed task.
- Keep the cache warm for an agent that waits: every 55 minutes of idling, for up to four hours, harnsy wakes it with an empty short ping. Reading a 322k context from cache costs about $0.06, re-warming about $2. By our window that is −6…−7% (a ping budget of $14 a day included). It needs a feature in harnsy, and we do not know how Anthropic counts pings against a subscription limit.
- A digest for the lead instead of separate “for your information” messages: acknowledgements pile up and arrive in one batch every 10–15 minutes; questions and blockers go at once. If half the leads’ short turns disappear, that is about −5%. Not built yet.
What we would not do: limit subagents to save money, or widen Sonnet only for the price; its step costs almost the same ($0.074 against $0.089 for Opus 5.5 in this window).
What we measured and what we did not
- Measured
Step price, context, shares by size, role and model, cache re-warms and the handover points, from 33,406 steps in three days, against the same method on the earlier windows.
- Estimated
The worth of each change, the replay at other handover points, the idea of keeping the cache warm. They carry assumptions: the handover price and the start at 60k tokens.
- Not measured
Whether the work suffers at a handover point of 400k or 600k. Why the points were raised. How Anthropic counts cache reads and pings against a subscription limit. Codex and OpenCode sessions.
What to take from this
- What a setting saves lasts as long as the setting. Measure again after a week, on a full window.
- Compare the price of a step and the shares, not daily totals: the load changes.
- Context size at handover is the biggest lever we found. The higher the point, the more every following step weighs.
- Waiting has a price too: a cache that expires is written again.
- Before you move a handover point, decide how you will check the quality of the work, and look at it next to the cost.
Where harnsy fits
harnsy is a local app that connects Claude Code, Codex and OpenCode agents into one team with roles. The handover point is a setting per role: the default is 40% of the window, and the dashboard shows where each role stands. A higher point is a choice between money and continuity, and harnsy does not make it for you. How it installs, and what it changes on your machine, is on the install page.
Keep your agents’ memory short
harnsy connects your Claude Code, Codex and OpenCode agents into one team with roles, and hands work over before a context grows too long. The handover point is a setting per role.
Install harnsyharnsy is not affiliated with Anthropic, OpenAI or OpenCode; their names are theirs.