Whether a Claude model takes the ADAPTIVE thinking form — thinking: { type: 'adaptive' } plus
output_config: { effort } — rather than the manual budget form thinking: { type: 'enabled', budget_tokens }.
Adaptive thinking arrived with Claude 4.6. The Claude 5 family REJECTS the budget form outright:
observed on claude-sonnet-5, HTTP 400 "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.
Every request that carried an effort level failed before reaching the model, which turned an
evaluation cell into 80% infrastructure loss. Claude 4.5 and earlier (including
claude-haiku-4-5-20251001) only know the budget form, so the split has to be by version.
Version parsing: model ids put the numbers either after the family (claude-sonnet-4-6,
claude-fable-5-1, claude-haiku-4-5-20251001) or before it (claude-3-7-sonnet-20250219).
The first numeric token is the major version and the second, when present, the minor; a trailing
8-digit date is not a version. A name with no version number keeps the budget form, which is the
behaviour every existing caller already had.
Whether a Claude model takes the ADAPTIVE thinking form —
thinking: { type: 'adaptive' }plusoutput_config: { effort }— rather than the manual budget formthinking: { type: 'enabled', budget_tokens }.Adaptive thinking arrived with Claude 4.6. The Claude 5 family REJECTS the budget form outright: observed on
claude-sonnet-5, HTTP 400"thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.Every request that carried an effort level failed before reaching the model, which turned an evaluation cell into 80% infrastructure loss. Claude 4.5 and earlier (includingclaude-haiku-4-5-20251001) only know the budget form, so the split has to be by version.Version parsing: model ids put the numbers either after the family (
claude-sonnet-4-6,claude-fable-5-1,claude-haiku-4-5-20251001) or before it (claude-3-7-sonnet-20250219). The first numeric token is the major version and the second, when present, the minor; a trailing 8-digit date is not a version. A name with no version number keeps the budget form, which is the behaviour every existing caller already had.