☰
OpenClaw 配 TaoToken:天翼云 Docker 搭建与 settings.json 骨架指南
2026/9/28 4:21:21 网站建设 项目流程

1. 天翼云上跑 OpenClaw,为什么卡在 settings.json

OpenClaw 是一个轻量级的 AI 任务自动化执行框架,你可以把它理解成一个「能听懂指令、会调用工具、还能把结果推回聊天窗口」的机器人中枢。它本身不绑定某一家模型,而是通过统一的 API 通道去调用后端大模型,所以特别适合放在云主机上 7×24 小时常驻,再挂到企业微信这类协同工具上,实现「发一句话,AI 自动干活」。适合谁?适合手里有一台天翼云主机、想自己掌控数据、又不想被单一模型厂商锁死的开发者和小团队。

我这次选的是天翼云,原因很直接:它家的云主机在合规和网络稳定性上比较省心,Docker 环境也干净,适合做长期常驻服务。但真正动手之后,我发现大部分人卡住的地方根本不是 Docker 命令,而是 OpenClaw 的settings.json——这个文件决定了模型走哪条通道、Key 怎么填、超时怎么设、企业微信回调往哪打。配置写错一个字段,容器能起来,但请求就是不通,日志里全是 401 或超时。

这篇就按「天翼云 + Docker + TaoToken 统一 Key/API 通道」这条线走一遍。我会先讲清楚 TaoToken 在这里扮演什么角色,再给一份可以直接复制的settings.json骨架,然后是 Docker 启动命令、连通性验证动作,最后把企业微信侧的回调配置要点和常见报错一起收掉。全程命令可复制,零基础也能跟着做,但前提是你得有一台能 SSH 登录的天翼云主机。

2. TaoToken 前置:统一 Key 与 API 通道怎么理解

在讲配置之前,先把 TaoToken 的定位说清楚,不然后面settings.json里的字段你会看不懂为什么要那么填。

OpenClaw 调用模型时,需要三样东西:一个 API 地址(base_url)、一个密钥(api_key)、一个模型名(model)。如果你直接对接某一家模型厂商,这三样都得用那家的;但如果你想让 OpenClaw 在不同模型之间灵活切换,或者想用一个 Key 管多条通道,就需要一个统一的接入层。TaoToken 就是这个接入层——它提供统一的 API 通道,你拿一个 Key,就能在 OpenClaw 里通过改model字段切换后端,而不用每次重配密钥和地址。

对 OpenClaw 来说,它只认「一个兼容 OpenAI 风格的接口」,所以配置上非常干净:base_url指向 TaoToken 的 API 地址,api_key填你在控制台生成的 Key,model填你要用的模型标识。这样 OpenClaw 的代码不用动,换模型只是改一个字符串。

你需要提前准备两样东西:一是 TaoToken 的 API Key,在控制台的 API Keys 页面生成;二是确认你要用的模型标识,可以在模型对话页面先试跑一句,确认通道正常。这两个动作建议在配 OpenClaw 之前先做完,否则后面排障时你分不清是 OpenClaw 的问题还是 Key 的问题。

注意:API Key 属于敏感凭证,不要写进会提交到 Git 的文件里。生产环境建议用环境变量注入,或者至少保证settings.json的文件权限是 600。

3. 天翼云 Docker 环境准备与 OpenClaw 目录骨架

先在天翼云主机上把 Docker 装好。假设你用的是主流 Linux 发行版,登录后依次执行:

# 更新系统包 sudo yum update -y || sudo apt update -y # 安装 Docker(以 yum 系为例,apt 系把 yum 换成 apt 即可) sudo yum install -y docker sudo systemctl start docker sudo systemctl enable docker # 验证 docker --version

Docker 起来之后,建 OpenClaw 的工作目录。我习惯放在/opt/openclaw,数据、配置、日志都收在这一层,备份和迁移都方便:

sudo mkdir -p /opt/openclaw/{data,config,logs} cd /opt/openclaw

目录结构建议是这样,后面settings.json就放在config里:

/opt/openclaw ├── data/ # 持久化数据 ├── config/ │ └── settings.json ├── logs/ └── docker-compose.yml

接下来写docker-compose.yml。这里我把配置目录挂进去,这样改settings.json不用进容器:

version: '3.8' services: openclaw: image: openclaw/openclaw:2026-stable container_name: openclaw-core restart: unless-stopped ports: - "3000:3000" environment: - NODE_ENV=production - PORT=3000 - LOG_LEVEL=info volumes: - ./data:/app/data - ./config:/app/config - ./logs:/app/logs networks: - openclaw-net networks: openclaw-net: driver: bridge

这份 compose 文件的关键点是./config:/app/config这行映射。OpenClaw 启动时会去读/app/config/settings.json,你只要在宿主机改这个文件,重启容器就生效,不用docker exec进去折腾。

4. 可复制的 settings.json 骨架

这是本篇的核心。下面这份骨架我按「模型通道 + 服务 + 企业微信回调」三块拆开,字段都带了注释说明用途。你复制之后,只需要替换四个占位符:YOUR_TAOTOKEN_API_KEY、YOUR_MODEL_NAME、YOUR_CORP_ID、YOUR_AGENT_SECRET。

