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 + WSL2 | Windows 主力机用户 | 兼容性更接近 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 status与openclaw 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"
}
}
频道配置
使用 Baileys 库,类似 WhatsApp Web:
# 启动网关
openclaw gateway
# 扫描二维码链接设备
openclaw channels pair whatsapp
配置:
{
"channels": {
"whatsapp": {
"enabled": true,
"dmPolicy": "owner-only"
}
}
}
Telegram
- 向 @BotFather 创建机器人
- 配置:
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "123456:ABC-DEF...",
"dmPolicy": "owner-only",
"ownerUserId": "your_user_id"
}
}
}
Discord
- 在 Discord Developer Portal 创建应用
- 启用 Message Content Intent 和 Server Members Intent
- 配置:
{
"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
| 特性 | OpenClaw | nanobot |
|---|---|---|
| 代码量 | ~430,000 行 | ~4,000 行 |
| 语言 | TypeScript | Python |
| 复杂度 | 高 | 低 |
| 功能丰富度 | 极高 | 基础 |
| Canvas | ✅ | ❌ |
| 语音交互 | ✅ | ❌ |
| 浏览器控制 | ✅ | ❌ |
| 多代理路由 | ✅ | ❌ |
| 适用场景 | 生产/企业 | 个人/研究 |