Skip to content

feat(anthropic_official): support Claude Haiku 5.5 - #249

Merged
hiyouga merged 2 commits into
devfrom
feat/claude-5-5-family
Oct 9, 2026
Merged

hiyouga merged 2 commits into
devfrom
feat/claude-5-5-family

Conversation

@hiyouga

@hiyouga hiyouga commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Support Claude Haiku 5.5 (claude-haiku-5-5, released 2026-10-07) and refresh the Claude 5.5 docs snapshot. Opus 5.5 and Sonnet 5.5 were already supported. Their official pages changed only in the lineup table and in Sonnet 5.5's cache-read price.

  • anthropic-official serves claude-haiku-5-5, matched by the explicit haiku-5-5 version substring. That also covers Bedrock's anthropic.claude-haiku-5-5.
    • thinking_level="none" → adaptive thinking at low effort, as on Opus 5.5 / Fable 5.1. The other levels send the effort of the same name.
    • tool_choice="required" or a tool-name list → UnsupportedParameterError, as on Opus 5.5 / Sonnet 5.5.
    • fast_mode → UnsupportedParameterError.
    • The _ALWAYS_THINKING tuple is renamed _LOW_EFFORT_FOR_NONE (TS LOW_EFFORT_FOR_NONE), because Haiku 5.5 is not always-thinking.
  • Registry
    • New claude-haiku-5-5 row: $0.10 / $0.50, cache reads $0.01, 1M context. This is the ≤100K-prompt tier; a comment notes that every rate is 5× above 100K, the same convention as MiniMax-M3 and gpt-6.1-sol.
    • New OpenRouter anthropic/claude-haiku-5.5 row, with prices from the live /models API.
    • Sonnet 5.5 cache reads drop $0.20 → $0.10 in both the official and OpenRouter rows, per the official pricing page and OpenRouter's API.
  • Tests: a claude-haiku-5-5 entry in AVAILABLE_MODELS, and rows in the existing thinking-level and summary mapping tables.
  • Docs
    • llmsdk_docs/claude5_5/ adds the Haiku 5.5 overview, migration guide and what's-new pages, plus the pricing page. The models overview, the Opus and Sonnet 5.5 pages and their migration guides are refreshed.
    • The site and skills list the new model.
  • Changelog: changelog/unreleased/2026-10-09-claude-haiku-5-5.md (+ .zh.md).

Live probes (claude-haiku-5-5, raw HTTP, 2026-10-09)

Request Result
no thinking config 200; adaptive thinking runs by default (it thinks at max even when no display is asked for)
thinking: disabled, effort default / low / high 200, no thinking
thinking: disabled, effort xhigh / max 400 "effort 'xhigh' is not supported when thinking is disabled on this model"
thinking: disabled + display 400 "Extra inputs are not permitted"
between_tools 400 "not supported for this model"
enabled + budget_tokens 400
adaptive, effort low … max 200
speed: "fast" (+ beta) 400 "does not support the speed parameter"
temperature: 1 / 0.5 200 / 400 "temperature is deprecated for this model" (the client already rejects ≠ 1 for all Claude)
tool_choice any / named tool 200, but the response has no thinking block
top-level cache_control 5m / 1h 200

Replay of a thinking-bearing assistant turn, both before tool results and in a later follow-up:

  • Missing signature → 400 "Field required".
  • Tampered signature → 400 "Invalid signature".
  • Empty or edited thinking text → 200, with the input token count unchanged, so the signature carries the thinking.
  • Dropping the thinking block → 200, but the thinking is lost.
  • Dropping the tool_use caller field → 200.

The existing replay (thinking text + signature) is therefore kept unchanged. Usage now also carries output_tokens_details.thinking_tokens; the client keeps reading output_tokens as before.

Decisions (confirmed with the owner)

  • NONE: Haiku 5.5 does accept disabled, but NONE maps to adaptive + low, consistent with Opus 5.5 / Fable 5.1. The alternatives were disabled and omitting the config (which leaves adaptive thinking at the default effort).
  • Forced tool_choice: the API accepts it but silently skips thinking. It is rejected for consistency with the rest of the 5.5 family.
  • Tiered pricing: the registry has a single price per bucket, so it stores the ≤100K tier and notes the 5× factor in a comment.

Test plan (vps4)

  • Python unit: 635 passed, 15 skipped. ruff check and ruff format --check are clean.
  • TS unit: 623 passed. eslint, tsc --noEmit, prettier and build are clean.
  • Python e2e -k claude-haiku-5-5: 12 passed, 3 skipped (image generation / TTS / embedding are off by capability flags).
  • TS e2e -t claude-haiku-5-5: 15 passed.

🤖 Generated with Claude Code

Copilot AI balanced review requested due to automatic review settings October 9, 2026 19:51
hiyouga added a commit that referenced this pull request Oct 9, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

hiyouga and others added 2 commits October 9, 2026 13:08
anthropic-official serves claude-haiku-5-5: thinking_level NONE sends adaptive
thinking at low effort, and forced tool_choice and fast_mode raise
UnsupportedParameterError. The registry lists claude-haiku-5-5 and OpenRouter's
anthropic/claude-haiku-5.5, cache reads on Sonnet 5.5 drop to $0.10, and the
e2e tests also run claude-haiku-5-5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hiyouga
hiyouga force-pushed the feat/claude-5-5-family branch from d23e399 to dcb12aa Compare October 9, 2026 20:09
@hiyouga
hiyouga merged commit 358d3c1 into dev Oct 9, 2026
3 of 4 checks passed
@hiyouga
hiyouga deleted the feat/claude-5-5-family branch October 9, 2026 20:14
hiyouga added a commit that referenced this pull request Oct 9, 2026
Folds `changelog/unreleased/` into `changelog/0.5.2/` (#247 MMSP server
and `mmsp` client, #248 `google-official`, #249 Claude Haiku 5.5, #250
playground fixes), adds the 0.5.2 line to `CHANGELOG.md` /
`CHANGELOG.zh.md`, and versions `mmsp` and `@prismshadow/mmsp` 0.5.2.

Verified on vps4: Python 649 passed, 15 skipped; TS 637 passed; build
clean.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@hiyouga hiyouga mentioned this pull request Oct 9, 2026
hiyouga added a commit that referenced this pull request Oct 9, 2026
dev → main for 0.5.2:
- An MMSP server and the `mmsp` client (#247).
- `google-official` as the official Gemini client's name (#248).
- Claude Haiku 5.5 (#249).
- Playground fixes (#250).
- The fold (#251).

The entries are in `changelog/0.5.2/`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants