OpenClaw 部署与故障排查
快速查询 OpenClaw 部署步骤和错误解决方案。
触发词
用户询问以下内容时启动本 skill:
- OpenClaw 部署、安装、配置
- OpenClaw 报错、故障、不回复、连不上
- "openclaw 怎么..." / "小龙虾报错"
部署导航(九阶段)
| 阶段 | 内容 | 关键验证 |
|---|
| 1 | 服务器购买与初始访问 | 能看到 root@主机名 提示符 |
| 2 | SSH 免密登录配置 | ssh root@IP "echo ok" 无需密码 |
| 3 | 服务器环境确认 | openclaw --version 输出版本号 |
| 4 | 配置 AI 模型(models.providers) | providers 列表非空,primary model 已设置 |
| 5 | 飞书应用创建 | 获得 App ID(cli_ 开头)和 App Secret |
| 6 | 飞书通道配置(服务器端) | channels.feishu.enabled=true,凭证已设置 |
| 7 | 飞书权限与事件订阅 | im:message 等权限已开通,版本已上线 |
| 8 | 重启网关与端到端测试 | 机器人成功回复消息 |
| 9 | 安装 Claude Code(可选) | claude --version 输出版本号 |
关键命令模板
远程执行前缀(必需)
export NVM_DIR=/root/.nvm; . "$NVM_DIR/nvm.sh";
配置 AI 模型(阶段4)
ssh root@<IP> 'export NVM_DIR=/root/.nvm; . "$NVM_DIR/nvm.sh"; openclaw config set "models.providers.<名称>" --json "{
\"baseUrl\": \"<代理地址>\",
\"apiKey\": \"<API_Key>\",
\"api\": \"anthropic-messages\",
\"models\": [{
\"id\": \"claude-sonnet-4-6\",
\"name\": \"Claude Sonnet 4.6\",
\"reasoning\": true,
\"input\": [\"text\", \"image\"],
\"contextWindow\": 200000,
\"maxTokens\": 32000
}]
}"'
设置主模型
ssh root@<IP> 'export NVM_DIR=/root/.nvm; . "$NVM_DIR/nvm.sh"; openclaw config set "agents.defaults.model.primary" "<名称>/claude-sonnet-4-6"'
配置飞书通道(阶段6)
ssh root@<IP> 'export NVM_DIR=/root/.nvm; . "$NVM_DIR/nvm.sh"; openclaw config set "channels.feishu" --json "{
\"enabled\": true,
\"domain\": \"feishu\",
\"groupPolicy\": \"open\",
\"appId\": \"<App_ID>\",
\"appSecret\": \"<App_Secret>\"
}"'
重启网关(阶段8)
ssh root@<IP> 'systemctl --user restart openclaw-gateway.service'
查看日志
ssh root@<IP> 'journalctl --user -u openclaw-gateway.service --no-pager -n 30'
故障速查表
飞书相关
| 错误现象 | 可能原因 | 解决方案 |
|---|
| 机器人收到消息但不回复 | models 未配置 | 执行阶段4配置 models.providers |
| 日志显示 99991672 | 飞书 API 权限不足 | 飞书开放平台添加 im:message 等权限并重新发布 |
| "应用未建立长连接" | appId/appSecret 未正确写入 | 凭证必须写入 channels.feishu,不是环境变量 |
| 飞书连接后秒断 | Encrypt Key/Verification Token 不匹配 | 核对飞书开放平台的加密策略 |
| 搜索不到机器人 | 应用未发布 | 创建版本并发布 |
模型相关
| 错误现象 | 可能原因 | 解决方案 |
|---|
| "No API key found for provider" | models.providers 为空 | 执行阶段4配置模型 |
| "Embedded agent failed" | API Key 无效或代理地址错误 | 检查 baseUrl 和 apiKey |
| 模型回复乱码/格式错误 | api 字段选错 | Anthropic 用 anthropic-messages,OpenAI 用 openai-responses |
| "must NOT have additional properties" | 配置字段名错误 | 删除无效字段 |
| HTTP 404: Invalid URL /v1/v1/messages | baseUrl 多了 /v1 | baseUrl 填 https://域名,不加 /v1 |
服务相关
| 错误现象 | 可能原因 | 解决方案 |
|---|
| 网关启动失败 | 配置文件 JSON 语法错误 | node -e "JSON.parse(require('fs').readFileSync('/root/.openclaw/openclaw.json'))" |
| 网关启动超时 | 被禁用的插件仍在尝试连接 | 禁用不需要的插件 |
| SSH 远程命令 node 找不到 | nvm 未加载 | 命令前加远程执行前缀 |
日志关键字
| 关键字 | 含义 |
|---|
agent model: xxx/xxx | 模型配置已识别 |
feishu[default]: WebSocket client started | 飞书连接成功 |
[ws] ws client ready | WebSocket 就绪 |
listening on ws://0.0.0.0:18789 | 网关正在监听 |
received message from | 消息已收到 |
Embedded agent failed | 模型调用失败 |
Access denied + 99991672 | 飞书权限不足 |
No API key found | models.providers 配置有误 |
使用说明
- 先确认用户在哪个阶段或遇到什么错误
- 提供对应的命令模板或解决方案
- 所有远程命令都需要加 nvm 前缀