{ "server": { "port": 3000, "host": "0.0.0.0", "logLevel": "info" }, "model": { "provider": "openai-compatible", "baseUrl": "https://taotoken.net/api", "apiKey": "YOUR_TAOTOKEN_API_KEY", "model": "YOUR_MODEL_NAME", "timeout": 60000, "maxRetries": 2 }, "storage": { "dataDir": "/app/data", "logDir": "/app/logs" }, "wework": { "enabled": true, "corpId": "YOUR_CORP_ID", "agentId": "YOUR_AGENT_ID", "secret": "YOUR_AGENT_SECRET", "token": "YOUR_CALLBACK_TOKEN", "encodingAESKey": "YOUR_ENCODING_AES_KEY", "callbackPath": "/wework/webhook", "autoReply": true } }

几个字段单独说一下,这些是我踩过坑的地方:

baseUrl填https://taotoken.net/api,注意结尾不要多加斜杠,OpenClaw 内部拼接路径时多一个斜杠会导致 404。timeout设 60000 毫秒,也就是 60 秒,模型推理慢的时候不至于被提前掐断。maxRetries设 2,网络抖动时自动重试两次,比设 0 稳。

wework.callbackPath是/wework/webhook,这个路径要和企业微信后台填的「接收消息 URL」的路径部分完全一致,否则企业微信验证 URL 时会失败。encodingAESKey是 43 位字符串,企业微信后台生成后原样填进来,不要自己改。

改完文件权限收紧一下:

chmod 600 /opt/openclaw/config/settings.json

5. 启动容器与连通性验证

配置就位后,启动服务:

cd /opt/openclaw docker compose up -d # 看启动日志 docker compose logs -f openclaw

日志里出现server listening on 3000之类的字样,说明服务起来了。接着做三层验证,一层层排除问题。

第一层,本地健康检查:

curl http://localhost:3000/health

返回{"status":"ok"}说明 OpenClaw 进程本身正常。

第二层,验证模型通道是否通。这一步最关键,因为很多人容器起来了但模型请求是 401。你可以直接看 OpenClaw 的日志,也可以在模型对话页面先确认 Key 有效。如果日志里出现401 Unauthorized,八成是apiKey填错或者 Key 被禁用;出现model not found,就是model字段的标识写错了。

第三层,从外部访问。天翼云的安全组要放行 3000 端口,否则企业微信的回调打不进来:

# 在本地机器上测(替换成你的天翼云公网 IP) curl http://YOUR_PUBLIC_IP:3000/health

如果本地能通、外部不通,基本就是安全组没放行。天翼云控制台的「安全组」里加一条入方向规则,协议 TCP,端口 3000,源地址按需限制(企业微信回调建议只放行企业微信出口 IP 段,测试阶段可临时放开)。

6. 企业微信回调配置要点

企业微信这一侧,核心是把「接收消息 URL」指向 OpenClaw 的回调路径。进入企业微信管理后台,创建自建应用后,在「接收消息」里设置:

URL 填http://YOUR_PUBLIC_IP:3000/wework/webhook,Token 和 EncodingAESKey 随机生成后,原样填回settings.json的wework.token和wework.encodingAESKey。加密方式新手选「兼容模式」,保存时企业微信会立刻向这个 URL 发一条验证请求,OpenClaw 必须能正确解密并返回,验证才会通过。

这里有个顺序问题:一定要先确保 OpenClaw 在跑、settings.json里的企业微信字段已经填好、容器已重启,再去企业微信后台点保存。否则验证请求打过来,OpenClaw 解不出来,就会提示「URL 验证失败」。

验证通过后,在企业微信里给这个应用发一句测试指令,比如「生成一份周报模板」。如果几秒内收到回复,说明整条链路通了:企业微信 → OpenClaw 回调 → TaoToken 通道 → 模型 → 原路返回。如果没回复,先看 OpenClaw 日志里有没有收到请求记录,有记录但没回复就是模型通道的问题,没记录就是回调没打进来。

7. 本篇常见错排查

容器起来了但 curl 健康检查失败。先看docker compose logs openclaw,如果是端口占用,改 compose 里的映射端口;如果是配置文件解析失败,多半是settings.json有语法错误,用python -m json.tool config/settings.json校验一下。

模型请求返回 401。检查apiKey是否有多余空格,检查 Key 是否在控制台被禁用。可以先用模型对话页面单独验证 Key,排除 OpenClaw 的干扰。

企业微信 URL 验证失败。三个检查点:OpenClaw 是否在跑、callbackPath和企业微信后台路径是否一致、token和encodingAESKey是否两边完全一致。这三个里错一个都会失败。

外部访问不通但本地通。天翼云安全组没放行 3000 端口,或者主机自带的防火墙拦了。检查sudo firewall-cmd --list-ports或sudo ufw status。

改了 settings.json 不生效。OpenClaw 只在启动时读配置,改完必须docker compose restart openclaw,光改文件不重启是没用的。

8. 后续怎么走:按场景选入口

跑通之后,接下来看你主要想干什么。如果你只是想让 OpenClaw 稳定调用模型、把企业微信这条链路维护好,那重点是把 API Key 管理和接入文档吃透,Key 轮换、权限收窄这些动作都在控制台完成,接入文档里有各语言和框架的对接示例,照着改settings.json就行。

如果你打算把 OpenClaw 当成长期编码或 Agent 任务的底座,比如让它常驻跑自动化脚本、定时任务、多轮工具调用,那更适合走 Coding Plan 这条线,它在长会话和任务编排上的配额更友好,适合 7×24 常驻场景。

如果你还在选模型、想先对比不同模型在 OpenClaw 里的实际表现,那就直接在模型对话页面里试,换model字段就能切,不用重配 Key。先把通道跑顺,再决定长期用哪个,这个顺序比较省事。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询