• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
思想人生从关注生活开始
博客园    首页    新随笔    联系   管理    订阅  订阅

从零部署 OpenClaw —— 实战:接入 WhatsApp + 创建自定义 Skill

关键词:快速上手|WhatsApp 集成|自定义 Skill|Web UI|扫码登录|本地开发

理论终需落地。本篇将带您完成一次完整的 OpenClaw 部署与扩展实战:

  1. 环境准备:安装 Node.js、pnpm、Docker
  2. 启动核心服务:配置并运行 OpenClaw
  3. 接入 WhatsApp:通过 Baileys 实现扫码登录
  4. 创建自定义 Skill:编写 weather/SKILL.md 查询天气
  5. 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:

  1. 在 Telegram 中向您的 Bot 发送 /start
  2. OpenClaw 自动创建会话 tg:123456789
  3. 发送“天气 上海”,同样触发 get_weather 技能

八、常见问题排查

image

九、下一步:构建您的专属助手

现在,您已掌握:

  • 部署 OpenClaw 核心
  • 接入真实通信渠道(WhatsApp/Telegram/Web)
  • 通过纯 Markdown 扩展 AI 能力

接下来,您可以:

  • 添加更多 Skill(如 restart_server.SKILL.md)
  • 配置远程节点(管理云服务器)
  • 启用记忆图谱(长期上下文)

下一篇预告:第 9 篇:长期记忆与会话同步 —— 如何让 AI “记住”跨天对话

您的 AI 助手,从此由您定义。若感兴趣可以浏览本书其他章节内容:

第 1 篇:OpenClaw 是什么?—— 工业级 AI 智能体网关的定位与愿景

第 2 篇:三位一体架构详解 —— 网关层、协议层、智能体系如何协同工作

第 3 篇:ACP 协议设计哲学 —— 为什么 OpenClaw 选择自研 Agent Client Protocol

第 4 篇:启动与配置体系 —— openclaw.mjs、config.yaml 与环境变量管理

第 5 篇:run.ts 上篇 —— 模型调度、账号轮询与上下文守护机制

第 6 篇:run.ts 下篇 —— 故障转移、重试策略与结果封装

第 7 篇:记忆系统基石 —— memory-search.ts 中的 RAG 配置解析与合并逻辑

第 8 篇:向量检索实战 —— OpenClaw 如何实现混合搜索(向量 + 全文)

第 9 篇:长期记忆与会话同步 —— 如何让 AI “记住”跨天对话

第 10 篇:exec.ts 上篇 —— 安全执行 Shell 命令的三层隔离模型

第 11 篇:exec.ts 下篇 —— 用户审批、后台任务与权限提升控制

第 12 篇:process.ts —— AI 如何像开发者一样管理后台进程

第 13 篇:安全边界设计 —— OpenClaw 如何防范 AI 滥用系统权限

第 14 篇:server-channels.ts —— 渠道插件生命周期管理器

第 15 篇:WhatsApp 深度集成 —— session.ts 与 Baileys 的健壮连接管理

第 16 篇:消息流入中枢 —— monitor-inbox.ts 如何解析、去重与防抖

第 17 篇:聊天 RPC 接口 —— chat.ts 中的历史查询、发送与中止逻辑

第 18 篇:Skills System —— 为什么“文档即工具”是 OpenClaw 的扩展灵魂

第 19 篇:可观测性工程 —— ws-log.ts 如何让 WebSocket 日志可读可用

第 20 篇:从零部署 OpenClaw —— 实战:接入 WhatsApp + 创建自定义 Skill

posted @ 2026-03-15 00:05  JackYang  阅读(2)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3