1. 为什么新手部署 OpenClaw 总卡在配置这一步
OpenClaw 是一个可以自己跑在服务器上的 Agent 框架,它能加载各种 Skills(技能插件),把大模型的对话能力接到你的飞书、钉钉或者网页端。适合谁?适合想拥有一个「专属 AI 助手」但不想从零写代码的人,也适合想研究 Agent 编排的开发者。但很多人第一次部署时会发现:镜像一键装好了,服务却起不来,或者起来了但 Agent 不响应、Skills 加载失败。问题往往不在 OpenClaw 本身,而在两个地方——模型通道没接对,以及 config.toml 配置骨架写错了。
我自己第一次在轻量应用服务器上跑 OpenClaw 时,就踩过「服务启动了但对话一直转圈」的坑。后来排查发现是 API Key 和 base_url 没对齐,模型请求根本没发出去。这篇教程就围绕这个场景,给你一份可以直接复制的 config.toml 配置骨架,配合 TaoToken 的统一 Key 接入,让零基础用户也能一次跑通 OpenClaw,并确认 Agent 与 Skills 正常响应。
整个流程分四块:先准备好服务器和 TaoToken 的 Key,再写配置文件,然后启动验证,最后处理常见报错。你不需要懂 Go 或 Python,照着填参数就行。
2. TaoToken 前置准备:统一 Key 与 API 通道
TaoToken 在这里扮演的角色,是给 OpenClaw 提供一个统一的模型调用入口。你可以把它理解成一个「模型网关」:OpenClaw 不用关心背后是哪个模型厂商,只需要拿到一个 Key 和一个 base_url,就能发起对话请求。这样做的好处是,以后你想换模型,只改配置里的模型名,不用动代码。
你需要准备两样东西:一个 API Key,和一个 API 地址。API 地址是https://taotoken.net/api,注意这个地址不带任何多余参数,直接填进配置即可。Key 的获取入口在控制台的 API Keys 页面,登录后创建一个新 Key,复制保存好,后面 config.toml 里要用。
如果你还没决定用哪个模型,可以先到模型对话页面试几句,确认通道是通的,再回来配 OpenClaw。对于长期跑编码类 Agent 的场景,Coding Plan 会更划算,这个后面 CTA 部分再说。
注意:Key 只显示一次,创建后立刻复制到安全的地方。不要把它写进会提交到 Git 的公开文件里。
环境变量清单先列出来,方便你对照:
| 变量名 | 用途 | 示例值 |
|---|---|---|
| TAOTOKEN_API_KEY | 模型调用鉴权 | sk-xxxxxxxx |
| TAOTOKEN_BASE_URL | API 通道地址 | https://taotoken.net/api |
| OPENCLAW_PORT | 服务监听端口 | 18789 |
| OPENCLAW_MODEL | 默认模型名 | 按控制台可选模型填写 |
这些变量在启动前 export 到 shell,或者写进 systemd 的 Environment 里都行。新手建议先用 export,验证通过后再固化。
3. 可复制的 config.toml 配置骨架
OpenClaw 的主配置文件通常放在~/.openclaw/config.toml或项目根目录下的config.toml,具体路径看你用的镜像。下面这份骨架是我实测能跑通的版本,你按自己的 Key 替换即可。
# OpenClaw 主配置 [server] host = "0.0.0.0" port = 18789 [model] # 统一走 TaoToken 通道 provider = "openai-compatible" base_url = "https://taotoken.net/api" api_key = "${TAOTOKEN_API_KEY}" model = "gpt-4o-mini" timeout = 60 [agent] name = "my-openclaw" max_tokens = 2048 temperature = 0.7 [skills] # Skills 加载目录 dir = "./skills" # 启用的技能列表,按需增删 enabled = ["web_search", "knowledge_lookup"] auto_reload = true [logging] level = "info" file = "./logs/openclaw.log"几个关键点解释一下。provider填openai-compatible,因为 TaoToken 的 API 兼容 OpenAI 的请求格式,这样 OpenClaw 不用改代码就能对接。api_key用${TAOTOKEN_API_KEY}引用环境变量,避免明文写死在文件里。model字段填你在控制台看到的模型名,不同模型能力不同,编码类任务建议选上下文长的。
Skills 部分,dir指向技能目录,enabled里列出你要启用的技能名。OpenClaw 启动时会扫描这个目录,把每个 Skill 的 manifest 读进来。如果某个 Skill 依赖外部服务,记得在对应 Skill 的配置里补上凭证。
写完配置后,检查一下 TOML 语法。TOML 对缩进不敏感,但字符串必须用双引号,布尔值是小写true/false。一个常见的低级错误是把true写成True,会导致解析失败。
4. 启动验证:确认 Agent 与 Skills 正常响应
配置写好后,先 export 环境变量,再启动服务:
export TAOTOKEN_API_KEY="sk-你的Key" export TAOTOKEN_BASE_URL="https://taotoken.net/api" export OPENCLAW_PORT=18789 # 启动 OpenClaw openclaw start --config ./config.toml如果看到类似server listening on 0.0.0.0:18789和loaded 2 skills的日志,说明服务起来了。接下来做两步验证。
第一步,验证模型通道。用 curl 直接打 OpenClaw 的对话接口:
curl -X POST http://127.0.0.1:18789/api/chat \ -H "Content-Type: application/json" \ -d '{"message": "你好,请回复一句话确认通道正常"}'正常的话会返回一段 JSON,里面有模型生成的文本。如果返回 401,说明 Key 没生效;返回 404,检查 base_url 是不是多写了斜杠。
第二步,验证 Skills 加载。访问技能列表接口:
curl http://127.0.0.1:18789/api/skills返回的数组里应该包含你在 config.toml 里 enabled 的技能名。如果某个技能没出现,去日志里搜技能名,通常是 manifest 格式不对或者依赖缺失。
两步都通过后,你就可以通过网页端访问http://你的服务器IP:18789和 Agent 对话了。记得在服务器防火墙放行 18789 端口,否则外网访问不了。
5. 本篇常见错排查
报错一:config parse error: expected value but found 'True'TOML 布尔值必须小写。把True改成true,False改成false。
报错二:model request failed: 401 unauthorizedKey 没读到。检查echo $TAOTOKEN_API_KEY是否有值,以及 config.toml 里是不是写成了${TAOTOKEN_API_KEY}而不是直接写 Key。如果你在 systemd 里跑,确认 Environment 行写对了。
报错三:skill load failed: manifest not foundSkills 目录路径不对。dir是相对路径时,相对于启动命令的工作目录。建议改成绝对路径,比如/opt/openclaw/skills。
报错四:服务启动但端口访问不通防火墙没放行。轻量应用服务器一般在控制台的防火墙页面加规则,放行 TCP 18789。另外确认host是0.0.0.0而不是127.0.0.1,后者只允许本机访问。
报错五:对话响应超时timeout设太短,或者模型本身响应慢。把 timeout 调到 120,并确认你选的模型在控制台是可用的。如果持续超时,换一个模型名试试,排除是模型侧的问题。
排查时养成看日志的习惯,./logs/openclaw.log里会记录每次请求的耗时和错误码,比猜快得多。
6. 接入文档与后续进阶
配置跑通之后,你可能会想加更多 Skills,或者把 OpenClaw 接到飞书、钉钉。这些操作都需要在控制台里管理 Key 和查看接入文档。API Keys 页面可以创建多个 Key,给不同环境用;接入文档里有各消息平台的回调配置说明,照着填就行。
如果你打算长期跑编码类 Agent,比如让 OpenClaw 帮你写代码、查文档,Coding Plan 的额度模型更适合这种高频场景,比按次调用省心。想先试试模型效果,模型对话页面可以直接开聊,不用部署就能感受通道质量。
部署这件事,第一次总是最难的。把 config.toml 骨架填对,Key 和环境变量对齐,剩下的就是放行端口和看日志。跑通一次之后,后面加技能、换模型都是改几行配置的事。