全部文章

OpenClaw - 个人 AI 助手网关

自托管的 AI 助手,连接 WhatsApp、Telegram、Discord 等平台,支持浏览器控制和语音交互

目录 43 节

OpenClaw - 个人 AI 助手网关

OpenClaw 是一个自托管的个人 AI 助手网关,将你常用的聊天应用(WhatsApp、Telegram、Discord、iMessage 等)连接到 AI 编程代理。前身为 Clawdbot / Moltbot。

核心特性

  • 多平台集成:WhatsApp、Telegram、Slack、Discord、Google Chat、Signal、iMessage、Microsoft Teams、WebChat
  • 本地优先:在自己的设备上运行,数据不离开你的控制
  • 浏览器控制:专用 Chrome 实例,支持截图、操作、上传
  • 语音交互:macOS/iOS/Android 支持语音唤醒和对话模式
  • Canvas:实时可视化工作区(A2UI)
  • 多代理路由:不同频道/账号路由到隔离的代理工作区
  • 技能系统:ClawHub 技能注册表,自动搜索和安装技能

快速开始

系统要求

  • Node.js ≥22
  • macOS、Linux 或 Windows(WSL2 推荐)
  • 支持 npm、pnpm 或 bun

部署方式怎么选

方式适合人群优点注意事项
原生 macOS / Linux自托管主力机用户守护进程、权限模型、浏览器控制体验最自然需要本机长期在线
Windows + WSL2Windows 主力机用户兼容性更接近 Linux,适合 CLI 与后台服务建议把工作目录放在 WSL 的 Linux 文件系统内
Docker想隔离依赖、方便迁移的人环境更干净,迁移和回滚方便桌面集成、浏览器控制和语音链路通常需要额外处理

Windows / WSL2 部署(推荐)

OpenClaw 官方 Windows 平台文档更偏向 WSL2 + Ubuntu 路线,因为守护进程、CLI 工具链、文件权限以及大多数自动化能力在 Linux 兼容层里更稳定。

1)安装 WSL2

在管理员 PowerShell 中执行:

wsl --install -d Ubuntu

安装完成后重启系统,并完成 Ubuntu 用户初始化。

2)启用 systemd

如果你希望 openclaw onboard --install-daemon 能更自然地管理后台服务,建议在 WSL2 中启用 systemd

编辑 /etc/wsl.conf

[boot]
systemd=true

然后在 Windows 中执行:

wsl --shutdown

重新打开 Ubuntu 终端使配置生效。

3)在 WSL2 内安装 OpenClaw

先确认 Node.js 22 已可用,再执行:

npx openclaw onboard

或者:

npm install -g openclaw
openclaw onboard --install-daemon

4)从 Windows 侧访问控制界面

优先使用:

openclaw dashboard

如果没有自动打开浏览器,就在 Windows 浏览器访问向导或日志中显示的本地地址。

5)WSL 部署实践建议

  • ~/.openclaw、工作区和缓存优先放在 Linux 文件系统中
  • 扫码配对频道时直接用 Windows 浏览器查看页面会更顺手
  • 遇到异常先用 openclaw gateway statusopenclaw doctor 检查状态
  • 如需访问 Windows 文件,再通过 /mnt/c/... 挂载访问,不建议把主工作目录直接放在 /mnt/c

安装(推荐使用向导)

npx openclaw onboard

向导会引导你完成:

  • 网关安装(launchd/systemd 用户服务)
  • 工作区设置
  • 频道配置
  • 技能安装

快速安装(TL;DR)

npm install -g openclaw
openclaw onboard

从源码安装(开发)

git clone https://github.com/openclaw/openclaw
cd openclaw
pnpm install
pnpm build

# 运行
pnpm openclaw gateway

配置

最小配置 ~/.openclaw/openclaw.json

{
  "model": {
    "provider": "anthropic",
    "model": "claude-opus-4.6-20250514"
  },
  "agents": {
    "defaults": {
      "systemPrompt": "你是 Molty,一只太空龙虾 AI 助手 🦞"
    }
  }
}

模型配置

Anthropic Claude(推荐)

订阅方式(OAuth):

openclaw onboard
# 选择 Anthropic Pro/Max 订阅

API Key 方式:

