Bedrock の Anthropic 互換エンドポイント(Mantle)で、LangChain から Opus 4.7 を呼んでみた

Bedrock の Anthropic 互換エンドポイント(Mantle)で、LangChain から Opus 4.7 を呼んでみた

Bedrock Mantle に Anthropic Messages API 互換のエンドポイントが追加されていました。素の Anthropic SDK や LangChain + 短期 Bedrock API キーで、Bedrock 経由の Claude Opus 4.7 を Anthropic API と同じ使用感で呼び出せることを確認しました。
2026.04.17

本日リリースされた Claude Opus 4.7 の AWS 公式ブログ で、AnthropicBedrockMantle というクライアントが紹介されていました。

from anthropic import AnthropicBedrockMantle
client = AnthropicBedrockMantle(aws_region=REGION)

Mantle のドキュメント には OpenAI 互換 API(Chat Completions / Responses)しか記載がありません。このクライアントはどこに接続しているのか、気になったので調べてみました。

デバッグログからエンドポイントを特定

AnthropicBedrockMantle でデバッグログを有効にして呼び出してみました。

pip install "anthropic[bedrock]"
import logging
logging.basicConfig(level=logging.DEBUG)

from anthropic import AnthropicBedrockMantle

client = AnthropicBedrockMantle(aws_region="ap-northeast-1")

response = client.messages.create(
    model="anthropic.claude-opus-4-7",
    max_tokens=256,
    messages=[{"role": "user", "content": "Hello!"}]
)

print(response.content[0].text)

問題なく動作し、ログに以下の行が出力されました。

DEBUG:anthropic._base_client:Sending HTTP Request: POST https://bedrock-mantle.ap-northeast-1.api.aws/anthropic/v1/messages
INFO:httpx:HTTP Request: POST https://bedrock-mantle.ap-northeast-1.api.aws/anthropic/v1/messages "HTTP/1.1 200 OK"

bedrock-mantle エンドポイントに /anthropic/v1/messages というパスが存在していました。これは Mantle のドキュメントに記載されている OpenAI 互換パス(/v1/chat/completions/v1/responses)とは別の、Anthropic Messages API 互換のエンドポイントです。

各パスの対応状況

Opus 4.7 で各パスを試した結果です。

API パス 形式 Opus 4.7
/v1/models OpenAI 互換 ✅ リスト表示される
/v1/chat/completions OpenAI 互換 ❌ 「このモデルは非対応」
/v1/responses OpenAI 互換 ❌ 「このモデルは非対応」
/anthropic/v1/messages Anthropic 互換 ✅ 正常にレスポンス

現時点では Opus 4.7 のみがこの Anthropic 互換パスに対応しており、Opus 4.6 や Sonnet 4.6 では利用できませんでした。

curl で直接叩いてみる

エンドポイントがわかったので、curl でも確認しました。SigV4 の署名サービス名は bedrock-mantle です。

curl -s -X POST \
  "https://bedrock-mantle.ap-northeast-1.api.aws/anthropic/v1/messages" \
  --aws-sigv4 "aws:amz:ap-northeast-1:bedrock-mantle" \
  --user "${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY}" \
  -H "x-amz-security-token: ${AWS_SESSION_TOKEN}" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "anthropic.claude-opus-4-7",
    "max_tokens": 64,
    "messages": [{"role": "user", "content": "Hello!"}]
  }'
{
  "model": "claude-opus-4-7",
  "content": [
    {
      "type": "text",
      "text": "Hello! How can I help you today?"
    }
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 24,
    "output_tokens": 15,
    "service_tier": "standard"
  }
}

anthropic-version ヘッダーが必要な点に注意してください。

素の Anthropic SDK + 短期 Bedrock API キーで呼び出し

ここからが本題です。エンドポイントが Anthropic Messages API 互換であるなら、素の Anthropic クライアントでも base_url を差し替えれば動くはずと、試してみました。

認証には 短期 Bedrock API キー を使いました。aws-bedrock-token-generator で発行でき、最大 12 時間有効です。IAM ユーザーの作成は不要で、現在の認証情報から生成できます。

pip install aws-bedrock-token-generator
from aws_bedrock_token_generator import provide_token
import anthropic

token = provide_token(region='ap-northeast-1')

client = anthropic.Anthropic(
    base_url="https://bedrock-mantle.ap-northeast-1.api.aws/anthropic",
    api_key=token
)

response = client.messages.create(
    model="anthropic.claude-opus-4-7",
    max_tokens=64,
    messages=[{"role": "user", "content": "Hello!"}]
)

print(response.content[0].text)
print(f"model: {response.model}")
print(f"usage: input={response.usage.input_tokens}, output={response.usage.output_tokens}")
Hello! How can I help you today?
model: claude-opus-4-7
usage: input=24, output=15

動きました。素の Anthropic SDK で、Bedrock 経由の Opus 4.7 を Anthropic API と同じ使用感で呼び出せました。ポイントは以下の 3 点です。

  • base_urlhttps://bedrock-mantle.{region}.api.aws/anthropic に設定
  • api_key に短期 Bedrock API キーを渡す
  • あとは通常の Anthropic API と同じコードがそのまま動く

Anthropic SDK 向けに書かれた既存のコードやツール群の資産を、Bedrock のセキュアな環境下で活用できる可能性があります。

LangChain でも動作確認

langchain-anthropicChatAnthropic でも、anthropic_api_url を差し替えるだけで動作しました。

pip install langchain-anthropic
from aws_bedrock_token_generator import provide_token
from langchain_anthropic import ChatAnthropic

token = provide_token(region='ap-northeast-1')

llm = ChatAnthropic(
    model="anthropic.claude-opus-4-7",
    anthropic_api_key=token,
    anthropic_api_url="https://bedrock-mantle.ap-northeast-1.api.aws/anthropic",
    max_tokens=64,
)

response = llm.invoke("Amazon Bedrockとは?1行で。")
print(response.content)
Amazon Bedrockとは、AWSが提供する、複数の基盤モデル(FM)をAPI経由で利用できるフルマネージド型の生成AIサービスです。

Anthropic SDK をベースとするエコシステムであれば、エンドポイントの差し替えだけで Bedrock 経由のモデルを利用できることが確認できました。

まとめ

Bedrock Mantle に Anthropic Messages API 互換のエンドポイント(/anthropic/v1/messages)が追加されていました。

Mantle はこれまで OpenAI 互換 API(Chat Completions / Responses)のみを提供していましたが、2026年2月に OpenAI と Amazon の戦略的パートナーシップ が発表されており、その流れで各ベンダーのネイティブ API を束ねる方向に拡張されたものと思われます。

現時点では以下の制約があります。

  • Opus 4.7 のみ対応(Opus 4.6 / Sonnet 4.6 は非対応)
  • 公式ドキュメントに /anthropic/v1/messages パスの記載はまだない

現時点での本番利用は時期尚早ですが、Bedrock 経由のモデルが Anthropic SDK を利用するワークロードからもシームレスに呼び出せるようになるのは非常に魅力的です。今後の展開に期待したいと思います。

参考リンク

この記事をシェアする

関連記事