实战:接入 AWS Bedrock
Hermes 实战教程第19篇:AWS Bedrock。亚马逊云大模型接入。
这篇教程将带你一步步把 Hermes Agent 接入亚马逊的 Bedrock 服务,让你能用上 Claude、Nova、GPT-6 等顶级大模型。
准备工作:像办银行卡一样简单
想象一下,使用 Bedrock 就像去银行办业务——AWS 凭证就是你的身份证。好消息是,Hermes 支持多种“身份证”:
- 如果你在 AWS 的服务器(EC2、ECS、Lambda)上运行,什么都不用做,系统自动识别身份
- 本地开发可以用
aws configure命令配置,或者设置环境变量AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY
另外,需要安装 boto3 这个“翻译官”:
cd ~/.hermes/hermes-agent && python -c "import pm; pm.sync_venv(['bedrock'], explicit=True)"
依赖装好后,记得重新激活这个源码检出并重启 Hermes,改动才会生效。
第 1 步:选择 Bedrock 作为你的模型供应商
运行以下命令,就像打开一个“模型超市”:
hermes model
在菜单中选择 “More providers…” → “AWS Bedrock”,然后选择你所在的区域(比如 us-east-2)和心仪的模型。
第 2 步:确认配置
选好后,Hermes 会自动生成配置文件(~/.hermes/config.yaml),就像自动填好的表单:
model:
default: us.anthropic.claude-sonnet-4-6
provider: bedrock
base_url: https://bedrock-runtime.us-east-2.amazonaws.com
bedrock:
region: us-east-2
第 3 步:开始聊天
hermes chat
就这么简单!现在你可以和 Claude 对话了。
进阶技巧:让模型更聪明、更省钱
🔒 内容安全护栏(Guardrails):如果你想让模型不回答敏感话题,可以在配置里加上:
bedrock:
guardrail:
guardrail_identifier: "abc123def456" # 在 Bedrock 控制台获取
guardrail_version: "1"
有一点要特别注意:护栏只对走 Converse 或 Claude 路线的模型生效。裸的 openai.gpt-* ID(比如 openai.gpt-6-astra)走的是 Bedrock Mantle 的 Responses 端点,AWS 不会对它应用 Guardrails。如果你确实需要护栏,就改用走 Converse 的模型,比如带 us. 或 global. 前缀的 OpenAI 推理配置文件。
⚡ 提示词缓存:Hermes 会自动在系统提示词、工具定义和最新消息后插入缓存标记,重复内容不再重复计费,省钱又提速。无需额外配置!
🔄 会话中切换模型:聊到一半想换个模型?直接输入:
/model us.amazon.nova-pro-v1:0
/model deepseek.v3.2
常用模型 ID 速查
| 模型 | 模型 ID | 特点 |
|---|---|---|
| OpenAI GPT-6 Astra | openai.gpt-6-astra |
OpenAI 最强模型,1,050,000 token 窗口 |
| OpenAI GPT-6.1 Sol | openai.gpt-6.1-sol |
1M token 窗口,Mantle 区域内访问仅限 us-east-1 |
| OpenAI GPT-6 Sol | openai.gpt-6-sol |
适合编码与智能体任务,1,050,000 token 窗口 |
| OpenAI GPT-6 Luna | openai.gpt-6-luna |
面向高频聚焦任务,1,050,000 token 窗口 |
| OpenAI GPT-5.6 Sol | openai.gpt-5.6-sol |
1,050,000 token 窗口 |
| OpenAI GPT-5.6 Terra | openai.gpt-5.6-terra |
均衡型,1,050,000 token 窗口 |
| OpenAI GPT-5.6 Luna | openai.gpt-5.6-luna |
快速、经济,1,050,000 token 窗口 |
| OpenAI GPT-5.5 | openai.gpt-5.5 |
仅 Mantle,无推理配置文件 |
关于 OpenAI 模型的两种端点
Bedrock 上的 OpenAI 模型(GPT-6 Astra、GPT-6.1 Sol、GPT-6 Sol/Luna、GPT-5.6 Sol/Terra/Luna、GPT-5.5)有两种调用形式,别搞混了:
- 裸 ID(如
openai.gpt-6-astra):属于区域内调用,Hermes 会把它发到 Bedrock Mantle 的 Responses 端点(bedrock-mantle.<region>.api.aws/openai/v1)。Bedrock Mantle 提供的就是这种裸的区域内 ID,注意bedrock-runtime不接受它。 - 带前缀的推理配置文件 ID(如
us.openai.*、global.openai.*):跨区域推理配置文件只存在于bedrock-runtime上,Hermes 会通过 Converse API 发送,和其他推理配置文件走同一条路。
另外,GPT-6.1 Sol 的 Mantle 区域内访问目前只在 us-east-1 提供;GPT-5.5 则是 Mantle 专属,没有推理配置文件。
常见问题排查
“No API key found”:检查凭证是否配置正确,运行 aws configure 或给服务器挂上 IAM 角色。
“on-demand throughput isn’t supported”:记得使用带 us. 或 global. 前缀的推理配置文件 ID,而不是裸的模型 ID。比如用 us.anthropic.claude-sonnet-4-6 而不是 anthropic.claude-sonnet-4-6。
“ThrottlingException”:请求太频繁触发了限流。Hermes 会自动重试,也可以去 AWS 控制台申请提高配额。
用了应用推理配置文件(ARN)却提示上下文窗口不对:如果你把 model.default 设成类似 arn:aws:bedrock:...:application-inference-profile/... 这种 ARN,Hermes 会去调 bedrock:GetInferenceProfile,按这个配置文件背后真正包装的模型来算上下文窗口(比如包的是 Claude Sonnet 4.6 就是 1M)。没有这个权限的话会退回 128,000 的默认值并给出警告,你也可以直接手动设置 model.context_length 覆盖。
模型上下文窗口显示成 128,000 还带个 WARNING:说明这个模型既不在 Hermes 的静态表里,探测也没拿到结果,于是用了 128,000 的兜底值。日志里的 WARNING 会点名是哪个模型,去 config.yaml 里把 model.context_length 设成它真实的窗口大小就行。
总结
接入 Bedrock 只需三步:安装依赖 → 选择供应商 → 开始聊天。AWS 凭证是唯一的门槛,其余交给 Hermes 自动处理。Bedrock 的优势在于生态完整:IAM 安全认证、跨区域容灾、护栏机制,以及丰富的模型选择——从 Anthropic 的 Claude 到 Meta 的 Llama,再到亚马逊自家的 Nova 和 OpenAI 的 GPT-6 系列,总有一款适合你。
下篇预告:接入只是开始,下一篇我们将深入实战——用 Hermes Agent 构建一个自动处理邮件的智能助手,看看这个框架如何帮我们解放双手!
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › guides/aws-bedrock