{
  "model": {
    "provider": "anthropic",
    "apiKey": "sk-ant-xxx",
    "model": "claude-opus-4.6-20250514"
  }
}

推荐使用 Opus 4.6 以获得更好的长上下文能力和提示注入抵抗。

OpenAI

{
  "model": {
    "provider": "openai",
    "apiKey": "sk-xxx",
    "model": "gpt-4o"
  }
}

本地模型

{
  "model": {
    "provider": "openai",
    "apiBase": "http://localhost:11434/v1",
    "apiKey": "ollama",
    "model": "qwen2.5:14b"
  }
}

频道配置

WhatsApp

使用 Baileys 库,类似 WhatsApp Web:

# 启动网关
openclaw gateway

# 扫描二维码链接设备
openclaw channels pair whatsapp

配置:

{
  "channels": {
    "whatsapp": {
      "enabled": true,
      "dmPolicy": "owner-only"
    }
  }
}

Telegram

  1. @BotFather 创建机器人
  2. 配置:
{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "123456:ABC-DEF...",
      "dmPolicy": "owner-only",
      "ownerUserId": "your_user_id"
    }
  }
}

Discord

  1. Discord Developer Portal 创建应用
  2. 启用 Message Content Intent 和 Server Members Intent
  3. 配置:
{
  "channels": {
    "discord": {
      "enabled": true,
      "botToken": "MTIzNDU2...",
      "dmPolicy": "owner-only",
      "ownerId": "your_user_id"
    }
  }
}

Slack

使用 Socket Mode,无需公网 URL:

{
  "channels": {
    "slack": {
      "enabled": true,
      "botToken": "xoxb-...",
      "appToken": "xapp-..."
    }
  }
}

iMessage(BlueBubbles,推荐)

需要 macOS 设备运行 BlueBubbles 服务器:

{
  "channels": {
    "bluebubbles": {
      "enabled": true,
      "url": "http://localhost:1234",
      "password": "your-password"
    }
  }
}

安全配置

DM 访问策略

默认行为:

  • 主会话(owner DM):完全访问,工具在主机上运行
  • 群组/其他用户:受限访问

配置选项:

{
  "agents": {
    "defaults": {
      "dmPolicy": "owner-only",
      "sandbox": {
        "mode": "non-main",
        "allowlist": ["bash", "read", "write", "edit"],
        "denylist": ["browser", "canvas", "nodes"]
      }
    }
  }
}

沙箱模式

为非主会话启用 Docker 沙箱:

{
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "non-main",
        "image": "openclaw-sandbox:latest"
      }
    }
  }
}

运行 openclaw doctor 检查安全配置。

浏览器控制

OpenClaw 可以控制专用的 Chrome/Chromium 实例:

{
  "browser": {
    "enabled": true,
    "executablePath": "/usr/bin/chromium",
    "userDataDir": "~/.openclaw/browser-profiles/default"
  }
}

代理可以:

  • 访问网页并截图
  • 填写表单
  • 点击按钮
  • 上传文件
  • 执行 JavaScript

Canvas(实时可视化)

A2UI 驱动的可视化工作区:

{
  "canvas": {
    "enabled": true,
    "port": 3000
  }
}

代理可以推送实时更新到 Canvas,用于:

  • 数据可视化
  • UI 原型
  • 交互式演示

语音交互

macOS 应用

# 下载并安装 OpenClaw.app
open https://github.com/openclaw/openclaw/releases

功能:

  • 语音唤醒("Hey Molty")
  • 按键对话(PTT)
  • 对话模式覆盖层
  • 菜单栏控制

iOS/Android 节点

通过 Bonjour 配对连接到网关:

# 在网关设备上
openclaw nodes pair

功能:

  • Canvas 渲染
  • 语音交互
  • 相机/屏幕录制
  • 位置服务

技能系统

ClawHub

技能注册表,代理可以自动搜索和安装:

{
  "skills": {
    "clawhub": {
      "enabled": true,
      "autoInstall": false
    }
  }
}

工作区技能

~/.openclaw/workspace/skills/ 创建自定义技能:

// skills/my-skill/index.ts
export default {
  name: "my-skill",
  description: "自定义技能",
  tools: [
    {
      name: "my_tool",
      description: "执行自定义操作",
      parameters: {
        type: "object",
        properties: {
          input: { type: "string" },
        },
      },
      execute: async (params) => {
        return `处理: ${params.input}`;
      },
    },
  ],
};

