02 · Why
Less cache,
less reuse.
To separate the causes, we ran the server without speculation twice more, with its KV cache cut to the size MTP and n-gram had left, and ran MTP once more with vLLM's experimental option to keep its last cache block.
The cache size
With its cache cut to MTP's size, the server without speculation completed 467 tasks an hour instead of 752. MTP completed 330, so the smaller cache accounts for 285 of the 422 tasks an hour that MTP lost, about two thirds. With four agents whose prompts grow at every step, a smaller cache holds fewer of them, and more steps have to recompute their prompt. Cut to n-gram's size, the server completed 760 tasks an hour, the same as with the full cache, so n-gram's smaller loss does not come from memory.
The reuse
Qwen3.8-27B is a hybrid model. Most of its layers keep a running state instead of attending over every past token, so vLLM can resume a cached prompt only from a point where it saved that state, at the end of a cache block. Each agent step sends the previous prompt plus a little more, so at best a step reuses everything up to the previous prompt's last full block. Without speculation every step got that far.
With MTP, 14% of steps got that far and 51% stopped one block short, because vLLM drops the last cache block for drafters of MTP's kind. Speculation also holds extra state for each drafted token, and more steps found nothing to reuse: 33% for MTP against 16% for the server without speculation at the same cache size, and 10% for n-gram against none. With the experimental option to keep the last block, 64% of MTP's steps reused the whole previous prompt and MTP completed 397 tasks an hour, still below the 467 of the server without speculation at the same cache size.