harnsy

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.

10 min readPavel Buchnev

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
  1. What we changed
  2. How we compared the three windows
  3. A day later: a step cost a quarter less
  4. A week later: the handover point decides
  5. What moved it: the handover points
  6. Waiting has a price
  7. Messages wake the agents with the largest contexts
  8. Subagents took work and stayed cheap
  9. What we would try next
  10. What we measured and what we did not
  11. What to take from this
  12. 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.

WindowPeriodSteps
Before23 Sep 00:00 – 29 Sep 21:30 (6.9 days)40,759
Right after29 Sep 21:30 – 30 Sep 14:24 (16.9 hours)10,686
Now5 Oct 00:00 – 8 Oct 00:00 (3 days)33,406
The three windows. Daily totals are not comparable, because the load differs; we compare the price of a step, the context and shares.

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:

ChangeWhat the data showedWeight
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 roles3,235 steps, $204. The same tokens at Opus 5.5 prices: $258. Sonnet writes more per step.about −5% (measured)
Shorter role documentsFresh sessions carry 11k fewer tokens at the 12th step and 27k fewer at the 100th.−2…−4% (measured, converted by estimate)
Batched notices787 fewer wake-ups on the first day.−1…−3% (estimate)
What each change was worth in the first window. Measured means read from the transcripts; estimated has an assumption next to it.

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

WindowPer step
Before$0.096
Right after$0.075
Now$0.101

$0.101 per step with handover points at 600–700k.

At API list prices. Before: 23–29 Sep; right after: 29–30 Sep (16.9 h); now: 5–8 Oct 2026.

Share of the weight in steps above 400k tokens of context

WindowShare
Before48%
Right after14%
Now36%
At API list prices, same windows.

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.

RoleIn the first studyNow
Developers and reviewersabout 400k540–636k; 16 of 20 finished sessions above 550k
Leads600–700k (a setting per role overrides the 40% default)681–770k, median 715k; all 8 finished sessions
Where sessions actually handed over.

Who makes the steps above 400k

GroupShare
Leads48%
Developers and reviewers48%
Everyone else4%
Share of the weight in those steps, $1,041 over the 3 days, at API list prices.

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.

RoleBeforeRight afterNow
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
Cost of one step and the average context, by role. Each cell: step at API list prices · context.

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

WindowPer dayOne re-warm
Before10$3.28
Right after31$1.56
Now65$2.04

14% of the weight now goes to re-warming the cache.

Per day, and the cost of one, at API list prices.

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)WeightExtra 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
The same three days replayed at other handover points.
  • 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.

Measured, estimated and not measured.

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 harnsy

harnsy is not affiliated with Anthropic, OpenAI or OpenCode; their names are theirs.

site-3flead · Claude Codeliveview only
❯ Plan #42 with the team.

Waiting for the breakdown from analyst-7a…

from analyst-7a through harnsy❯ #42 broken down: three acceptance criteria, including a retry after 24 h.

I’ll hand #42 to site-9a.

❯