feat(bedrock): add OpenAI GPT-5.6 family (Sol/Terra/Luna) to Mantle Responses routing - #65076
feat(bedrock): add OpenAI GPT-5.6 family (Sol/Terra/Luna) to Mantle Responses routing#65076vinayshah1998 wants to merge 5 commits into
Conversation
0fa4fd6 to
87f7837
Compare
|
Thanks for extending the Mantle routing work to the GPT-5.6 family. The premise is still present on current main: Problems
Suggested changes
Automated hermes-sweeper review. |
|
Both review problems addressed in ab2a229ea + 57c7d3758: 1. Auxiliary region resolution now matches the main runtime. Added Regression tests cover the 2. Bedrock guide updated. Also folded in a small structural cleanup (57c7d3758): Bedrock-related suites pass locally: |
Route Bedrock-hosted OpenAI GPT-5.5 through the Bedrock Mantle OpenAI Responses endpoint with SigV4 request signing. Keep native Bedrock Converse and Claude Bedrock routing unchanged, and add picker/runtime regression coverage.
Preserve the Bedrock provider identity for MoA reference and aggregator slots so Bedrock OpenAI Responses models use the aws_sdk/SigV4 runtime instead of being downgraded to a generic custom endpoint. Add regression coverage for Bedrock GPT-5.5 MoA slots.
…esponses routing
GPT-5.6 Sol, Terra, and Luna went GA on Amazon Bedrock on 2026-07-13.
Like GPT-5.5, they are served exclusively from the Bedrock Mantle
OpenAI-compatible Responses endpoint (the model cards list
bedrock-runtime/Converse as unsupported), so they ride the allowlist
routing introduced for GPT-5.5:
- Add openai.gpt-5.6-{sol,terra,luna} to BEDROCK_OPENAI_RESPONSES_MODEL_IDS
so runtime resolution, auxiliary calls, and MoA slots all take the
SigV4/bearer Mantle Responses path.
- Surface the family in the curated Bedrock picker list.
- Record the 272K context window from the AWS model cards for all four
Mantle OpenAI models (previously fell back to the 128K default).
- Generalize picker tests from the hardcoded single-model checks to the
BEDROCK_OPENAI_RESPONSES_MODEL_IDS allowlist so future Mantle model
additions do not require test surgery; add routing, picker, and
context-length coverage for the 5.6 family.
Docs: https://docs.aws.amazon.com/bedrock/latest/userguide/model-cards-openai.html
…nt Mantle route Address review feedback on NousResearch#65076: - Add resolve_bedrock_runtime_region() to agent/bedrock_adapter.py: the config-first region resolution (bedrock.region in config.yaml, then AWS_REGION/AWS_DEFAULT_REGION/botocore profile/us-east-1) that the main runtime resolver uses, exposed as a shared helper. - Switch auxiliary client resolution (agent/auxiliary_client.py aws_sdk branch) to the new helper. Previously it derived its region with bare resolve_bedrock_region() (env-first), so when config.yaml pinned bedrock.region to a different region than the ambient AWS env, auxiliary calls (compression, memory, vision) left the primary runtime's region. Both the AnthropicBedrock/Converse path and the new Mantle OpenAI Responses path now resolve identically to the main runtime. - Add regression tests covering the bedrock.region-vs-AWS_REGION mismatch for both the Claude auxiliary path and the Mantle auxiliary path. - Update website/docs/guides/aws-bedrock.md: the guide claimed Hermes never uses the OpenAI-compatible endpoint, which the Mantle route made stale. Document the triple routing (AnthropicBedrock / Mantle OpenAI Responses / Converse), the Mantle auth model (bearer token or SigV4), and add the GPT-5.5/5.6 model IDs to the models table.
…ion chokepoint Follow-up structural pass on the review fix: - Runtime provider, auxiliary resolution, model validation (hermes_cli/models.py), live discovery (bedrock_model_ids_or_none), and the Mantle URL/SigV4 fallbacks all resolve their region through resolve_bedrock_runtime_region() — one canonical implementation of the config-first priority instead of three hand-rolled copies. - agent_init: drop the 'if "client_kwargs" in locals()' guard by initializing client_kwargs unconditionally at the top of the else branch; the Mantle kwargs hook is a documented no-op for non-Mantle base URLs.
57c7d37 to
3bce1be
Compare
|
Gentle ping @teknium1 - both review concerns are resolved in ab2a229ea + 57c7d3758 (auxiliary region resolution now shares resolve_bedrock_runtime with the main runtime, plus E2E coverage against a temp HERMES_HOME). Happy to rebase if anything has drifted on main since. Ready for re-review whenever convenient. |
SummaryTwo open PRs address Bedrock Mantle/OpenAI Responses routing: #53880 introduces GPT-5.5 routing, SigV4 authentication, picker exposure, auxiliary-client support, and MoA provider preservation, while #65076 incorporates that foundation, extends it to GPT-5.6 Sol/Terra/Luna, centralizes region resolution, adds context metadata and regression coverage, and updates the Bedrock guide. Related pull requests
Duplicates#53880 and #65076 implement the same core GPT-5.5 Mantle routing; #65076 is the broader successor and additionally carries the GPT-5.6 family and the documented review fixes. Suggested consolidationKeep #65076 open with a salvage path focused on the shared Mantle routing, centralized region handling, regression tests, and documentation; close #53880 as a duplicate of #65076 because its core implementation is incorporated there and its contributor-review concerns are addressed in the successor's visible diff. Complex graphflowchart LR
classDef open fill:#dbeafe,stroke:#1d4ed8,color:#1e3a8a
classDef merged fill:#dcfce7,stroke:#15803d,color:#14532d
classDef closed fill:#e5e7eb,stroke:#6b7280,color:#1f2937
classDef unverified fill:#f3f4f6,stroke:#9ca3af,color:#374151
classDef best stroke-width:3px,stroke:#b45309
classDef target stroke-width:3px,stroke:#4338ca
subgraph Dup53880 ["PRs duplicating each other"]
P53880["PR #53880 (open)"]
P65076["PR #65076 (open)"]
end
class P53880 open
class P65076 open
class P65076 target
click P53880 "https://github.com/NousResearch/hermes-agent/pull/53880"
click P65076 "https://github.com/NousResearch/hermes-agent/pull/65076"
Graph: solid arrow = fixes / best fix, dashed arrow = partial or unverified (see edge label); boxed group = PRs duplicating each other; amber border = best fix; indigo border = target; gray node = closed (state tag in the node label). Cross-PR triage: Reviewed 2 pull requests and 0 issues in this complex. Each diff was read against this issue; Assessment working set: 73 kB of PR diffs, 7 kB of issue/PR text, 5 kB of discussion (5 comments), 0 verify verdicts. verdicts reflect diff content, not PR titles. Part of an automated triage batch. |
|
@teknium1 Following up now that the Aug 3 cross-PR triage has run: it marked this PR as the consolidation target for the Mantle Responses routing work and recommends closing #53880 as a duplicate, noting the earlier review concerns (auxiliary region resolution, picker test brittleness, docs) are addressed in the current diff. Happy to rebase on latest main if anything has drifted. Ready for re-review whenever you have bandwidth. |
Summary
GPT-5.6 Sol, Terra, and Luna went GA on Amazon Bedrock on July 13, 2026. Like GPT-5.5, they are served exclusively from the Bedrock Mantle OpenAI-compatible Responses endpoint (
https://bedrock-mantle.<region>.api.aws/openai/v1) — the AWS model cards listbedrock-runtime/Converse as unsupported for all three.This PR builds directly on #53880 (natebransc's Mantle/Responses routing for GPT-5.5) and extends the allowlist to the 5.6 family. The first two commits here are #53880 unchanged (authorship preserved); the third commit is the 5.6 addition. If #53880 merges first, this rebases down to the one commit.
openai.gpt-5.6-sol,openai.gpt-5.6-terra,openai.gpt-5.6-lunatoBEDROCK_OPENAI_RESPONSES_MODEL_IDS, so runtime resolution, auxiliary calls, and MoA slots all take the SigV4/bearer Mantle Responses path automatically.BEDROCK_DEFAULT_CONTEXT_LENGTH).openai.gpt-5.5checks to iterateBEDROCK_OPENAI_RESPONSES_MODEL_IDS, so the next Mantle-only model addition is a one-line allowlist change with zero test surgery.Docs: OpenAI models on Bedrock / GPT-5.6 Sol model card
Why
Bedrock's control-plane discovery (ListFoundationModels/ListInferenceProfiles) does not enumerate Mantle-only models, and the Mantle route is not Converse-compatible, so without the allowlist entry the 5.6 models are neither selectable nor callable from the Bedrock provider. GPT-OSS models remain intentionally excluded — they are Converse-capable and stay on the native path.
Testing
scripts/run_tests.sh tests/agent/test_bedrock_integration.py tests/hermes_cli/test_bedrock_model_picker.py tests/run_agent/test_moa_loop_mode.py— 100 passed, 0 failedpython -m py_compileon all touched files;scripts/check-windows-footguns.py— clean (4 files);git diff --check— cleanopenai.gpt-5.6-terrareturnedbedrock-gpt56-okhermes chat -q ... --provider bedrock -m openai.gpt-5.6-terrareturnedhermes-gpt56-e2e-okopenai.gpt-5.6-solreturnedsol-okNotes
usage_pricing.pyguidance is to only add rows with a verifiable source. Can follow up when AWS publishes them.