从零部署 OpenClaw —— 实战:接入 WhatsApp + 创建自定义 Skill
关键词:快速上手|WhatsApp 集成|自定义 Skill|Web UI|扫码登录|本地开发
理论终需落地。本篇将带您完成一次完整的 OpenClaw 部署与扩展实战:
- 环境准备:安装 Node.js、pnpm、Docker
- 启动核心服务:配置并运行 OpenClaw
- 接入 WhatsApp:通过 Baileys 实现扫码登录
- 创建自定义 Skill:编写
weather/SKILL.md查询天气 - Web UI 测试:扫码绑定、发送指令、验证结果
无论您是开发者、运维还是技术爱好者,只需 30 分钟,即可拥有一个可对话、可执行、可扩展的 AI 助手。
一、环境准备
系统要求
- Linux / macOS(Windows WSL2 支持)
- Node.js ≥ 20(推荐 20.12+)
- pnpm ≥ 8
- Docker ≥ 24.0(用于沙箱执行)
安装依赖
# 1. 安装 Node.js(以 macOS 为例)
brew install node@20
echo 'export PATH="/opt/homebrew/opt/node@20/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
# 2. 安装 pnpm
npm install -g pnpm
# 3. 安装 Docker Desktop 并启动
# https://www.docker.com/products/docker-desktop/
验证:
node -v→v20.x,pnpm -v→8.x,docker --version→24.x
二、部署 OpenClaw 核心
1. 克隆仓库
git clone https://github.com/your-org/openclaw.git
cd openclaw
2. 安装依赖
pnpm install
3. 初始化配置
cp config.example.yaml config.yaml
4. 启用多渠道(可选)
编辑 config.yaml,启用 WhatsApp 和 Telegram:
channels:
whatsapp:
enabled: true
# accountSid 和 authToken 留空,使用 Baileys 直连(无需 Twilio)
telegram:
enabled: true
botToken: "YOUR_TELEGRAM_BOT_TOKEN" # 从 @BotFather 获取
web:
enabled: true
port: 8080
注意:OpenClaw 默认使用 Baileys 直连 WhatsApp,无需 Twilio 费用。
三、启动服务
pnpm start
首次启动将:
- 扫描
skills/目录(初始为空) - 启动 WebSocket 服务(Web UI)
- 监听 WhatsApp 连接(等待扫码)
终端输出:
OpenClaw started on http://localhost:8080
Channels: web (active), whatsapp (waiting for login)
Skills loaded: 0
四、接入 WhatsApp:扫码登录
1. 访问 Web UI
打开浏览器:http://localhost:8080
2. 绑定 WhatsApp
- 点击左侧边栏 “Connect WhatsApp”
- 页面显示 QR 码(由 Baileys 动态生成)
3. 手机操作
- 打开 WhatsApp → 设置 → Linked Devices → Link a Device
- 扫描页面 QR 码
4. 成功连接
- 终端日志:
WhatsApp connected for wa:+1234567890 - Web UI 自动跳转至聊天界面
注意:若提示“Too many devices”,请先在手机端移除旧链接设备。
五、开发第一个 Skill:查询天气
我们将创建一个无需 API Key 的本地天气技能(使用 curl wttr.in)。
1. 创建技能目录
mkdir -p skills/weather
2. 编写 SKILL.md
nano skills/weather/SKILL.md
内容如下:
---
name: get_weather
description: 查询指定城市的当前天气
parameters:
- name: city
type: string
required: true
description: 城市名(英文,如 'Shanghai')
dependencies:
- type: command
name: curl
os: ["linux", "darwin"]
examples:
- input: "今天上海天气如何?"
args: { city: "Shanghai" }
---
## 执行逻辑
```bash
curl -s "wttr.in/{{ city }}?format=3"
数据来源:wttr.in(开源天气服务)
### 3. 保存即生效
- OpenClaw 开发模式自动热重载
- 终端日志:
```log
Loaded new skill: get_weather
六、Web UI 测试端到端流程
1. 发送指令
在 Web UI 聊天框输入:
“今天北京天气如何?”
2. 观察审批流程
- AI 识别需调用
get_weather技能 - 弹出审批卡片:
[?] 执行命令: curl -s "wttr.in/Beijing?format=3" [Approve] [Deny]
3. 点击 Approve
- OpenClaw 在 Docker 沙箱中执行命令
- 返回结果:
Beijing: +22°C
4. 验证日志(终端)
→ chat.sendMessage (web_user123)
→ tool.call.request (runId=r-abc) → get_weather
← tool.call.result [820ms] ✓
全程无需代码重启,文档即功能!
七、扩展:启用 Telegram(可选)
若已配置 Telegram Bot Token:
- 在 Telegram 中向您的 Bot 发送
/start - OpenClaw 自动创建会话
tg:123456789 - 发送“天气 上海”,同样触发
get_weather技能
八、常见问题排查

九、下一步:构建您的专属助手
现在,您已掌握:
- 部署 OpenClaw 核心
- 接入真实通信渠道(WhatsApp/Telegram/Web)
- 通过纯 Markdown 扩展 AI 能力
接下来,您可以:
- 添加更多 Skill(如
restart_server.SKILL.md) - 配置远程节点(管理云服务器)
- 启用记忆图谱(长期上下文)
下一篇预告:第 9 篇:长期记忆与会话同步 —— 如何让 AI “记住”跨天对话
您的 AI 助手,从此由您定义。若感兴趣可以浏览本书其他章节内容:
浙公网安备 33010602011771号