Amazon Bedrock 模型调用指南:Mantle、InvokeModel、Converse 三条路径详解
本文介绍 Amazon Bedrock 的三条模型调用路径:bedrock-mantle(Anthropic Messages API + OpenAI 兼容接口)和 bedrock-runtime(InvokeModel / Converse),帮你根据场景选择最合适的接入方式。
更新于 2026-04-21:补充 Bedrock Mantle 对 Claude/Anthropic Messages API 的支持、InvokeModel vs Converse 对比、IAM/CRIS 差异、安全模型等内容。
更新于 2026-06-12:补充 OpenAI GPT-5.5/5.4 (Responses API)、Claude Fable 5 (Data Retention)、bedrock-mantle Claude 支持现状、mantle 独立 data_retention 设置。
背景
Bedrock 目前提供两个推理 endpoint,底层都跑在同一代全新推理引擎(Mantle)上,性能与延迟等价,差别在入口、API 格式与可用功能。
Endpoint 对比:bedrock-runtime vs bedrock-mantle
| bedrock-runtime | bedrock-mantle | |
|---|---|---|
| Endpoint | bedrock-runtime.{region}.amazonaws.com | bedrock-mantle.{region}.api.aws |
| 支持 API | InvokeModel / Converse / Messages(皆可用) | Anthropic Messages ✅;OpenAI Chat Completions ✅;OpenAI Responses ✅ |
| 适用模型 | 所有 Bedrock 模型(Claude、第三方、自定义) | Claude(Messages API)+ OpenAI/DeepSeek/Qwen/GLM 等(Chat Completions / Responses API) |
| CRIS | Geo CRIS (US/EU/JP) + Global CRIS + GovCloud | 仅 in-region (US/EU/JP),无 Global CRIS |
| Cross-Inference | ✅ 支持(model ID 需加区域前缀如 us.) | ❌ 不支持(model ID 不加前缀) |
| IAM Action | bedrock:InvokeModel(现有策略可直接用) | bedrock-mantle:CreateInference(需新加策略) |
| CloudWatch / Service Quotas | Day-1 可见 | 已上线;RPM 配额已移除,改为 token-based 智能调度 |
| Projects | — | ✅ 已上线;支持 Project 级别 data_retention 隔离 |
| Quota | 按 account × CRIS type × endpoint 计算 | — |
| 迁移成本 | 现有客户只更新 model ID 即可,最低 | 面向 OpenAI SDK / Anthropic SDK 迁移客户 |
🔒 安全模型:两个 endpoint 均基于 AWS Nitro,支持 Zero Operator Access (ZOA) + ZDR — 无任何 AWS/Anthropic operator 可访问 prompts/completions;推理软件更新需签名校验。
三条调用路径详解
路径一:Anthropic Messages API(bedrock-mantle)
使用 Anthropic 官方 SDK 直接调用 Claude,endpoint 为 bedrock-mantle.{region}.api.aws。
# 安装 SDK
pip install anthropic[bedrock]
from anthropic import AnthropicBedrockMantle
client = AnthropicBedrockMantle(aws_region="us-east-1")
message = client.messages.create(
model="anthropic.claude-opus-4-7",
max_tokens=16000,
thinking={"type": "adaptive"},
extra_body={
"output_config": {"effort": "medium"},
"anthropic_beta": ["task-budgets-2026-03-13"],
},
messages=[{"role": "user", "content": "..."}],
)
print(message.content[0].text)
关键点:
- Mantle endpoint 不支持 Cross-Inference,model ID 不需要加区域前缀
- 需要新增 IAM 策略:
bedrock-mantle:CreateInference(见下方 IAM 配置) - SDK 支持 Python / TS / Go / Java / C# / PHP / Ruby
- Endpoint:
https://bedrock-mantle.{region}.api.aws/anthropic/v1/messages
路径二:InvokeModel(bedrock-runtime)
使用 boto3 的 invoke_model,body 为 Anthropic 原生 JSON 格式。支持 adaptive thinking / vision / tool use / compaction。
import boto3, json
client = boto3.client('bedrock-runtime')
body = {
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 16000,
"thinking": {"type": "adaptive"},
"output_config": {"effort": "high"},
"messages": [{"role": "user", "content": "..."}],
}
resp = client.invoke_model(
modelId="us.anthropic.claude-opus-4-7",
body=json.dumps(body),
)
路径三:Converse(bedrock-runtime)
多模型统一接口,最简洁的集成路径,方便在不同模型/厂商间切换。支持 adaptive thinking 与 tool use;Compaction 在 beta 期不支持。
import boto3
client = boto3.client('bedrock-runtime')
resp = client.converse(
modelId="us.anthropic.claude-opus-4-7",
messages=[{
"role": "user",
"content": [{"text": "..."}],
}],
inferenceConfig={
"maxTokens": 16000,
},
additionalModelRequestFields={
"thinking": {"type": "adaptive"},
"output_config": {"effort": "high"},
},
)
三条路径对比速查
| Mantle — Anthropic Messages | Runtime — InvokeModel | Runtime — Converse | |
|---|---|---|---|
| SDK | Anthropic SDK | boto3 | boto3 |
| Body 格式 | Anthropic 原生 | Anthropic 原生 JSON | 统一格式 |
| 多模型切换 | 仅 Claude | 需适配不同 body | ✅ 统一接口 |
| Adaptive Thinking | ✅ | ✅ | ✅ |
| Tool Use | ✅ (server-side) | ✅ | ✅ |
| Compaction | ✅ | ✅ | ❌ beta 期不支持 |
| Vision | ✅ | ✅ | ✅ |
| Cross-Inference | ❌ | ✅ | ✅ |
| 认证方式 | SigV4 / API Key | SigV4 | SigV4 |
IAM 策略配置
bedrock-runtime(InvokeModel / Converse)使用现有 bedrock:InvokeModel 权限,已有策略无需修改。
bedrock-mantle 需要新增策略:
{
"Effect": "Allow",
"Action": "bedrock-mantle:CreateInference",
"Resource": "arn:aws:bedrock-mantle:*:*:project/*",
"Condition": { ... }
}
OpenAI GPT-5.5 / GPT-5.4(bedrock-mantle only)
GPT-5.5 和 GPT-5.4 于 2026 年 6 月 1 日在 Bedrock GA,仅通过 bedrock-mantle 端点提供,使用 OpenAI Responses API 格式。不支持 bedrock-runtime (Converse/InvokeModel)。
| GPT-5.5 | GPT-5.4 | |
|---|---|---|
| Model ID | openai.gpt-5.5 | openai.gpt-5.4 |
| Context | ~1M tokens | ~1M tokens |
| Max Output | 128K | 128K |
| 定价 (Input/Output) | $5 / $30 per 1M | $2.50 / $15 per 1M |
| 区域 | us-east-1, us-east-2 | us-east-1, us-east-2, us-west-2 |
| Vision | ✅ (base64 / s3:// only) | ✅ |
| API | Responses API | Responses API |
from openai import OpenAI
import os
client = OpenAI(
base_url="https://bedrock-mantle.us-east-2.api.aws/openai/v1",
api_key=os.environ["BEDROCK_API_KEY"],
)
response = client.responses.create(
model="openai.gpt-5.5",
input=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is Amazon Bedrock?"},
],
reasoning={"effort": "medium"},
text={"verbosity": "low"},
)
print(response.output_text)
注意:GPT-5.5/5.4 不在 list-foundation-models 里,只能通过 /v1/models 端点查询;SigV4 签名的 service name 为 bedrock-mantle。
Claude Fable 5(Data Retention 要求)
Claude Fable 5 于 2026-06-09 发布,是 Anthropic 的 Mythos 级模型。需要开启 provider_data_share 数据保留模式才能调用(数据保留 30 天,Anthropic 可人工审查)。
| 属性 | 值 |
|---|---|
| Model ID (runtime) | global.anthropic.claude-fable-5 |
| Model ID (mantle) | anthropic.claude-fable-5 |
| Context | 1M tokens |
| Max Output | 128K |
| 定价 (Input/Output) | $10 / $50 per 1M |
| Reasoning | Always on (adaptive, effort 可调) |
| Sampling 限制 | temperature 必须 1.0;top_p ≥ 0.99;不支持 top_k |
Data Retention 配置(Project 级别隔离):
# 1. 创建专用 Project
curl -X POST \
--aws-sigv4 "aws:amz:us-east-1:bedrock-mantle" \
--user "$AK:$SK" \
-H "Content-Type: application/json" \
-d '{"name": "fable5-only"}' \
"https://bedrock-mantle.us-east-1.api.aws/v1/organization/projects"
# 2. 设置 Project 级别 data_retention(仅传此字段)
curl -X POST \
--aws-sigv4 "aws:amz:us-east-1:bedrock-mantle" \
--user "$AK:$SK" \
-H "Content-Type: application/json" \
-d '{"data_retention": {"mode": "provider_data_share"}}' \
"https://bedrock-mantle.us-east-1.api.aws/v1/organization/projects/{project_id}"
# 3. 调用时带 workspace header
curl --aws-sigv4 "aws:amz:us-east-1:bedrock-mantle" \
--user "$AK:$SK" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-workspace-id: {project_id}" \
-d '{"model":"anthropic.claude-fable-5","max_tokens":4096,"messages":[...]}' \
"https://bedrock-mantle.us-east-1.api.aws/anthropic/v1/messages"
关键点:
- 账户级别保持
default,只在 Project 里开provider_data_share— 其他模型不受影响 - bedrock-runtime 需要账户级别开启
provider_data_share才能用(无 Project 隔离) - bedrock-mantle 和 bedrock-runtime 的 data_retention 独立管理,需分别设置
- 有害 prompt 会被路由到 Opus 4.8(按 Opus 价格计费,数据不共享)
bedrock-mantle Data Retention 管理
注意:bedrock-mantle 有独立于 bedrock-runtime 的 data_retention 设置。
# 查看 mantle 账户级别
curl --aws-sigv4 "aws:amz:{region}:bedrock-mantle" --user "$AK:$SK" \
"https://bedrock-mantle.{region}.api.aws/v1/data_retention"
# 设置 mantle 账户级别
curl -X PUT --aws-sigv4 "aws:amz:{region}:bedrock-mantle" --user "$AK:$SK" \
-H "Content-Type: application/json" -d '{"mode": "default"}' \
"https://bedrock-mantle.{region}.api.aws/v1/data_retention"
# 查看 runtime 账户级别
curl --aws-sigv4 "aws:amz:{region}:bedrock" --user "$AK:$SK" \
"https://bedrock.{region}.amazonaws.com/data-retention"
实操注意事项
- Inference Profile URL 编码:通过 HTTP 直接调用 bedrock-runtime 时,用户自定义 inference profile 的 ARN 中
/需编码为%2F,否则返回UnknownOperationException - bedrock-mantle SigV4 service name:签名时必须用
bedrock-mantle,不是bedrock - Anthropic Messages API 必须带 header:
anthropic-version: 2023-06-01 - GPT-5.5/5.4 图片输入:只支持
data:image/...;base64,...和s3://,不支持外部 HTTP URL - Fable 5 sampling 限制:temperature 必须 1.0 或不设;top_p ≥ 0.99;不支持 top_k