土木人 OpenClaw 完全安装指南——从零到通过 WhatsApp 运行你的第一个 AI Agent
写给完全没接触过 AI Agent 的土木工程师。OpenClaw(原名 Clawdbot / Moltbot)是由 Peter Steinberger 开发的开源个人 AI 助手,GitHub 上已有 286,000+ Stars,是增长最快的开源项目之一。它通过 WhatsApp、Telegram、Slack 等聊天平台操作,能执行 Shell 命令、浏览器自动化、文件管理等任务。本文带你从零安装到跑通第一条消息。
预计耗时:10-30 分钟 | 难度:零基础 | 参考源:docs.openclaw.ai
一、环境准备
OpenClaw 是 TypeScript 编写的 Node.js 项目,不是 Python。安装前确认:
- Node.js ≥ 22(官方文档要求)
- npm 或 pnpm 包管理器
- 操作系统:macOS / Linux / Windows(推荐 WSL2)
- 一个 LLM API Key:Anthropic Claude(官方推荐)/ DeepSeek / OpenAI
- 一个聊天平台:WhatsApp、Telegram 或 Discord 任选
# 检查 Node.js 版本$ node --versionv22.x.x # 需要 ≥ 22# macOS 安装 Node.js:$ brew install node@22# Linux (Ubuntu/Debian):$ curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -$ sudo apt install -y nodejs
二、安装 OpenClaw
官方提供两种安装方式。推荐使用一键安装脚本:
$ curl -fsSL https://openclaw.ai/install.sh | bash
# 全局安装$ npm install -g openclaw@latest# 或用 pnpm:$ pnpm add -g openclaw@latest
也支持 Docker 部署:
$ docker pull openclaw/openclaw:latest$ docker run -d --name openclaw \-v ~/.openclaw:/root/.openclaw \openclaw/openclaw:latest
三、运行 Onboard 向导
安装后运行 onboard 向导,它会引导你完成 Gateway 配置、API Key 设置和消息平台对接:
$ openclaw onboard --install-daemon# 向导会引导你完成:# 1. 确认安全风险 → 选择 "Yes"# 2. 安装模式 → 选择 "QuickStart"(新手推荐)# 3. 选择 AI 模型提供商 → Anthropic / OpenAI / DeepSeek / 本地 Ollama# 4. 输入 API Key# 5. 选择消息平台 → WhatsApp / Telegram / Discord 等# 6. 平台配对(扫码或输入 Bot Token)# 7. 安装 Gateway 守护进程(launchd/systemd)# --install-daemon 会自动安装后台服务,开机自启
⚠️ 安全提醒:OpenClaw 能执行 Shell 命令和访问文件。官方和 CrowdStrike 均建议在独立服务器或 Docker 中运行,不要在包含敏感数据的个人电脑上部署。
四、配置模型(国产大模型)
OpenClaw 是模型无关的(model-agnostic)。配置文件在 ~/.openclaw/openclaw.json。 国内用户可在 models.providers 中添加 DeepSeek、通义千问等兼容 OpenAI API 的国产模型:
{"models": {"providers": {"deepseek": {"baseUrl": "https://api.deepseek.com/v1","apiKey": "sk-你的DeepSeek密钥","api": "openai-completions","models": [{"id": "deepseek-chat","name": "DeepSeek-V3","reasoning": true,"input": ["text"],"contextWindow": 131072,"maxTokens": 8192}]},"qwen": {"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1","apiKey": "sk-你的通义千问密钥","api": "openai-completions","models": [{"id": "qwen-max","name": "Qwen-Max","reasoning": true,"input": ["text"],"contextWindow": 131072,"maxTokens": 8192}]}}},"agents": {"defaults": {"model": {"primary": "deepseek/deepseek-chat"}}}}
修改 agents.defaults.model.primary 切换默认模型。格式为 provider/model-id,如 qwen/qwen-max。
五、启动 Gateway 并发送第一条消息
OpenClaw 的核心是一个 Gateway 进程——它是所有会话、路由和消息平台连接的控制面板,默认监听 ws://127.0.0.1:18789。
# 启动 Gateway(如果 onboard 时已安装 daemon 则自动运行)$ openclaw gateway --port 18789 --verbose# 检查状态$ openclaw status# 通过 CLI 直接发消息测试$ openclaw agent --message "你好,请简单介绍一下你自己"# 或向指定联系人发送$ openclaw message send --to +8613800138000 --message "Hello from OpenClaw"
如果你在 onboard 时配对了 WhatsApp 或 Telegram,现在直接打开聊天 App 给你的 Agent 发消息即可。
你: 帮我查一下今天的天气Agent: 正在查询...(调用浏览器工具获取天气信息)你: 帮我创建一个文件 report.md,内容是今天的工作总结模板Agent: ✅ 已创建 report.md你: /statusAgent: 📊 Model: deepseek-chat | Tokens: 1,204 | Session: active
六、安装 Skill(技能扩展)
Skill 是 OpenClaw 的能力扩展包。社区技能市场 ClawHub(clawhub.ai)上有大量社区贡献的 Skill。每个 Skill 本质上是一个包含 SKILL.md 的文件夹。
# 搜索 Skill$ npx clawhub@latest search email# 安装 Skill$ npx clawhub@latest install summarize# 查看已安装 Skill$ ls ~/.openclaw/skills/
也可以直接在聊天中告诉 Agent 你需要某个功能,如果 ClawHub 已启用,Agent 会自动搜索并安装合适的 Skill。
⚠️ Skill 安全:Cisco 安全团队曾发现恶意 Skill 进行数据窃取和 prompt injection。安装前务必审查 Skill 代码,可使用 Cisco Skill Scanner 扫描。
七、核心概念速查
Gateway(网关)
OpenClaw 的核心控制面板。单进程管理所有会话、路由和消息平台连接。macOS 用 launchd,Linux 用 systemd 运行守护进程。
Skill(技能)
Agent 的能力扩展。每个 Skill 是一个文件夹(含 SKILL.md),可从 ClawHub 安装或自己编写。类似手机 App 的概念。
Memory(记忆)
存储在 ~/.openclaw/ 的 Markdown 文件(MEMORY.md、SOUL.md 等)。Agent 跨会话记住你的信息——姓名、偏好、工作习惯等。用 Git 即可备份。
Heartbeat(心跳)
定时调度机制(默认 30 分钟),Agent 自动检查 HEARTBEAT.md 中的任务清单,无需你主动触发即可执行定时任务。
八、常见问题排查
安装和使用 OpenClaw 过程中会遇到各种问题。以下是社区反馈最多的坑,按出现频率排列。 遇到问题时,建议先运行 openclaw doctor 自动诊断。
8.1 安装阶段问题
❶ npm install 超时 / 依赖下载失败(国内用户最常见)
国内网络访问 npm 官方源速度极慢,经常卡在进度条不动。
解决:设置国内镜像源后重新安装:npm config set registry https://registry.npmmirror.comnpm install -g openclaw@latest
如果镜像源仍然卡住,可临时开代理:
macOS/Linux:export https_proxy=http://127.0.0.1:7890
Windows PowerShell:$env:https_proxy = "http://127.0.0.1:7890"
❷ Node.js 版本过低——各种莫名其妙的语法错误
OpenClaw 要求 Node.js ≥ 22。如果你使用 Node 18 或 16, 会遇到 SyntaxError、依赖安装失败等不明确的报错。
诊断:node --version
解决:推荐用 nvm 管理版本——nvm install 22 && nvm use 22, 然后清缓存重装:npm cache clean --force && npm install -g openclaw
❸ 安装后输入 openclaw 提示 "command not found"
npm 全局 bin 目录没有加入系统 PATH。
解决:先查路径:npm config get prefix, 然后将 <prefix>/bin 加入 PATH:
macOS/Linux 在 ~/.zshrc 或 ~/.bashrc 中添加:export PATH="$(npm config get prefix)/bin:$PATH"
Windows:将 %AppData%\npm 添加到系统环境变量 PATH 中,然后重启 PowerShell。
❹ 一键安装脚本卡住不动(curl | bash 无响应)
安装脚本会启动 TUI 终端界面。在无头服务器(headless VPS)或某些终端模拟器中 TUI 会卡死。
解决:Ctrl+C 退出,改用 npm 手动安装:npm install -g openclaw, 然后运行openclaw doctor --non-interactive完成初始配置。
也可以加 --verbose 获取更多信息:curl -fsSL https://openclaw.ai/install.sh | bash -s -- --verbose
❺ Linux 缺少编译工具——原生模块构建失败
很多 npm 依赖需要编译原生 C++ 模块。缺少 build-essential 会导致安装失败或运行时崩溃。
解决:
Debian/Ubuntu:sudo apt install build-essential git python3
Fedora/RHEL:sudo dnf install gcc gcc-c++ make git
❻ Windows 提示找不到 git
OpenClaw 安装过程需要 git。Windows 用户需要先安装 Git for Windows (git-scm.com),安装时勾选 "Add to PATH",然后重启 PowerShell 再运行安装脚本。
❼ onboard 向导后 openclaw.json 损坏或不完整
Onboard 向导有时不会填写所有必要字段,导致后续各种诡异报错。
诊断:python3 -m json.tool ~/.openclaw/openclaw.json (检查 JSON 语法)
解决:运行openclaw doctor --fix自动修复。如果问题严重,备份旧配置后重新 onboard:cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak && openclaw onboard
8.2 Gateway 网关问题
❶ 端口冲突——EADDRINUSE / "another gateway instance is already listening"
Gateway 默认占用 18789 端口。如果端口被其他程序占用,启动会失败。
诊断:
macOS/Linux:lsof -i :18789
Windows:netstat -ano | findstr :18789
解决:停止占用进程,或换端口:openclaw config set gateway.port 18790
❷ 残留 PID 锁文件——Gateway 崩溃后无法重启
Gateway 异常退出时会残留 ~/.openclaw/gateway.pid 锁文件,新进程拒绝启动。
解决:先确认没有真正运行的进程:ps aux | grep openclaw, 确认无进程后删除锁文件:rm ~/.openclaw/gateway.pid, 然后重启。
❸ systemd / launchd 服务启动失败——环境变量丢失
手动运行正常,但作为系统服务启动失败。最常见原因是 HOME 和 API Key 环境变量没传给服务进程。
解决(Linux systemd):在服务单元文件中显式设置:Environment=HOME=/home/youruserEnvironment=OPENCLAW_LOG_LEVEL=info
解决(macOS launchd):确保 plist 文件中包含正确的 EnvironmentVariables 字典。
❹ WebSocket 1006 错误——Gateway 启动后立即崩溃
通常是某个插件或 Skill 加载时崩溃导致。
解决:在配置中临时禁用非核心插件,确认 Gateway 稳定后逐个启用,定位问题插件。 用 openclaw logs --follow 查看崩溃时的详细日志。
❺ "Gateway start blocked: set gateway.mode=local"
Gateway 模式未设为本地。
解决:在 openclaw.json 中设置 gateway.mode 为 "local",或运行:openclaw configure
8.3 模型与 API 问题
❶ 401 Unauthorized——API Key 错误或过期
最常见的模型调用失败。复制 Key 时多了空格、Key 过期、或填错了 provider 都会导致 401。
解决:去模型提供商控制台(如 platform.deepseek.com)重新生成 Key,粘贴时确保无多余空格。 用openclaw models status检查认证状态。
❷ 429 Too Many Requests——频率限制
发送请求太频繁,被模型提供商限流。Anthropic 用户还可能遇到 "extra usage required for long context"。
解决:等待一段时间后重试。长期方案:配置 fallback 模型(多个 provider 自动切换), 或调低并发设置。Anthropic 长上下文问题需要在 Anthropic 控制台开启 Extra Usage 或禁用 context1m 参数。
❸ "Model not allowed"——模型白名单未更新
添加新模型后忘记将其加入 agents.defaults.models 白名单。当该列表非空时,只有列表中的模型可以使用。
解决:openclaw config get agents.defaults.models检查白名单,添加新模型 Key 即可。
❹ "All models failed"——所有模型均失败
通常是多个 provider 的 Key 都有问题,或网络不通。
解决:运行openclaw models status逐一检查每个 provider 的连接状态。国内用户优先确保 DeepSeek(国内直连)可用作 fallback。
❺ 国产模型调用超时——baseUrl 或网络问题
确认 baseUrl 填写正确(注意末尾不要多 /),确认 API Key 对应的是正确的平台。 常见正确地址:
DeepSeek:https://api.deepseek.com/v1
通义千问:https://dashscope.aliyuncs.com/compatible-mode/v1
Kimi:https://api.moonshot.cn/v1
GLM-4:https://open.bigmodel.cn/api/paas/v4
8.4 消息平台连接问题
❶ WhatsApp 频繁断线 / 重复要求扫码
WhatsApp QR Code 配对是最不稳定的连接方式,会话与手机登录状态绑定。
解决:运行openclaw channels status --probe检查连接状态。如果凭证损坏,清除凭证目录后重新配对:rm -rf ~/.openclaw/channels/whatsapp/ && openclaw platform pair whatsapp
注意:国内使用 WhatsApp 需要代理网络环境。
❷ Telegram Bot 在线但不回复消息
三个常见原因:
① 隐私模式(Privacy Mode)开启——Bot 在群组中只能收到 @mention 或 / 命令。 在 BotFather 中发送 /setprivacy 关闭。
② Bot Token 错误或过期——日志中会出现 401 错误。
③ 网络问题——服务器无法访问 api.telegram.org, 用 curl 测试:curl -s https://api.telegram.org/bot<TOKEN>/getMe
❸ Discord Bot 在线但不响应
最常见原因:在 Discord 开发者后台未开启 "Message Content Intent"(Privileged Gateway Intents 下)。 没有这个权限,Bot 无法读取消息内容。
另外检查:是否设置了 requireMention,以及用户是否完成了 DM 配对 (openclaw pairing list discord)。
❹ 飞书 / 钉钉 / 企业微信不响应(国内用户)
① 确认 onboard 时域名选择了中国区域(feishu.cn 而非 larksuite.com)。
② 确认应用权限全部勾选并发布了版本(飞书需要发布才生效)。
③ 重启 Gateway 后用openclaw channels test feishu测试连接。
❺ 消息已连接但收不到回复——配对 / 白名单问题
OpenClaw 的 DM 需要发送者先完成配对(pairing)。如果设置了 allowFrom 白名单, 白名单外的用户消息会被静默丢弃。
诊断:openclaw pairing list --channel <channel>检查待批准的配对请求,openclaw logs --follow查看是否有 "pairing request" 或 "blocked" 日志。
8.5 升级与配置兼容性
❶ 升级后出现 "unsupported schema node" / 配置报错
OpenClaw 版本更新可能改变配置 Key 名称。升级后应立即运行openclaw doctor检查配置兼容性。
建议:升级前备份:cp -r ~/.openclaw ~/.openclaw.backup.$(date +%Y%m%d)
优先用 CLI 修改配置(openclaw config set/get)而非手动编辑 JSON,CLI 会自动处理 schema 变更。
❷ 修改配置后不生效——哪些需要重启?
模型参数微调、超时设置等可以热重载。但以下改动必须重启 Gateway: 添加/删除 model provider、修改端口/绑定设置、改变 agent 结构、认证配置变更。
不确定时就重启:openclaw gateway restart
❸ 本地 Ollama 模型调用失败
模型名称必须与 provider 配置中的完全一致(区分大小写)。 用 ollama list确认已下载的模型名称,确保和 openclaw.json 中的 model id 完全匹配。
8.6 记忆丢失与上下文重置
Agent 好像忘记了之前说过的话
OpenClaw 的记忆分两层:① 会话内聊天记录(临时,重启 Gateway 即丢失); ② 持久记忆文件(~/.openclaw/workspace/MEMORY.md 等,跨会话保留)。
长对话中,上下文窗口会被压缩(compaction),早期信息可能被丢弃。
解决:重要信息主动让 Agent 写入 MEMORY.md。使用多个小的主题记忆文件(memory/*.md) 比一个巨大的 MEMORY.md 检索效果更好。
九、诊断工具速查
遇到任何问题,按以下顺序排查:
# 1. 一键诊断(最有用,输出可直接发到社区求助)$ openclaw status --all# 2. 自动修复常见问题(权限、缺失目录、配置错误)$ openclaw doctor --fix# 3. 实时查看日志(复现问题时开着)$ openclaw logs --follow# 4. 检查 Gateway 状态$ openclaw gateway status# 5. 检查模型认证状态$ openclaw models status# 6. 检查消息平台连接$ openclaw channels status --probe# 7. 检查定时任务$ openclaw cron status# 8. 开启 debug 级别日志(详细排查用)$ OPENCLAW_LOG_LEVEL=debug openclaw gateway run# 9. 聊天中使用 /debug 命令(需先在配置中设置 commands.debug: true)# /debug show ← 查看运行时配置# /debug set key=value ← 临时修改配置# 10. 清除缓存(万能重置)$ openclaw cache clear --all
⚠️ 求助前请准备:OS 版本、Node.js 版本(node --version)、OpenClaw 版本(openclaw --version)、 openclaw status --all 输出、以及 debug 级别日志片段。 发到 GitHub Discussions 或 Discord 社区,越具体越快得到回复。
参考链接
- GitHub 仓库:github.com/openclaw/openclaw(286K+ Stars)
- 官方文档:docs.openclaw.ai
- 官方中文文档:docs.openclaw.ai/zh-CN
- 官方 FAQ:docs.openclaw.ai/zh-CN/help/faq
- 官方故障排查:docs.openclaw.ai/gateway/troubleshooting
- Skill 市场:clawhub.ai
- GitHub Discussions(提问):github.com/openclaw/openclaw/discussions
- Discord 社区:discord.com/invite/clawd