Self-hosted deployments require v0.0.74 or later for reasoning support.
Configure reasoning
Three parameters control reasoning behavior:reasoning_effort: Intensity of reasoning. Compatible with OpenAI’s parameter. Supported values depend on the model. Most reasoning models acceptlow,medium, andhigh. Gemini 3 models in Google format also acceptminimal.reasoning_enabled: Boolean to explicitly enable or disable reasoning output. Has no effect on OpenAI models, which default to “medium”.reasoning_budget: Token budget for reasoning. Use eitherreasoning_effortorreasoning_budget, not both.
In the playground, Gemini 3 models in Google format expose only
reasoning_effort.Use in code
Braintrust provides type augmentation for reasoning parameters:- TypeScript:
@braintrust/proxy/typesextends OpenAI SDK types - Python:
braintrust-proxyprovides casting utilities and type-safe helpers
Basic usage
Reasoning structure
Reasoning steps include unique IDs and content:The
id field contains provider-specific signatures that must be preserved in multi-turn conversations. Always use exact IDs returned by the provider.Stream reasoning
Reasoning streams throughdelta.reasoning in streaming responses:
Multi-turn conversations
Include reasoning from previous turns to let models build on earlier thinking:Test in playgrounds
Use playgrounds to test reasoning models interactively:- Select a reasoning-capable model
- Set
reasoning_effortin parameters - Run evaluations
- View reasoning steps in trace view
Evaluate reasoning quality
Create scorers that evaluate both final outputs and reasoning steps:Next steps
- Run evaluations with reasoning models
- Write scorers to evaluate reasoning quality
- Use playgrounds to test reasoning interactively
- Compare experiments across reasoning efforts