feat: add manual thinking budget control for supported providers/models #3892
+350
−51
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.
Related GitHub Issue
Closes: #3008
Description
This PR introduces manual control for the "thinking token limit" if supported. Not setting it will use default handling by provider/model e.g. Gemini will then adjust the budget according to the request as their docs.
Support for this feature is determined by checking if
modelInfo
hasmodelMaxThinkingTokens
. (from a quick glance, this seems to correlate with the only providers for which we support it currently:gemini
andvertex
)Key changes:
manualThinkingBudgetEnabled
setting (defaults tofalse
), which sets max thinking token limit to undefined whenfalse
, resulting it it not being added to the request.modelMaxThinkingTokens
already set (setsmanualThinkingBudgetEnabled
totrue
).Test Procedure
modelMaxThinkingTokens
should have manual control enabled.Type of Change
src
or test files.Pre-Submission Checklist
npm run lint
).console.log
) has been removed.npm test
).main
branch.npm run changeset
if this PR includes user-facing changes or dependency updates.Screenshots / Videos
Unchecked:



Checked:
Disabled on OpenRouter:
Documentation Updates
Additional Notes
Get in Touch
Discord:
ruakij