
1. 天翼云上跑 OpenClaw为什么卡在 settings.jsonOpenClaw 是一个轻量级的 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填你在控制台生成的 Keymodel填你要用的模型标识。这样 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 --versionDocker 起来之后建 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_ENVproduction - PORT3000 - LOG_LEVELinfo 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.json5. 启动容器与连通性验证配置就位后启动服务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/webhookToken 和 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。先把通道跑顺再决定长期用哪个这个顺序比较省事。