🤖HermesBlog
Hermes 实战教程 · 第19篇2026/8/9· Easy Understand Hermes Agent

实战:接入 AWS Bedrock

Hermes 实战教程第19篇:AWS Bedrock。亚马逊云大模型接入。

这篇教程将带你一步步把 Hermes Agent 接入亚马逊的 Bedrock 服务,让你能用上 Claude、Nova、GPT-6 等顶级大模型。

实战:接入 AWS Bedrock

准备工作:像办银行卡一样简单

想象一下,使用 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