Bedrock Converse: skip sampling params for Opus 4.7/4.8
NousResearch/hermes-agent · cluster 36151 · agent
Data as of
Nothing open on GitHub. Fix merged in #45675. Check it covers your case.
The short answer
0open issues
0open PRs
6items grouped
- Known?
- Yes. 6 related items grouped here, 1 issue already closed.
- Fix event
- A fix was merged to main in PR #45675. Check it covers your case. No release data is tracked.
- Tracker
- The maintainers' tracker marks this
resolved, deciding PR #45675. That is separate from the fix event. - Still open
- Nothing open on GitHub.
Multiple fixes and a bug report addressing that temperature and top_p must be omitted for Claude Opus 4.7 and 4.8 on the AWS Bedrock Converse API, which rejects those parameters with a 400 error.
Open issues0
Open PRs0
Fixes on record
-
#45675 fix(bedrock): omit sampling params for restricted Claude models
files:
agent/bedrock_adapter.py,tests/agent/test_bedrock_adapter.pyShow the diff
-
agent/bedrock_adapter.py@@ -935,11 +935,14 @@ def build_converse_kwargs( if system_prompt: kwargs["system"] = system_prompt - if temperature is not None: - kwargs["inferenceConfig"]["temperature"] = temperature + from agent.anthropic_adapter import _forbids_sampling_params - if top_p is not None: - kwargs["inferenceConfig"]["topP"] = top_p + if not _forbids_sampling_params(model): + if temperature is not None: + kwargs["inferenceConfig"]["temperature"] = temperature + + if top_p is not None: + kwargs["inferenceConfig"]["topP"] = top_p if stop_sequences: kwargs["inferenceConfig"]["stopSequences"] = stop_sequences -
tests/agent/test_bedrock_adapter.py@@ -605,6 +605,74 @@ def test_includes_temperature_and_top_p(self): assert kwargs["inferenceConfig"]["temperature"] == 0.7 assert kwargs["inferenceConfig"]["topP"] == 0.9 + def test_omits_sampling_params_for_bedrock_opus_4_7(self): + from agent.bedrock_adapter import build_converse_kwargs + + for model_id in ( + "anthropic.claude-opus-4-7-20260101-v1:0", + "us.anthropic.claude-opus-4-7", + ): + kwargs = build_converse_kwargs( + model=model_id, + messages=[{"role": "user", "content": "Hi"}], + temperature=0.7, + top_p=0.9, + ) + + assert "temperature" not in kwargs["inferenceConfig"] + assert "topP" not in kwargs["inferenceConfig"] + + def test_omits_sampling_params_for_bedrock_opus_4_8_variants(self): + from agent.bedrock_adapter import build_converse_kwargs + + for model_id in ( + "anthropic.claude-opus-4-8-20270101-v1:0", + "us.anthropic.claude-opus-4-8", + "anthropic.claude-opus-4.8", + ): + kwargs = build_converse_kwargs( + model=model_id, + messages=[{"role": "user", "content": "Hi"}], + temperature=0.5, + top_p=0.95, + ) + + assert "temperature" not in kwargs["inferenceConfig"] + assert "topP" not in kwargs["inferenceConfig"] + + def test_keeps_sampling_params_for_bedrock_non_restricted_models(self): + from agent.bedrock_adapter import build_converse_kwargs + + for model_id in ( + "anthropic.claude-sonnet-4-6-20250514-v1:0", + "anthropic.claude-haiku-4-5", + "test-model", + ): + kwargs = build_converse_kwargs( + model=model_id, + messages=[{"role": "user", "content": "Hi"}], + temperature=0.7, + top_p=0.9, + ) + + assert kwargs["inferenceConfig"].get("temperature") == 0.7 + assert kwargs["inferenceConfig"].get("topP") == 0.9 + + def test_bedrock_opus_strips_sampling_params_but_keeps_stop_sequences(self): + from agent.bedrock_adapter import build_converse_kwargs + + kwargs = build_converse_kwargs( + model="us.anthropic.claude-opus-4-8", + messages=[{"role": "user", "content": "Hi"}], + temperature=0.7, + top_p=0.9, + stop_sequences=["END"], + ) + + assert "temperature" not in kwargs["inferenceConfig"] + assert "topP" not in kwargs["inferenceConfig"] + assert kwargs["inferenceConfig"]["stopSequences"] == ["END"] + def test_includes_guardrail_config(self): from agent.bedrock_adapter import build_converse_kwargs guardrail = {
-
4 PRs closed without merging
From the close comments: done elsewhere 2 · merged via another change 2
-
#36175 fix(bedrock): guard temperature/top_p for Opus 4.7/4.8 on Converse · done elsewhere →
957a8ff,#45675 -
#36257 fix(bedrock): guard temperature/top_p for Opus 4.7/4.8 on Converse API (#36151) · merged via another change →
#45675,#38717 -
#37912 fix(bedrock): skip temperature/top_p for Opus 4.7+ on Converse API · done elsewhere →
957a8ff,#36151,#45675 -
#38717 fix(agent): skip temperature/topP for Opus 4.7/4.8 on Bedrock (#36151) · merged via another change →
957a8ff,#45675,#36257
Closed issues · 1
- Closed#36151bedrock_adapter: Opus 4.8 (and 4.7) on Bedrock Converse 400s with "temperature is deprecated" — _forbids_sampling_params guard never applied to Bedrock path
How this cluster was grouped
-
Link evidence (
structural links throughout): every member is connected by structural evidence: shared changed files, or a closing/superseded reference. -
Pairwise link density
0.33: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36.1.00means every pair is linked.
Pick up a Lab task
Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.
Open the LabAt a glance
- Subsystem
- agent
- Merged PRs
- #45675
- Closed issues
- 1
- Attempts
- 4 PRs closed without merging
- Fix link checked
- 13 Jun 2026