The Handoff Tax: Continuing Non-Native Trajectories in LLM Agents
Roy Ganz, Mor Shpigel Nacson, Adi Kalyanpur, Ron Litman
cs.AI
2026-08-25
Raw LC-to-HC handoff recovers 47% (Claude) and 36% (GPT) of the quality gap; less cheap-model context helps escalate, more strong-model context helps downshift.
Coding agents now run dozens to hundreds of model calls on a single issue. Products already let users switch mid-run with /model: escalate when a cheap model stalls, downshift once the hard reasoning looks done. The switch is shipped. The cost of inheriting another model's trajectory is not.
AWS Agentic AI treats that inheritance as the object of study. The receiver must continue phrasing, hypotheses, tool habits, and dead ends it did not produce. A strong model can get anchored by a weak model's wrong turns. A weak model can ride a strong model's groundwork, or fall apart once that scaffolding is gone. The extra quality-and-cost penalty is the handoff tax.
Everything runs on mini-swe-agent with fixed tools and prompts, on all 500 SWE-bench Verified GitHub issues. Each family has a cheap/weak LC model and an expensive/strong HC model: Claude Haiku 4.5 vs Opus 4.7, and GPT-5.6 Luna vs Sol. Direction is LC→HC (escalation) or HC→LC (downshift).
Switch points are percentiles of the starter model's step-count distribution inside each difficulty bucket: {5,10,15,25,35,45,50}. Later percentiles leave too few switched instances. Metrics are computed on the intersection of tasks that actually switched under every interface, with single-model baselines evaluated on that same subset.
Every interface keeps the working tree on disk. What changes is the transcript handed to the suffix:
Escalation also has two restart controls that still bill for the LC work, then throw away both transcript and edits and run HC from the original task: Abort + HC fresh (bill LC through the switch) and LC-full + HC-full.
Reported metrics are pass rate, USD cost including cache reads/writes, and steps, plus two normalized scores: QRec (share of the HC-over-LC quality gap recovered) and CSRet (share of the LC-over-HC cost advantage retained; negative means costlier than HC-only). 58 configurations per family, 58,000 agent runs, 2 million API calls, 36 billion tokens.
| Setting | Claude pass / cost / QRec / CSRet | GPT pass / cost / QRec / CSRet |
| LC-only | 60.7% / $0.40 / 0 / 100 | 58.7% / $0.06 / 0 / 100 |
| HC-only | 79.2% / $0.72 / 100 / 0 | 83.7% / $0.47 / 100 / 0 |
| Raw escalate | 69.2% / $1.61 / 47 / -285 | 67.5% / $0.36 / 36 / 26 |
| Compactpre escalate | 71.8% / $0.75 / 60 / -11 | 68.8% / $0.27 / 40 / 49 |
| Traj-drop escalate | 72.4% / $0.81 / 64 / -30 | 79.7% / $0.50 / 84 / -8 |
| Raw downshift | 65.6% / $0.51 / 50 / 80 | 81.0% / $0.41 / 79 / 14 |
| Traj-drop downshift | 60.9% / $0.59 / 28 / 59 | 75.4% / $0.43 / 53 / 10 |
On Claude, Raw escalation at $1.61 is strictly dominated by aborting and restarting HC at $0.90: restart is cheaper and solves more issues. On GPT, Raw stays below HC-only cost ($0.36 vs $0.47) but recovers only 36% of the quality gap.
The useful interface reverses with direction. For escalation, less LC transcript is better: Traj-drop lifts Claude QRec from 47% to 64% and GPT from 36% to 84%. For downshift, dropping the HC transcript is the worst option tested (Claude QRec 28%, GPT 53%). The cost channels differ: under Claude escalation, each Raw HC step costs 2.2× Compactpre; under downshift, Traj-drop makes LC take 1.6× as many steps.
Hard SWE-bench tasks are the exception. Reduced-context Claude escalation becomes cheaper than HC-only there (CSRet 12-42%, QRec 65-74%); Raw does not. About 24 examples per cell, flagged as exploratory.
Change the information schedule and the ranking flips. On LiC, where requirements arrive in shards, Claude escalation reaches QRec 86% and CSRet 36%, versus 31% and 53% for downshift. On BrowseComp, GPT escalation nearly closes the quality gap (QRec 95.8%) but CSRet is -30%, still costlier than abort-and-restart.
A /model switch is its own inference problem. Routing picks who acts next; the handoff interface picks what that model inherits. In coding, the working tree already sits on disk. A weak model's reasoning trace is closer to a burden for a strong receiver. A strong model's trace is closer to a manual for a weak receiver.
Practical heuristic: if you escalate because the cheap model is stuck, compact or keep the diff and drop the chatter. If you downshift to save money after the hard part, keep the strong model's transcript. On spec-upfront coding tasks, escalation often loses to a restart. On tasks whose requirements arrive late, an HC suffix is more defensible.
Two commercial pairs and one main benchmark. Interface comparisons are established in coding; LiC and BrowseComp were run only with Raw. Switch points are precomputed percentiles, not progress-aware policies. The hard subset is small. Each task-configuration pair is a single episode; variance is handled with task-clustered bootstrap. Dollar rankings depend on list prices and cache hit rates. Repeated handoffs inside one trajectory were not tested.