Problem
Claude Fable 5 (released 2026-06-09) uses a new thinking API contract that OpenClaw's current Anthropic messages adapter does not support.
Fable 5 requires thinking.type = "adaptive" with output_config.effort to control thinking behavior. It rejects both thinking.type = "enabled" (extended thinking) and thinking.type = "disabled" which are the only two modes the current adapter sends.
Error messages from API
- With thinking=low:
"thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.
- With thinking=off:
"thinking.type.disabled" is not supported for this model. Thinking defaults to adaptive mode when not specified.
What needs to change
The Anthropic messages adapter needs to support a third thinking mode: thinking.type = "adaptive" + output_config.effort for models that only support adaptive thinking.
The model entry config may also need a field to declare the thinking type a model supports (adaptive-only vs enabled/disabled).
Workaround
None currently. The model resolves correctly but all requests fail at the API level due to the thinking parameter mismatch.
Problem
Claude Fable 5 (released 2026-06-09) uses a new thinking API contract that OpenClaw's current Anthropic messages adapter does not support.
Fable 5 requires
thinking.type = "adaptive"withoutput_config.effortto control thinking behavior. It rejects boththinking.type = "enabled"(extended thinking) andthinking.type = "disabled"which are the only two modes the current adapter sends.Error messages from API
"thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior."thinking.type.disabled" is not supported for this model. Thinking defaults to adaptive mode when not specified.What needs to change
The Anthropic messages adapter needs to support a third thinking mode:
thinking.type = "adaptive"+output_config.effortfor models that only support adaptive thinking.The model entry config may also need a field to declare the thinking type a model supports (adaptive-only vs enabled/disabled).
Workaround
None currently. The model resolves correctly but all requests fail at the API level due to the thinking parameter mismatch.