The design pages say what a reasoning cap costs - #759
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
This was referenced Sep 18, 2026
This was referenced Sep 19, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What capping the model's reasoning buys and what it costs, measured on the endpoint we run against.
The endpoint honours one of the four ways to ask for less thinking
On the same 1,310-character passage, with the same system prompt, one call each:
reasoning_effort: lowthinking: {budget_tokens: 4096}reasoning: {max_tokens: 4096}max_tokens: 4096thinking: {type: disabled}Only
reasoning_effortis honoured, and a second pass pins it: low twice gives 15,486 and 16,537reasoning tokens, medium 32,989 and 35,125, high 32,011 and 29,477. Low halves the thinking; medium
and high are what the endpoint already does.
max_tokensis ignored outright, which the third rowfrom the bottom shows: a call capped at 4,096 returned 45,428 completion tokens and finished with
stop.Halving the thinking costs more than it buys
The four NVDA filings, a fresh base with the same 14 classes and 28 properties, the same 55 chunks,
the same four documents extracted concurrently, once with the cap and once without:
reasoning_effort: lowA quarter off the wall clock, and against it: a sixth of the filing's table figures never reach a
statement, the quote check catches more than twice as many quotes the passage does not contain, and
the judge reads nearly twice the share of statements as misworded. Judging the same graph twice
moves that number by 1.4 points, so 3.2 is not the judge moving. The figure bench is structural and
reads no model at all, which is why the 2% to 16% is the number to look at.
The statements lost are the ones the thinking was paying for. Both halves of the trade land on
tables, the dense chunks where a row's heading, its caption and its column have to be held together
to write a correct quote.
Nothing changes in the product
The lever stays where it is. The read timeout it was proposed for is already answered by streaming
[#757], and the passage that crossed 300 seconds three times is not fixed by being a quarter
quicker. This PR records the measurement in the extraction design page so the next person does not
re-run it.
One thing to follow up separately: the capped run recorded 8
truncated_replydrops against thebaseline's 0, and a call with reasoning disabled stops at exactly 4,096 completion tokens with
finish_reason: length. We never sendmax_tokens, so the endpoint's own ceiling decides where along answer stops.
🤖 Generated with Claude Code