AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY
像主证件和签名章,缺一半都不够。
Providers 导读
OpenClaw 通过 Bedrock Converse 流式 API 调用模型,认证走 AWS SDK 默认凭证链(环境变量、共享配置或实例角色),不需要 apiKey。配置时 provider 填 `amazon-bedrock`,auth 设为 `aws-sdk`,并确保网关主机上有有效的 AWS 凭证。最容易踩的坑是:自动发现只在检测到 `AWS_ACCESS_KEY_ID` 等显式标记时才启用,纯 IMDS 或 SSO 场景需要手动设置 `discovery.enabled: true`。
先讲这一页到底在解决什么
OpenClaw 通过 Bedrock Converse 流式 API 调用模型,认证走 AWS SDK 默认凭证链(环境变量、共享配置或实例角色),不需要 apiKey。配置时 provider 填 `amazon-bedrock`,auth 设为 `aws-sdk`,并确保网关主机上有有效的 AWS 凭证。最容易踩的坑是:自动发现只在检测到 `AWS_ACCESS_KEY_ID` 等显式标记时才启用,纯 IMDS 或 SSO 场景需要手动设置 `discovery.enabled: true`。
第一步
官方开头就把这件事讲死了。别去找“Bedrock 专属 key”当主路。
像你把 AWS 通行证直接挂在值班室墙上,OpenClaw 一眼就能看到。
像把通行证收进 AWS 自家的档案柜里,再告诉系统去哪个抽屉拿。
像你这台 EC2 机器自己就带工作证,不用额外掏小纸条。
Bedrock 不是“塞 key”,而是“证明你有 AWS 港口通行权”。
第二步
这页里最有意思的不是手写模型,而是自动发现。
models.bedrockDiscovery.enabled像告诉管理员:“你开工时先去码头公告牌看一眼,今天能接哪些船。”
providerFilter像说“我只想看 Anthropic 或 Amazon 这几家的船,不要把整片港口全搬给我看”。
refreshInterval像公告牌多久去重抄一次。默认一小时,不是每秒都去看。
defaultContextWindow / defaultMaxTokens像管理员还没拿到精确船只参数时,先用一个保守估值写在临时表上。
第三步
这几行不是在炫命令,而是在做一件很朴素的事:让真正跑 Gateway 的机器拿到 AWS 身份。
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY像主证件和签名章,缺一半都不够。
AWS_REGION像告诉码头管理员“你今天去哪个港区接船”。
AWS_PROFILE像告诉系统去 AWS 档案柜里拿哪一份现成身份资料。
这整段就是在给 Gateway 主机准备 AWS 通行证。
第四步
如果你不想全靠自动发现,就自己写一个明确模型入口。
amazon-bedrock/us.anthropic.claude-opus-4-6-v1:0 这种长名字,像在写“港口 / 提供方 / 具体船号”。不是故意写长,而是在把路线写完整。
第五步
这部分很多人看着头大,其实就一句话:EC2 机器自己能带身份,但 OpenClaw 还需要一点提示,才知道去用这条路。
AWS_PROFILE=default像你虽然已经穿着工服,但门口扫描器还需要你举一下员工牌,才知道“哦,这位是有身份的”。
像码头工作人员至少得有“叫船进港、流式收货、看公告牌”的几项权力,不然啥也干不了。
aws iam ... 命令像在给 EC2 配正式工作证、挂权限、再把这张证绑到这台机器身上。
最后总结
Bedrock 不是普通 API key 路线,而是 AWS 身份路线。先把通行证给对,再决定是让系统自己去码头发现能用的船,还是你手写指定要接哪一条。