news 2026/9/18 10:59:21

OpenClaw 走 TaoToken:照着 amazon-bedrock 的 provider 配置写

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OpenClaw 走 TaoToken:照着 amazon-bedrock 的 provider 配置写

OpenClaw 里想用 amazon-bedrock,得手写 openclaw.json 的 providers,还得在本机长期留一份 AWS 密钥。这条思路可以换:用 TaoToken 的统一接入,先去 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 创建一把 API Key,然后照着 amazon-bedrock 的 provider 格式,在同一个 providers 列表里补一个 TaoToken 条目,baseUrl 填 https://taotoken.net/api,模型 id 用模型广场上当前可用的那个。最后把 agents.defaults.model.primary 指过去,执行一次 openclaw gateway restart,模型请求就能从这条兼容通道走。

之所以盯着 amazon-bedrock 那份配置改,是因为它把 OpenClaw 里「一个 provider 到底该怎么写」示范得很完整:baseUrl、auth、api、models 四件套,一个不少。把这四个字段吃透,换成别的统一 API 通道,手感其实是同一套。下面按原文的四步顺序走一遍,每一步都对应地说明改哪儿、为什么改。

1. openclaw.json 的 providers 里为什么没有 amazon-bedrock

1.1 默认 provider 列表覆盖不到 AWS 这一路

OpenClaw 出厂自带的 provider 大多冲着标准的 OpenAI 风格接口去,而 amazon-bedrock 走的是 AWS SDK 加 Converse 流式接口,认证方式也不是一个 Authorization 头能解决的,所以在选模型的界面里翻不到它,属于正常现象。打开 ~/.openclaw/openclaw.json,会看到 providers 是一个数组,里面每个元素代表一家模型服务的接入方式,这就是官方留出来的扩展位。

换句话说,缺的不是功能,缺的是一段没人替你写好的配置。

1.2 原文的手工路径:.env 加 providers 两条腿

原始那篇的做法是把这件事拆成四步。第一步在 ~/.openclaw/ 下新建一个 .env,写入 AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_REGION 三个键,键名区分大小写,作用是让 openclaw gateway 在初始化阶段读到这组访问令牌。第二步回到 openclaw.json,在 providers 列表里追加一个 amazon-bedrock 对象,baseUrl 指向 bedrock-runtime 的区域端点,auth 写 aws-sdk,api 写 bedrock-converse-stream,models 数组里逐个列出要用的模型。第三步把 agents.defaults.model.primary 写成「provider 名/模型 id」。第四步重启网关。

四步拆开看,真正跟 AWS 绑死的只有第一步、第二步里的 baseUrl,以及 auth、api 那两个取值。模型 id 本来就该按实际开通情况来填,跟通道本身没有强绑定关系。

1.3 换成 TaoToken 之后,要动的其实只有两处

想清楚这一点,替换就变得很简单。令牌那一层,不再往 .env 里塞 AWS 三件套,改成放一把 Key;provider 那一层,baseUrl 换成 https://taotoken.net/api ,auth 和 api 换成你本地 OpenClaw 版本里对应「OpenAI 兼容通道」的那两个取值。agents 段和重启动作,基本照抄原文就行。

2. .env 里那三行 AWS 令牌,换成一个 Key

2.1 先去把 Key 创建出来

浏览器打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end ,注册登录后进控制台,在 API Keys 页面新建一把 Key。复制出来的那串就是后面要写进配置的东西,本文统一用 YOUR_API_KEY 代替,别把真 Key 贴到会公开的地方。

顺手做一件事:在模型广场里确认一下你打算用的模型 id 到底是什么写法。带版本后缀、带日期后缀的,一律以页面上显示的为准,不要凭记忆手编一个看起来差不多的。

2.2 ~/.openclaw/.env 只留一行

回到终端,把原来的 AWS 三行注掉或者删掉,换成一行:

# ~/.openclaw/.env TAOTOKEN_API_KEY=YOUR_API_KEY

键名的书写习惯跟原文保持一致,全大写加下划线。写完之后不用手动 export,openclaw gateway 启动时会读这个文件。如果你更习惯用系统级环境变量,export 一份同名的也行,两种方式选一种,别两边都写还写得不一样。

