chore: bump default model to claude-sonnet-5 - #102
Merged
Conversation
Salil Das (sadlilas)
force-pushed
the
fix/default-model-sonnet-5
branch
from
August 24, 2026 17:30
d4e9280 to
9f0a288
Compare
Housekeeping, not a bug fix. The current default claude-sonnet-4-5 still works -- verified live across streaming, non-streaming, extended thinking, explicit temperature, 1M context, and prompt caching -- and it is not on the deprecation list in this module. Nothing is broken today. What this changes: the model used when a caller supplies no default_model. That literal was last updated on 2025-10-19 (167d4ad); it is now 11 months stale. Reachability was reproduced rather than inferred: non-interactive provider setup returns a config with no default_model key, so container, CI, and ephemeral test sessions land on this literal. Rationale: - A default is the promise made to callers who expressed no preference, and that promise has gone stale. - Models do get retired here (claude-sonnet-4-20250514 retired 2026-06-15). Moving a default on a quiet day costs one line; moving it under retirement pressure costs an outage. - One value, one line, trivially reversible. No new surface accrues consumers. Caveats for callers on the default: - temperature is no longer sent. Sonnet 5 does not accept it, so the provider correctly omits it -- a silent behavior change for anyone who relied on it. - Effective cost rises. Headline rates are identical ($3/$15 per MTok), but per _cost.py:62-68 the Sonnet 5 tokenizer maps the same text to ~1.0-1.35x more tokens. No output-quality claim is made. Sonnet 5 was verified current and working, not measured as better. README.md is updated in the same commit, matching the precedent set by 167d4ad, which changed the code default and the README together. The supported-model list is refreshed (claude-opus-5 is now the most capable model; verified live) and the temperature example is annotated. Test suite: 658 tests pass. Generated with [Amplifier](https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
Salil Das (sadlilas)
force-pushed
the
fix/default-model-sonnet-5
branch
from
August 25, 2026 22:58
9f0a288 to
1a5cc6d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Bump the model used when a caller supplies no
default_model, fromclaude-sonnet-4-5toclaude-sonnet-5.README.mdis updated in the same commit so the documented default matches the code.This is housekeeping, not a bug fix. Nothing is broken today — see Verification below.
What is not wrong
The current default works. Verified with live API calls across six configurations:
claude-sonnet-4-5(current)claude-sonnet-5(this PR)reasoning_effort: high)temperatureclaude-sonnet-4-5is also still live on the Models API and is not in this module's_DEPRECATED_MODELSlist. No user has reported a problem. This PR fixes no defect.What this changes, and who it reaches
Only callers that supply no
default_model. That literal was last updated on 2025-10-19 (167d4ad) and is now 11 months stale.Reachability was reproduced, not inferred. Running non-interactive provider setup returns:
No model is written, so container, CI, and ephemeral test sessions land on this literal. Interactive setup (which prompts for a model) and any pinned config are unaffected.
Why do it anyway
claude-sonnet-4-20250514retired 2026-06-15. Moving a default on a quiet day costs one line; moving it under retirement pressure costs an outage.Caveats for callers on the default
temperatureis no longer sent. Sonnet 5 does not accept it, so the provider correctly omits it. This is a silent behavior change for anyone who relied on it._cost.py:62-68the Sonnet 5 tokenizer maps the same text to ~1.0–1.35x more tokens.No output-quality claim is made. Sonnet 5 was verified current and working. It was not measured as better.
What Changed
amplifier_module_provider_anthropic/__init__.py:638— the default model literalREADME.md:32-33— supported-model list: default is nowclaude-sonnet-5;claude-opus-5replacesclaude-opus-4-6as most capable (both verified live)README.md:43,45,275— config examples; thetemperatureexample is annotated, since Sonnet 5 ignores ittests/test_error_translation.py:322,585— required, not cosmetic:_make_provider()in that file passes nodefault_model, so it inherits the module literalUpdating
README.mdalongside the code matches the precedent set by167d4ad, which changed both together.Scope Notes
Intentionally not modified:
README.md:222-248) — it documents Sonnet 4.5's 1M context support, which the live Models API confirms (max_input_tokens = 1000000). Its examples correctly pinclaude-sonnet-4-5.claude-sonnet-4-5-20250929references in capability/cost parsing tests — still-valid identifiers whose parsing those tests verify_cost.py:43rate entry forclaude-sonnet-4-5— still a valid modeltest_fallback.py:288/296— passes a model explicitly, so it does not rely on the defaultVerification
default_modelis genuinely absentclaude-sonnet-5confirmed live: created 2026-06-29, resolves toclaude-sonnet-5, effort tiers throughmaxclaude-opus-5andclaude-haiku-4-5(the other names in the refreshed README list) confirmed live and present in the cost tableGenerated with Amplifier