You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tooling.apache.org by ak...@apache.org on 2026/07/13 16:01:19 UTC

(tooling-gofannon) branch main updated: bedrock-mythos: migrate to Claude Mythos 5 on us-east-1

This is an automated email from the ASF dual-hosted git repository.

andrewmusselman pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tooling-gofannon.git


The following commit(s) were added to refs/heads/main by this push:
     new e2826da  bedrock-mythos: migrate to Claude Mythos 5 on us-east-1
e2826da is described below

commit e2826da47da496882dbbde39e7f6c2b92ee68e69
Author: Andrew Musselman <ak...@apache.org>
AuthorDate: Mon Jul 13 09:00:58 2026 -0700

    bedrock-mythos: migrate to Claude Mythos 5 on us-east-1
    
    Mythos preview transitioned to a numbered GA release. Update the
    gofannon bedrock-mythos provider to the current endpoint and model:
    
      - Region: ap-southeast-4 → us-east-1
      - Model: anthropic.claude-mythos-preview → anthropic.claude-mythos-5
      - litellm prefix: bedrock_mantle → bedrock/mantle
    
    The last change is the important one: litellm has two Mantle providers
    with confusingly similar names:
    
      - bedrock_mantle/... (underscore) → BedrockMantleChatConfig →
        /v1/chat/completions (OpenAI Chat Completions shape). This is
        what we had, and it silently returned wrong-region-wrong-path
        errors that looked like entitlement failures.
      - bedrock/mantle/... (slash) → AmazonMantleMessagesConfig →
        /anthropic/v1/messages (Anthropic Messages shape). This is what
        Anthropic models on Mantle need.
    
    Verified end-to-end via litellm.acompletion in dev — model
    bedrock/mantle/anthropic.claude-mythos-5 returns real completions
    with correct usage metadata.
    
    Also fix docker-compose.override.yml AWS_REGION and correct two
    stale doc comments in llm_service.py that referenced the wrong URL
    path.
---
 .../packages/api/user-service/config/bedrock_mythos/__init__.py  | 2 +-
 webapp/packages/api/user-service/config/provider_config.py       | 9 +++++----
 webapp/packages/api/user-service/services/llm_service.py         | 6 ++----
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/webapp/packages/api/user-service/config/bedrock_mythos/__init__.py b/webapp/packages/api/user-service/config/bedrock_mythos/__init__.py
index 5d9cfb9..a8518db 100644
--- a/webapp/packages/api/user-service/config/bedrock_mythos/__init__.py
+++ b/webapp/packages/api/user-service/config/bedrock_mythos/__init__.py
@@ -9,7 +9,7 @@ models = {
     # may need updating. Worth verifying when Anthropic's setup email
     # confirms which thinking format Mythos expects.
     # =========================================================================
-    "anthropic.claude-mythos-preview": {
+    "anthropic.claude-mythos-5": {
         "returns_thoughts": True,
         "supports_effort": True,
         "supports_thinking": True,
diff --git a/webapp/packages/api/user-service/config/provider_config.py b/webapp/packages/api/user-service/config/provider_config.py
index 14b72be..16823d3 100644
--- a/webapp/packages/api/user-service/config/provider_config.py
+++ b/webapp/packages/api/user-service/config/provider_config.py
@@ -38,13 +38,14 @@ PROVIDER_CONFIG = {
     # Config knobs:
     #   aws_region              — region where Mythos is provisioned
     #   assume_role_arn         — cross-account devs role to assume
-    #   litellm_provider_prefix — built as "bedrock_mantle/<model-id>"
+    #   litellm_provider_prefix — built as "bedrock/mantle/<model-id>"
     #                             so litellm routes through its Mantle
-    #                             provider (OpenAI-compatible endpoint)
+    #                             provider (Anthropic Messages endpoint at
+    #                             /anthropic/v1/messages)
     "bedrock-mythos": {
-        "aws_region": "ap-southeast-4",
+        "aws_region": "us-east-1",
         "assume_role_arn": "arn:aws:iam::861792231409:role/bedrock-devs",
-        "litellm_provider_prefix": "bedrock_mantle",
+        "litellm_provider_prefix": "bedrock/mantle",
         "models": bedrock_mythos_models,
     },
     "openrouter": {
diff --git a/webapp/packages/api/user-service/services/llm_service.py b/webapp/packages/api/user-service/services/llm_service.py
index 3bfcd57..d66a7a1 100644
--- a/webapp/packages/api/user-service/services/llm_service.py
+++ b/webapp/packages/api/user-service/services/llm_service.py
@@ -290,8 +290,7 @@ async def call_llm(
     # bedrock-mythos: mint a short-lived Mantle bearer token at
     # request time, pass it to litellm as api_key. Also pass the
     # region — litellm uses it to construct the Mantle endpoint URL
-    # (bedrock-mantle.{region}.api.aws/v1); without it litellm
-    # defaults to us-east-1 which doesn't host Mythos.
+    # (bedrock-mantle.{region}.api.aws/anthropic/v1/messages).
     # The bearer token overrides any user-specific key above since
     # bedrock-mythos auth is account-scoped, not per-user. See
     # _get_bedrock_mythos_api_key().
@@ -725,8 +724,7 @@ async def stream_llm(
     # bedrock-mythos: mint a short-lived Mantle bearer token at
     # request time, pass it to litellm as api_key. Also pass the
     # region — litellm uses it to construct the Mantle endpoint URL
-    # (bedrock-mantle.{region}.api.aws/v1); without it litellm
-    # defaults to us-east-1 which doesn't host Mythos.
+    # (bedrock-mantle.{region}.api.aws/anthropic/v1/messages).
     # The bearer token overrides any user-specific key above since
     # bedrock-mythos auth is account-scoped, not per-user. See
     # _get_bedrock_mythos_api_key().


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@tooling.apache.org
For additional commands, e-mail: commits-help@tooling.apache.org