1. 从零部署 OpenClaw 时,新手最容易卡在哪
OpenClaw 是一个把大模型能力接进本地工作流的开源智能体框架,能读文件、跑命令、调技能、做自动化,适合想在自己服务器上搭一套可控 AI 助手的开发者。它跑在 Node.js 上,通过 Gateway 暴露一个本地控制台,再靠 API Key 去连模型服务。听起来不复杂,但真到阿里云 ECS 上从零装一遍,报错会一个接一个冒出来:Node 版本不对、命令找不到、端口被占、控制台打不开、模型调用 401、上下文爆掉、技能装完服务直接崩。
我把这些坑按出现顺序整理成 14 类,每一类都给根因、验证命令和修复动作,最后统一用 TaoToken 的 Key 把模型通道收口,避免你在阿里云百炼、兼容模式、各种 baseUrl 之间反复横跳。整套流程我自己在 2 核 4G 的 ECS 上跑过一遍,下面所有命令都可以直接复制。
先说清楚一件事:OpenClaw 本身不绑定任何一家模型服务,它只认一个 OpenAI 兼容的 baseUrl 和一把 Key。所以部署的难点从来不是"装不上",而是"装上了连不通"。把通道理顺,后面 80% 的报错都会消失。
2. 部署前先把 TaoToken 统一 Key 配好
2.1 为什么建议用统一 Key 而不是到处填
新手最常见的混乱是:装技能时填一个 Key,配 Gateway 时又填一个,跑脚本时环境变量里还藏着一个。结果某个技能报"模型服务异常",你根本不知道是哪一层的问题。TaoToken 的做法是给你一把统一 Key,所有需要模型能力的地方都指向同一个入口,出问题只查一处。
它的 API 地址是https://taotoken.net/api,兼容 OpenAI 的/v1/chat/completions格式,所以 OpenClaw 里凡是让你填 baseUrl 的地方,统一写这个就行。官网入口在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,注册后在控制台生成 Key。
2.2 拿 Key 与验证通道
登录后进控制台,找到 API Keys 页面新建一把 Key,复制出来先存好。生成入口:https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite
拿到 Key 之后别急着装 OpenClaw,先用 curl 确认通道是通的:
export TAOTOKEN_KEY="sk-你的Key" curl -s https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer $TAOTOKEN_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-4o-mini", "messages": [{"role":"user","content":"ping"}], "max_tokens": 16 }'返回里带choices字段就说明 Key 和网络都没问题。这一步能省掉后面一半的排查时间——如果这里就失败,问题在 Key 或网络,跟 OpenClaw 无关。
注意:Key 只存在服务器本地,别写进会提交到 Git 的文件里。下面配置里我用环境变量引用。
3. 可复制的 config.toml 与 settings.json 骨架
3.1 环境准备与 Node.js 版本
OpenClaw 要求 Node.js 22.x 及以上。ECS 上自带的往往是 16 或 18,直接装会报版本不匹配。用 nvm 管理最省事:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc nvm install 22 nvm use 22 node -v # 应输出 v22.x.x如果node -v还是旧版本,说明 PATH 里旧 Node 优先级更高,执行which node看路径,把旧版本卸掉或调整 PATH 顺序。
3.2 安装 OpenClaw 与镜像源
npm config set registry https://registry.npmmirror.com npm install -g openclaw openclaw --version如果openclaw命令找不到,用npm config get prefix拿到全局路径,把它加进 PATH:
echo 'export PATH="$(npm config get prefix)/bin:$PATH"' >> ~/.bashrc source ~/.bashrc3.3 config.toml 骨架
OpenClaw 的主配置放在~/.openclaw/config.toml,下面这份可以直接用,重点是把模型通道指向 TaoToken:
[gateway] host = "0.0.0.0" port = 18789 token = "换成你自己的访问Token" [model] provider = "openai-compatible" base_url = "https://taotoken.net/api/v1" api_key = "${TAOTOKEN_KEY}" model = "gpt-4o-mini" context_window = 65536 max_tokens = 4096 [security] sensitive_data_filter = true skill_scan = true${TAOTOKEN_KEY}会从环境变量读取,所以记得在~/.bashrc里 export 一次,然后source ~/.bashrc。
3.4 settings.json 骨架
技能层的配置在~/.openclaw/settings.json,主要管插件目录和超时:
{ "pluginDir": "~/.openclaw/plugins", "requestTimeout": 60000, "retry": 2, "skills": { "summarize": { "enabled": true }, "office-automation": { "enabled": true } } }两份配置改完,执行openclaw config validate检查语法,没报错再往下走。
4. 启动服务并验证请求成功
4.1 启动 Gateway
openclaw gateway start openclaw gateway statusstatus显示 running 就对了。如果启动失败,八成是端口冲突,见下一节。
4.2 验证控制台可达
浏览器访问http://你的公网IP:18789/?token=你的访问Token。打不开先别怀疑 OpenClaw,按顺序查:ECS 安全组有没有放行 18789、服务是不是真在跑、公网 IP 对不对。
4.3 验证模型调用
在控制台里发一句"你好",或者命令行直接测:
openclaw chat "用一句话介绍你自己"能正常返回内容,说明 Gateway、Key、模型通道三层全通了。到这一步,部署主体就算完成。
5. 14 类常见报错逐条排查
5.1 Node.js 版本不匹配
报错关键词:Node.js version mismatch。根因是版本低于 22.x。验证node -v,低于 22 就按 3.1 节重装。装完必须重开终端,否则 PATH 还是旧的。
5.2 技能安装网络超时
报错关键词:ETIMEDOUT/network timeout。先确认 npm 镜像源已切到 npmmirror,再检查 ECS 出网是否正常。实在不行手动下载技能包,解压到~/.openclaw/plugins,然后openclaw skills reload。
5.3 终端识别不了 openclaw 命令
根因是全局 bin 目录没进 PATH。按 3.2 节把npm config get prefix的路径加进去,Windows 用户重开终端,Linux/Mac 执行source ~/.bashrc。
5.4 Gateway 端口冲突
报错关键词:EADDRINUSE :18789。定位占用进程:
# Linux lsof -ti:18789 | xargs kill -9 # Windows netstat -ano | findstr :18789 taskkill /PID 进程号 /F或者直接换端口:openclaw config set gateway.port 18790,记得安全组同步放行新端口。
5.5 控制台提示缺失访问凭证
根因是 URL 没带 token 或 token 不对。重新生成:openclaw token generate,然后 URL 追加?token=新Token。也可以把 token 写进 config.toml 的[gateway]段再重启。
5.6 阿里云实例部署后控制台不可达
按这个顺序查:实例状态是否"运行中"、安全组是否放行 18789、公网 IP 是否正确、openclaw gateway status是否 running。四项都对还打不开,检查 ECS 内部防火墙sudo ufw status。
5.7 技能调用返回模型服务异常
根因基本都在 API 配置。核对三件事:base_url 是不是https://taotoken.net/api/v1、Key 有没有多余空格、环境变量有没有生效(echo $TAOTOKEN_KEY)。改完openclaw gateway restart。
5.8 上下文容量不足
报错关键词:context length exceeded。把 config.toml 里context_window调到 65536,max_tokens控制在 4096。长文档先做摘要再喂,别整篇塞进去。
5.9 API 调用额度耗尽
根因是 Token 用量超限。去 TaoToken 控制台看用量,长文本处理前先提取核心内容,日常把max_tokens压到 4096 以内。
5.10 PDF 摘要功能失效
先装解析库pip3 install PyPDF2,加密 PDF 要先解密。强制生成摘要:
openclaw chat "用 summarize 技能总结 report.pdf --force-summary"5.11 邮件自动化发送失败
核对 SMTP 地址和端口(163 邮箱用 465),密码必须用授权码不是登录密码,防火墙别拦 465 出站。改完openclaw skills restart office-automation。
5.12 装完第三方技能服务崩溃
先卸载问题技能clawhub uninstall 技能名,确认 config.toml 里skill_scan = true已开,之后只从可信源装技能。崩溃日志在~/.openclaw/logs/,看最后几行基本能定位。
5.13 敏感数据泄露担忧
把sensitive_data_filter = true打开,会自动屏蔽密码和密钥字段。机密数据优先本地处理,技能日志定期清理,第三方技能来源严格审核。
5.14 服务器登录密码遗忘
进阿里云轻量应用服务器控制台,选实例点"重置密码",按流程设置新密码后重启实例生效。这一步跟 OpenClaw 无关,但新手经常卡在这。
6. 通道收口之后,把精力留给技能本身
部署这件事,真正耗时间的从来不是敲命令,而是搞不清报错属于哪一层。我的做法是:环境层(Node、PATH)、服务层(端口、进程)、通道层(Key、baseUrl)、技能层(依赖、权限)分开看,每层都有独立的验证命令。上面 14 条基本覆盖了新手会遇到的九成情况。
模型通道这块,用 TaoToken 统一 Key 之后,你只需要维护一个 base_url 和一把 Key,换模型、加技能都不用重新配。需要长期跑编码或 Agent 任务的,可以看 Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite ;想先在网页里试模型效果的,直接进模型对话:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite ;接入细节和参数说明都在文档里:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。
最后留一个我踩过的坑:改完 config.toml 一定要openclaw gateway restart,光 reload 有时候不生效,然后你会对着一个"明明改了却没反应"的配置怀疑人生。