Whether a Claude model rejects non-default sampling parameters (temperature, top_p, top_k) on EVERY
request, whether or not thinking is on.
This is a different cutoff from UsesAdaptiveThinking, and the two must not be conflated. Anthropic's
list of always-reject models is Claude Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Mythos Preview, Opus 5.5,
Opus 5, Opus 4.8, Opus 4.7, Sonnet 5.5, Sonnet 5 and Haiku 5.5. Claude Opus 4.6 and Sonnet 4.6 take adaptive
thinking but are NOT on that list: thinking is off there until requested, and while it is off they accept a
caller's temperature. Dropping it on 4.6 silently changes sampling with nothing in the response to show it.
Expressed as a version cutoff (4.7+, plus the unversioned Mythos Preview name) rather than an explicit id list
on purpose: a new Claude 5 model added to metadata is covered on day one. An id list would leave a new model
sending its temperature and taking a 400 on every request until someone extended the list, which is the exact
outage class this predicate exists to prevent. The cutoff is pinned per model in the unit tests, so a change
to the docs list shows up as a test to update rather than a production 400.
Whether a Claude model rejects non-default sampling parameters (
temperature,top_p,top_k) on EVERY request, whether or not thinking is on.This is a different cutoff from UsesAdaptiveThinking, and the two must not be conflated. Anthropic's list of always-reject models is Claude Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Mythos Preview, Opus 5.5, Opus 5, Opus 4.8, Opus 4.7, Sonnet 5.5, Sonnet 5 and Haiku 5.5. Claude Opus 4.6 and Sonnet 4.6 take adaptive thinking but are NOT on that list: thinking is off there until requested, and while it is off they accept a caller's temperature. Dropping it on 4.6 silently changes sampling with nothing in the response to show it.
Expressed as a version cutoff (4.7+, plus the unversioned Mythos Preview name) rather than an explicit id list on purpose: a new Claude 5 model added to metadata is covered on day one. An id list would leave a new model sending its temperature and taking a 400 on every request until someone extended the list, which is the exact outage class this predicate exists to prevent. The cutoff is pinned per model in the unit tests, so a change to the docs list shows up as a test to update rather than a production 400.
Docs: https://platform.claude.com/docs/en/build-with-claude/thinking#limits-and-feature-compatibility ("Sampling parameters")