在阿里云上把 OpenClaw(原 Clawdbot)一键部署完,企业微信也接上了,结果发现模型侧还挂着阿里云百炼的 API-Key?这时候不必重装机器人,也不用推翻整套企微回调。把模型供应商从百炼切到 TaoToken,到 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 拿一把新 Key,再把 OpenClaw 的模型配置指向 https://taotoken.net/api,企业微信自动回复就能照常跑。接下来按部署顺序把替换步骤拆开:先看企业微信回调与模型调用是两段,再找到阿里云上的配置文件,最后重启容器在群里发指令验证。你原来在百炼控制台里点过的那几步,现在都换成在 TaoToken 控制台完成,OpenClaw 本身不需要改业务代码。
1. 先看 OpenClaw 企业微信自动回复链路:百炼 Key 到底卡在哪
1.1 企业微信发一条消息,OpenClaw 做了两段事
企业微信自建应用收到用户消息后,会把消息推送到你配置的回调 URL,这个 URL 指向阿里云服务器上的 OpenClaw 服务。OpenClaw 解析消息、取出文本,再调用大模型 API 生成回复,最后把回复内容通过企业微信接口发回群里。第一段是企微回调,第二段是模型调用。百炼 API-Key 只出现在第二段,企业微信后台里的 Token、EncodingAESKey、回调地址跟模型供应商没有关系。
很多人卡住的地方,是把“机器人没回复”直接归因到 Key。实际排查时先要把两段分开:企业微信后台能看到回调请求是否到达,OpenClaw 日志能看到是否收到消息,模型请求日志能看到是否拿到回复。只要第二段换成 TaoToken 后能拿到模型返回,第一段原样保留就能继续跑。
1.2 换模型供应商,不需要动回调地址
回调 URL 仍然指向你的阿里云公网 IP 和 OpenClaw 端口,比如企业微信后台填的http://你的公网IP:8080/wecom/callback。这个地址跟百炼还是 TaoToken 无关。真正要改的是 OpenClaw 读取的环境变量或配置文件:模型 Base URL、API Key、模型 ID。把这三个值换成 TaoToken 的,OpenClaw 下一次收到消息就会走新通道。
这里有个容易忽略的点:如果你在阿里云安全组里只放行了企业微信回调端口,没有额外限制模型出站,那换 Key 不需要动安全组。OpenClaw 所在容器只要能访问https://taotoken.net/api,模型请求就能发出去。企业微信侧也不会因为模型供应商变了而要求重新验证 URL。
2. 阿里云上找到 OpenClaw 的模型配置:docker-compose.yml 与 .env
2.1 一键部署后,模型配置通常落在哪
阿里云一键部署 OpenClaw 常见做法是 docker compose。部署目录可能在/opt/openclaw、/root/openclaw或你自己建的目录。进去后找docker-compose.yml、.env、config目录。如果部署脚本把环境变量直接写在docker-compose.yml的environment里,就改那里;如果写了env_file: .env,就改.env。两种写法不要同时改一半,否则容易出现“看起来改了但容器没读到”的情况。
可以先在服务器上执行docker compose config,看最终合并后的环境变量里模型相关字段是什么。这个命令会把 compose 文件展开,你能清楚看到 OpenClaw 实际拿到的OPENAI_BASE_URL、OPENAI_API_KEY、OPENAI_MODEL或对应变量名。确认位置后再动手替换,比盲改文件稳得多。
2.2 百炼 Key 原来写在哪个变量里
百炼接入通常用DASHSCOPE_API_KEY或MODEL_API_KEY,Base URL 可能是 DashScope 的地址。不同 OpenClaw 版本的变量名不完全一样,但逻辑固定:一个 Key、一个 Base URL、一个模型名。原文里“配置百炼 API-Key”“单击执行命令,写入 API-Key”这一步,现在换成打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 创建 TaoToken Key,再把同一个位置的值换掉。
可以用下面这张表对照,变量名以你部署版本为准,值按 TaoToken 侧来填:
| 原来百炼的配置 | 换成 TaoToken 后 |
|---|---|
DASHSCOPE_API_KEY或MODEL_API_KEY | OPENAI_API_KEY=YOUR_API_KEY |
| DashScope Base URL | OPENAI_BASE_URL=https://taotoken.net/api |
DASHSCOPE_MODEL或百炼模型名 | OPENAI_MODEL=模型广场当时列表里的 ID |
注意:这里填进 OpenClaw 的 Base URL 是
https://taotoken.net/api,末尾不要加/v1;官网落地页只用来看模型、创建 Key、查用量。
3. 去 TaoToken 创建 Key,并把 OpenClaw 指向 https://taotoken.net/api
3.1 注册后先看模型广场,确定模型 ID
打开 TaoToken,注册登录后进控制台创建 API Key。Key 只显示一次,复制到安全的地方。别急着猜模型名,先去模型广场看当时可用的模型 ID。不同时间上架的模型可能变化,以模型广场当时列表为准。把模型 ID 记下来,后面填进 OpenClaw 的OPENAI_MODEL或MODEL_NAME。
如果你之前用百炼时固定写死了qwen-plus,现在不要直接把旧名字搬过来。先在模型广场确认 TaoToken 侧对应的模型 ID,再填入。这样换供应商后第一次请求就能命中,不会因为模型名不存在而返回错误。
3.2 替换 .env 里的三个值
假设 OpenClaw 用.env管理模型配置。原来百炼的 Key 注释掉,换成 TaoToken 的。Base URL 一定填https://taotoken.net/api,末尾不要加/v1。API Key 用YOUR_API_KEY占位,实际填你刚创建的那串。模型 ID 用模型广场看到的那个。
# 旧:阿里云百炼 # DASHSCOPE_API_KEY=sk-xxxxxxxx # DASHSCOPE_MODEL=qwen-plus # 新:TaoToken 统一接入 OPENAI_API_KEY=YOUR_API_KEY OPENAI_BASE_URL=https://taotoken.net/api OPENAI_MODEL=MODEL_ID_FROM_TAOTOKEN如果docker-compose.yml里直接写environment,就改成:
services: openclaw: image: openclaw/openclaw:latest environment: - OPENAI_API_KEY=YOUR_API_KEY - OPENAI_BASE_URL=https://taotoken.net/api - OPENAI_MODEL=MODEL_ID_FROM_TAOTOKEN ports: - "8080:8080" restart: unless-stopped改完后确认.env权限,别让无关用户读到 Key。如果同一台阿里云服务器上还跑了别的服务,建议把 OpenClaw 的 Key 单独放在它自己的环境文件里,避免和其他项目的变量混淆。
3.3 变量名不同怎么办
如果部署脚本用的是MODEL_API_KEY、MODEL_BASE_URL、MODEL_NAME,就把同样的值填进去。不要同时保留百炼和 TaoToken 两套变量,否则 OpenClaw 可能读了旧 Key。改完保存后,用docker compose config再看一眼最终值,确认OPENAI_BASE_URL或MODEL_BASE_URL指向的是https://taotoken.net/api,而不是带/v1的地址。
另外,如果 OpenClaw 的模型配置在config目录下的 YAML 或 JSON 文件里,就找到base_url、api_key、model三个字段,按同样规则替换。结构不要照搬别的工具,参数值对齐 TaoToken 侧即可。
4. 企业微信里发指令验证:自动回复照常,控制台也有记录
4.1 重启容器并看日志
在部署目录执行docker compose down再docker compose up -d,或者docker compose restart。然后看日志:docker compose logs -f openclaw。企业微信里发一条“帮我总结一下今天的会议要点”。日志里应该看到 OpenClaw 接收消息,并向https://taotoken.net/api发起模型请求。如果日志停在回调解析,说明问题在企微侧;如果日志出现模型请求报错,就看下一节排障。
重启时企业微信可能短暂收到“该应用无响应”,等容器起来后再发一次即可。如果重启后端口没有变化,企业微信后台不需要重新保存回调地址。只有你改了 OpenClaw 监听端口或换了公网 IP,才需要回去重新配置企业微信。
4.2 去 TaoToken 控制台对一下这次调用
企业微信收到回复后,回到 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 的控制台,看用量或调用记录里有没有刚才这一次。能对上,说明 OpenClaw 已经走 TaoToken 通道,企业微信自动回复链路完整。以后换模型,只要在模型广场换 ID,OpenClaw 不用改代码。
如果控制台没有记录,而企业微信却回复了,先检查是不是容器里还残留着旧环境变量,或者 OpenClaw 有缓存配置。最直接的办法是进容器执行env | grep -i model,看实际生效的 Base URL 和 Key 是哪一个。确认生效值已经切换到https://taotoken.net/api。
5. 换 Key 后常见的 401、404 与企业微信静默排查
5.1 401:先查 Key 有没有多空格
401 多数是 Key 不对。复制时前后带了空格,或者把 Key 填到了错误的变量里。检查.env或docker-compose.yml里的OPENAI_API_KEY,确保值是YOUR_API_KEY对应的真实 Key,没有引号、没有换行。改完要重启容器,环境变量才会重新加载。企业微信里如果看到“模型调用失败”之类的回复,也先查 401。
5.2 404:Base URL 末尾多了 /v1
404 常常是 Base URL 写错。OpenClaw 里填的应该是https://taotoken.net/api,不要在末尾加/v1。有些 OpenAI 兼容工具默认在 Base URL 后拼/chat/completions,如果这里多了一层/v1,请求路径就重复了。检查docker-compose.yml和.env,两处都确认一遍。日志里如果出现类似POST https://taotoken.net/api/v1/chat/completions的路径,说明多了/v1,改回https://taotoken.net/api。
5.3 企业微信静默:回调和安全组先看
如果企业微信发消息完全没反应,先看 OpenClaw 容器日志有没有收到回调。没有收到,检查企业微信后台的接收消息 URL 是否还是阿里云公网 IP:端口,阿里云安全组有没有放行该端口。收到回调但没回复,再看模型请求是不是 401 或 404。切换模型供应商不会改回调地址,但重启容器时端口短暂不可用,企业微信可能重试。
还有一类静默是模型返回了内容,但 OpenClaw 发送企业微信消息时失败。这时日志里通常能看到企业微信接口报错,比如 access_token 过期或应用可见范围不对。先确认企业微信自建应用还正常,再回来处理模型侧。两段链路分开看,定位会快很多。
6. 后续换模型不用改代码:模型广场与 Coding Plan 的收尾
6.1 在 TaoToken 侧换模型,OpenClaw 只改一个 ID
企业微信自动回复跑通后,最省事的地方在于模型切换。以前换模型要动 OpenClaw 代码或配置文件,现在 Base URL 和 Key 都不变,只在模型广场挑一个新模型 ID,把OPENAI_MODEL改掉再重启。企业微信侧完全不用动。模型 ID 以模型广场当时列表为准,别用记忆里的旧名字。
如果 OpenClaw 支持在运行时读取配置,也可以只更新环境变量后重启容器。对阿里云一键部署的场景,最稳的还是改.env或docker-compose.yml,然后docker compose up -d让新变量生效。改完再去企业微信发一条测试消息,确认新模型也能正常回复。
6.2 长期挂着企业微信,套餐和用量在控制台看
如果 OpenClaw 要长期在企业微信里自动回复,建议定期看控制台用量。刚完成替换,可以先用模型对话页发几条消息,确认 Key 和模型 ID 没问题。要长期跑代码类指令,可以看 Coding Plan 是否适合。Key 管理、模型广场、用量页都在同一个控制台。企业微信自动回复照常跑通后,剩下的事情就是按用量选合适的方案。
企业微信里那条测试指令如果已经正常回复,OpenClaw 日志里也看到向https://taotoken.net/api发起的请求,下一步就是把这把 Key 管好。打开 TaoToken 模型对话 可以继续用同一把 Key 试模型;准备长期挂企业微信自动回复,去看 Coding Plan;Key 的创建和删除在 控制台 API Keys。下次换模型,记得只改OPENAI_MODEL,Base URL 仍然是https://taotoken.net/api,末尾别加/v1。