2.3 这一步和原文的差异在哪

原文那三行是为了让 AWS SDK 自己完成签名,所以必须给到 AK、SK 和区域。这边认证靠一把 Key 解决,本机不需要再存一份云厂商的长效凭证,环境变量这一层从三个缩到一个。

顺带提一句,Key 尽量别写进会提交到仓库的文件里。.env 本身通常在忽略列表内,但如果你把它挪到了别处,记得顺手加一条忽略规则。

3. 在 providers 列表里补一个 taotoken 条目

3.1 先把 amazon-bedrock 那四个字段拆开看

原文那份配置里,真正决定「怎么连」的是这四个字段:

字段amazon-bedrock 的写法作用
baseUrlhttps://bedrock-runtime.us-east-1.amazonaws.com请求打到哪个端点
authaws-sdk用什么方式做认证
apibedrock-converse-stream用哪套协议说话
models一组模型对象这家服务下有哪些模型可用

baseUrl、auth、api 三个字段必须严格按 OpenClaw 支持的取值写,写错一个,网关要么起不来,要么起来了也连不通。models 是你要自己决定的,id 按实际能访问到的模型填。

3.2 照着这个格式写 provider

打开 ~/.openclaw/openclaw.json,找到 providers 这个数组,在末尾追加下面这段。baseUrl 写 https://taotoken.net/api ,注意末尾不要加 /v1,路径由客户端自己拼。