定时任务

Cron 任务

{
  "cron": {
    "enabled": true,
    "jobs": [
      {
        "name": "daily-summary",
        "schedule": "0 8 * * *",
        "action": "send",
        "channel": "telegram",
        "message": "总结昨天的活动"
      }
    ]
  }
}

Webhooks

{
  "webhooks": {
    "enabled": true,
    "port": 3001,
    "endpoints": [
      {
        "path": "/github",
        "action": "send",
        "channel": "telegram",
        "template": "GitHub 事件: {{event}}"
      }
    ]
  }
}

Tailscale 访问

自动配置 Tailscale Serve/Funnel:

{
  "gateway": {
    "tailscale": {
      "mode": "serve",
      "hostname": "openclaw"
    }
  }
}

访问:https://openclaw.tailnet-name.ts.net

远程网关

在 Linux VPS 上运行网关:

# VPS 上
openclaw gateway

# 本地通过 SSH 隧道连接
ssh -L 8080:localhost:8080 user@vps

或使用 Tailscale Funnel 公开访问。

Docker 部署

docker run -d \
  --name openclaw \
  -v ~/.openclaw:/root/.openclaw \
  -p 8080:8080 \
  ghcr.io/openclaw/openclaw:latest

Docker Compose:

services:
  openclaw:
    image: ghcr.io/openclaw/openclaw:latest
    container_name: openclaw
    volumes:
      - ~/.openclaw:/root/.openclaw
    ports:
      - "8080:8080"
    restart: unless-stopped

聊天命令

在聊天中发送:

  • /help - 显示帮助
  • /reset - 重置会话
  • /mode auto|suggest - 切换模式
  • /tools - 列出可用工具
  • /status - 显示网关状态
  • /ping - 测试连接

群组命令(仅所有者):

  • /activate - 激活群组
  • /deactivate - 停用群组
  • /queue on|off - 队列模式

macOS 应用(可选)

cd apps/macos
pnpm install
pnpm build

# 签名构建(需要开发者证书)
pnpm sign

功能:

  • 菜单栏控制
  • 语音唤醒/PTT
  • 对话模式
  • WebChat
  • 调试工具

故障排除

# 检查配置和安全
openclaw doctor

# 查看日志
openclaw logs

# 测试频道
openclaw channels test telegram

# 重启网关
openclaw gateway restart

开发频道

切换到 beta/dev 频道获取最新功能:

openclaw update --channel beta

频道:

  • stable - 稳定版本
  • beta - 测试版本
  • dev - 开发版本

架构

OpenClaw Gateway
├── Control Plane (WebSocket)
│   ├── Sessions
│   ├── Presence
│   ├── Config
│   └── Events
├── Channels
│   ├── WhatsApp (Baileys)
│   ├── Telegram (grammY)
│   ├── Discord (discord.js)
│   └── ...
├── Agent Runtime (Pi RPC)
│   ├── Tool Streaming
│   └── Block Streaming
└── Apps (Optional)
    ├── macOS
    ├── iOS
    └── Android

对比 nanobot

特性OpenClawnanobot
代码量~430,000 行~4,000 行
语言TypeScriptPython
复杂度
功能丰富度极高基础
Canvas
语音交互
浏览器控制
多代理路由
适用场景生产/企业个人/研究

参考链接

阅读建议
  • - 先读标题和摘要,再结合目录决定从哪个章节开始精读。
  • - 看到具体命令、配置或步骤时,尽量在自己的环境里同步验证。
  • - 如果你只是快速查资料,可先看目录和相关文档,再决定是否深入全文。
适合谁看
  • - 希望把零散经验整理成长期可复用工作流的人
  • - 正在使用 AI 工具、Agent 或自动化工作流的人
  • - 希望阅读时顺手建立自己的操作清单或收藏体系的人
执行前检查
  • - 先浏览标题、摘要和目录,带着问题阅读会更高效
  • - 确认模型供应商、API Key、CLI 工具链与本地资源是否已准备好
  • - 如果页面里提到相关文档,尽量一起打开对照,效果通常更完整
同类内容
← 上一篇nanobot - 超轻量级 AI 助手