You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Enhancement]: Support Claude Haiku 5.x thinking config (adaptive / disabled) #16911
Support Claude Haiku 5.x on the Bedrock endpoint with the thinking configuration that Haiku 5 requires. Today, selecting a Haiku 5 model with thinking enabled fails, and turning thinking off doesn't work either.
Specifically:
When thinking is enabled, LibreChat sends thinking: { type: "enabled", budget_tokens } for Haiku 5 models. Bedrock rejects this with "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.
When thinking is disabled, LibreChat omits the thinking field. Haiku 5 then thinks by default, with the thinking text returned empty.
Haiku 4.5 and earlier are unaffected and should keep the current behaviour.
More details
Haiku 5 is not covered by the model-name checks in packages/data-provider/src/bedrock.ts:
supportsAdaptiveThinking() covers Opus 4.6+, Sonnet 4.6+ and Mythos/Fable only. Haiku 5 falls through to the legacy enabled shape.
requiresExplicitThinkingDisabled() covers Sonnet 5+ and Opus 5+ only. Haiku 5 is left with the field omitted.
Direct Bedrock InvokeModel results, region eu-west-1, model eu.anthropic.claude-haiku-5-5:
thinking: {"type": "enabled", "budget_tokens": 1024}: rejected with ValidationException, "thinking.type.enabled" is not supported for this model.
thinking: {"type": "adaptive"} with output_config.effort: "low": succeeds. thinking_tokens: 0, which is expected for a one-sentence prompt at low effort.
Field omitted: succeeds. thinking_tokens: 107, with a thinking block whose text is empty and only a signature returned.
thinking: {"type": "disabled"}: succeeds. thinking_tokens: 0, no thinking block.
Proposed change:
Treat Haiku 5+ as an adaptive-thinking model in supportsAdaptiveThinking(), so thinking: true sends {type: "adaptive"} with output_config.effort.
Add Haiku 5+ to requiresExplicitThinkingDisabled(), so thinking: false sends {type: "disabled"}.
Add spec cases for Haiku 5 (e.g. claude-haiku-5-5, eu.anthropic.claude-haiku-5-5) and confirm Haiku 4.5 still returns false.
Same failure on the direct Anthropic endpoint (not just Bedrock), v0.8.8 (ghcr.io/librechat-ai/librechat:v0.8.8), model claude-haiku-5-5 from the live Anthropic model list.
With Thinking on, the request fails with 400 "thinking.type.enabled" is not supported for this model. configureReasoning() in packages/api/src/endpoints/anthropic only sends { type: "adaptive" } when supportsAdaptiveThinking(model) is true. That helper (Opus 4.6+, Sonnet 4.6+, Fable/Mythos) has no Haiku case, so Haiku 5.x falls through to the legacy /claude-(?:sonnet|opus|haiku)-[4-9]/ branch and gets type: "enabled". Turning Thinking off works around it.
So the proposed change to supportsAdaptiveThinking() / requiresExplicitThinkingDisabled() would fix both endpoints, since they share those helpers.
Just for completeness:
Context window also needs to be corrected. Right now, when using Haiku 5.5 via bedrock, LibreChat assumes 90K.
But Haiku 5.5 supports up to 1M.
So this could be implemented together with above fix as well, if possible.
changed the title [-][Enhancement]: Support Claude Haiku 5.x thinking config on Bedrock (adaptive / disabled)[/-][+][Enhancement]: Support Claude Haiku 5.x thinking config (adaptive / disabled)[/+]on Oct 12, 2026
PR #17062 fixes this, along with the context window from the comment above. It also fixes a second Haiku 5.5 failure on the direct Anthropic and custom provider: anthropic endpoints: Invalid signature in thinking block ... bound to a different conversation on follow-up turns, because Haiku 5.5 never got block_binding: drop_block. It's running in production on Foundry.
Activity
ivanbarboza commentedon Oct 10, 2026
Same failure on the direct Anthropic endpoint (not just Bedrock), v0.8.8 (
ghcr.io/librechat-ai/librechat:v0.8.8), modelclaude-haiku-5-5from the live Anthropic model list.With Thinking on, the request fails with 400
"thinking.type.enabled" is not supported for this model.configureReasoning()inpackages/api/src/endpoints/anthropiconly sends{ type: "adaptive" }whensupportsAdaptiveThinking(model)is true. That helper (Opus 4.6+, Sonnet 4.6+, Fable/Mythos) has no Haiku case, so Haiku 5.x falls through to the legacy/claude-(?:sonnet|opus|haiku)-[4-9]/branch and getstype: "enabled". Turning Thinking off works around it.So the proposed change to
supportsAdaptiveThinking()/requiresExplicitThinkingDisabled()would fix both endpoints, since they share those helpers.toarni commentedon Oct 12, 2026
Just for completeness:
Context window also needs to be corrected. Right now, when using Haiku 5.5 via bedrock, LibreChat assumes 90K.
But Haiku 5.5 supports up to 1M.
So this could be implemented together with above fix as well, if possible.
[-][Enhancement]: Support Claude Haiku 5.x thinking config on Bedrock (adaptive / disabled)[/-][+][Enhancement]: Support Claude Haiku 5.x thinking config (adaptive / disabled)[/+]mforman commentedon Oct 13, 2026
PR #17062 fixes this, along with the context window from the comment above. It also fixes a second Haiku 5.5 failure on the direct Anthropic and custom
provider: anthropicendpoints:Invalid signature in thinking block ... bound to a different conversationon follow-up turns, because Haiku 5.5 never gotblock_binding: drop_block. It's running in production on Foundry.🎐 feat: Add Claude Haiku 5.5 Support (#17201)