{ "taotoken": { "baseUrl": "https://taotoken.net/api", "auth": "api-key", "api": "openai-chat-completions", "models": [ { "id": "以模型广场当时列表为准", "name": "兼容通道模型", "reasoning": false, "input": ["text"], "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }, "contextWindow": 0, "maxTokens": 0 } ] } }

几点说明。第一,auth 和 api 的取值请对齐你本地 OpenClaw 版本支持的枚举,不同版本叫法可能有差别,别直接照抄 bedrock-converse-stream,那是 AWS 专用的协议标识。第二,cost、contextWindow、maxTokens 这几个数字以模型广场页面当时标注的为准,页面上没标的就先别塞具体数字,宁可留空也别编。第三,id 是整份配置里最关键的一格,下一节专门讲。

3.3 模型 id 从模型广场拿,别手编

很多人在这里栽跟头,是因为随手写了个看着眼熟的名字。可用的模型列表在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 的模型广场里,页面显示什么就写什么,一个字符都别改。带冒号、带短横线的长 id 要整段复制,手敲几乎必错。

如果你打算配多个模型,就在 models 数组里多加几个对象,每个对象 id 各不相同。primary 只会用到其中一个,其余的先放着,哪天想切再改那一行就行。这样做的好处是切换成本很低,不用每次都回来重写整段 provider。

4. agents.defaults.model.primary 指到新通道

4.1 primary 和 fallbacks 怎么摆

provider 加好还不算完,得告诉 agent 默认用谁。在 openclaw.json 里找到 agents.defaults.model,把 primary 写成「provider 名 / 模型 id」的形式:

"agents": { "defaults": { "model": { "primary": "taotoken/YOUR_MODEL_ID", "fallbacks": [] } } }

斜杠前面是你在上一步起的 provider 名,必须一字不差;斜杠后面是 models 数组里那个 id。原文里写的是 amazon-bedrock/us.amazon.nova-2-lite-v1:0,同一个套路,只是把前缀换掉、把 id 换成模型广场上的那一个。

fallbacks 是备选队列。如果你本地还挂着别的 provider,可以按优先级往下排,主通道抽风时能兜住。只配一个通道的话,留空数组就行,不用硬凑。

4.2 models 段里的 alias 配套

原文在 agents.defaults.models 里给每个模型配了个 alias,把长长的模型 id 缩成一个短名字。这个不是必须的,但配了之后在会话里切模型会舒服很多:

"models": { "taotoken/YOUR_MODEL_ID": { "alias": "tt" } }

键名同样是「provider 名 / 模型 id」,和 primary 保持完全一致,差一个字符就认不出来。alias 本身随意起,只要别跟已有的重名。

5. openclaw gateway restart 之后怎么确认真的通了

5.1 起网关,先看日志

配置保存之后执行:

openclaw gateway restart

盯一下启动输出。正常起来的话,日志里会列出加载到的 provider 数量和默认模型。如果 provider 总数没变,多半是 JSON 少了个逗号或者括号没闭合,找个 JSON 校验器过一遍最快;如果起来了但一调用就报认证相关,先去检查 .env 里的键名有没有拼错。

5.2 用同一把 Key 发一条测试消息

网关起来不等于通。稳妥的做法是拿同一把 Key,在 模型对话 里发一条最简单的消息,看模型 id 和通道是不是都能正常回应。

这一步的意义在于把问题范围缩到一半:模型对话里能回,说明 Key 和模型 id 没问题,剩下的锅在 OpenClaw 的配置里;模型对话里也报错,那就先把 Key 或模型 id 处理掉,别在 openclaw.json 里绕圈子。

5.3 回控制台对一下这次调用

再回到 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 的控制台,翻一下用量记录,刚才那条测试消息应该能对上号。如果折腾了半天一条记录都没有,说明请求根本没打出去,回头看看 baseUrl 有没有被某个工具自作主张补成别的地址。

看到记录的那一刻,整条链路就算闭环了。

6. 排障:几个最常见的不生效

6.1 网关读不到 .env 里的 Key

症状是启动正常,一调用就报认证失败。常见原因有三个:文件不在 ~/.openclaw/ 下、文件名不是 .env、键名大小写和引用处对不上。另外注意别在 .env 的值两侧加引号,不少解析器会把引号也当成值的一部分,结果 Key 多出两个字符。

6.2 baseUrl 尾巴上多写了 /v1

这是最容易出的一个错,很多人凭肌肉记忆就把 /v1 加上去了。填进 OpenClaw 的 baseUrl 就是 https://taotoken.net/api ,末尾到此为止。多写一段的结果通常是 404 而不是 401,看报错码能很快区分是路径问题还是认证问题。

6.3 primary 前缀和 provider 名对不上

比如 provider 起名叫 taotoken,primary 里却拼成了别的写法,或者模型 id 中间少了一个字符。这类问题的表现是网关起来了,但一提问就说找不到模型。把 primary 的值从 models 数组里复制粘贴一遍,比手敲靠谱得多。

6.4 配完这一次之后

OpenClaw 的 provider 机制说白了就是一个标准插槽,amazon-bedrock 那份配置刚好把插槽的四个针脚标清楚了。把它抄成模子之后,以后再换通道,无非就是改 baseUrl 和模型 id 两处。

真要动手的话,建议先把模型广场页面开着,边填边对照,比来回切标签页省事。要是之后还打算在别的工具里复用同一把 Key,可以顺手看一眼 Coding Plan,以及 控制台 API Keys 里那把 Key 的余量,心里有个数,后面调起来不慌。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/18 10:57:35

AI生成代码的工程化落地:提示词、审查与验证

做了两年多 AI 生成代码的深度用户,我最大的感受是:它把写代码的门槛降下来了,但把判断代码好坏的门槛抬上去了。第一次真正被 AI 惊艳到,是在一次重构任务里,项目里有一段 500 多行的 if-else 分支,业务规…

作者头像 李华
网站建设 2026/9/18 10:57:33

AI获客系统代理客户交付指南:从初始化到日常操作全流程解析

做AI获客系统代理这行,最尴尬的时刻不是签不下单,而是合同签了、钱收了、账号交付了,客户登录后台盯着一堆按钮问:“然后呢?”我相信不少同行都有过这种体验——系统方给的说明书写得像天书,功能清单列了几…

作者头像 李华
网站建设 2026/9/18 10:54:05

U-Net实战复现:CT影像肿瘤分割的完整流程与经验总结

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/18 10:50:40

间歇性网络故障排查实录:从光模块光功率到链路误码的完整复盘

1. 项目背景:一次让我差点放弃的间歇性网络故障大概在一个多月前,公司内部陆续有同事反馈说网络"卡得不正常",尤其是研发部和产品部的部分终端,表现非常诡异——不是说完全断网,而是每隔几分钟到十几分钟不等…

作者头像 李华