OpenClaw 完全指南 — 个人 AI 助手
文档版本:v3.0 | 对应 OpenClaw:latest | 最后更新:2026-03-24
项目定位:OpenClaw 是一个运行在自有设备上的个人 AI 助手,支持 WhatsApp、Telegram、Discord、飞书等 20+ 消息渠道,能听会说,可在 macOS/iOS/Android 上运行,支持 AI 驱动的可视化 Canvas 工作区。
一、项目概述
1.1 什么是 OpenClaw
OpenClaw 是一个本地优先的个人 AI 助手框架,其核心理念是将 AI 能力完全掌控在用户自己的设备上。与依赖云端服务的 AI 产品不同,OpenClaw 的 Gateway 守护进程运行在你的电脑、服务器或 VPS 上,所有对话数据、工具执行和自动化工作流都在本地处理,只有模型推理请求才会发送到外部 API。
这种架构带来了几个关键优势:
数据主权:消息、文件、工具调用记录全部存储在 ~/.openclaw/ 目录下,不经过第三方服务器中转。你甚至可以离线运行(配合 Ollama 等本地模型)。
多渠道统一:无论用户通过哪个平台联系你——微信、Telegram、飞书、Discord——对话都汇聚到同一个 AI 助手,实现真正的"一个 AI,多个身份"体验。
工具扩展性:Skills 系统让 AI 能够调用任意 Shell 命令、浏览器自动化、文件系统操作、PDF 分析、图片处理等。OpenClaw 本身是一个工具执行平台,大模型只是"大脑"。
跨设备协同:通过设备节点配对(macOS/iOS/Android),你可以在手机上语音唤醒 AI、在电脑上让它操控浏览器,所有设备共享同一个 AI 助手。
1.2 核心价值主张
| 维度 | OpenClaw | 其他 AI 产品 |
|---|---|---|
| 数据存储 | 本地(你掌控) | 云端(平台掌控) |
| 接入渠道 | 20+ 平台统一管理 | 通常单一平台 |
| 工具执行 | 本地 Shell、文件、浏览器 | 受限 API |
| 运行位置 | 自有设备(无月费) | 订阅制云服务 |
| 自动化 | Cron、Webhook、心跳主动推送 | 有限 |
| 定制化 | 完全开源,可自建 Skills | 黑盒 |
1.3 与其他 AI 助手的对比
vs ChatGPT / Claude Web 版:
OpenClaw 本质上是不同的东西。ChatGPT/Claude 是"对话机器",而 OpenClaw 是"AI 操作系统"。你可以把 OpenClaw 理解为一个 24 小时在线的 AI 服务端,它接收消息、调用工具、执行任务、自动巡逻——然后把结果推送给你。
vs Pi.ai / Replika:
这些是消费级对话产品,主打情感陪伴。OpenClaw 是面向技术用户的个人工具,强调的是完成任务而非陪伴聊天。
vs Zapier + AI:
Zapier 是规则驱动的自动化平台。OpenClaw 的自动化是 LLM 驱动的——你可以让 AI 自己判断"今天有什么新闻值得关注的",而不是设定一堆 if-then 规则。
vs 个人微信/QQ 机器人框架:
这些框架通常是纯消息中转,没有 AI 推理能力。OpenClaw 在消息之上构建了完整的 Agent 系统、Session 管理、工具调用和技能体系。
1.4 支持的渠道详解
OpenClaw 支持的渠道按使用场景分为以下几类:
1. 即时通讯类
| 渠道 | 接入方式 | 特点 | 推荐场景 |
|---|---|---|---|
| Telegram | Bot Token | 最简单,支持话题线程 | 首选渠道,配置最省心 |
| Discord | Bot Token | 支持服务器/频道/线程 | 多人社群,开发者社区 |
| QR 码链接 | 需手机在线 | 国际用户必备 | |
| Signal | 手动配置 | 隐私最强 | 高隐私需求 |
| iMessage | macOS Bridge | 无需额外账号 | macOS 用户专属 |
2. 团队协作类
| 渠道 | 接入方式 | 特点 | 推荐场景 |
|---|---|---|---|
| 飞书 | 长连接/Webhook | MCP 完整集成,企业级 | 国内企业首选 |
| Slack | Webhook | 多工作区支持 | 国际化团队 |
| Microsoft Teams | Webhook | 企业集成 | 微软生态团队 |
| 钉钉 | 长连接 | 一键创建,零配置 | 阿里系企业 |
| 企业微信 | 长连接 | 文档 MCP,智能表格 | 腾讯系企业 |
| Matrix | WebSocket | 开源去中心化 | 自托管团队 |
3. 社交与其他类
| 渠道 | 特点 | 推荐场景 |
|---|---|---|
| LINE | 亚洲流行 | 台湾/日本用户 |
| Twitch | Twitch 聊天集成 | 直播互动 |
| Nostr | 去中心化社交 | 加密货币圈 |
| WebChat | 嵌入式网页聊天 | 自建网站 |
| BlueBubbles | iOS 替代 iMessage | macOS+iOS 混合 |
| Nextcloud Talk | 自建云盘集成 | 自托管用户 |
| Synology Chat | NAS 集成 | Synology 用户 |
1.5 项目信息
| 属性 | 值 |
|---|---|
| GitHub | https://github.com/openclaw/openclaw |
| 官方文档 | https://docs.openclaw.ai/ |
| ClawHub 市场 | https://clawhub.ai/(国际) |
| 国内技能市场 | https://skillhub.tencent.com/ |
| Discord 社区 | https://discord.gg/clawd |
| 协议 | MIT |
| 语言 | TypeScript / Node.js |
| 推荐环境 | Node 24(推荐)或 Node 22.16+ |
| 代码规模 | 活跃维护中,主分支持续更新 |
1.6 支持的平台
| 平台 | 状态 | Voice Wake | Talk Mode | 推荐指数 |
|---|---|---|---|---|
| macOS | ✅ | ✅ | ✅ | ⭐⭐⭐⭐⭐ |
| Linux | ✅ | ❌ | ❌ | ⭐⭐⭐⭐ |
| Windows 原生 | ✅ | ❌ | ❌ | ⭐⭐⭐ |
| Windows WSL2 | ✅ | ✅ | ✅ | ⭐⭐⭐⭐ |
| VPS(云服务器) | ✅ | ❌ | ❌ | ⭐⭐⭐⭐ |
| Docker | ✅ | ❌ | ❌ | ⭐⭐⭐ |
| Android | ✅ | ❌ | ✅ | ⭐⭐⭐⭐ |
| iOS | ✅ | ✅ | ❌ | ⭐⭐⭐⭐ |
macOS 推荐理由:唯一完整支持 Voice Wake(语音唤醒)和 Talk Mode(连续对话)的平台,配合官方 App 使用体验最佳。
二、安装与快速开始
2.1 各平台详细安装步骤
2.1.1 macOS 安装(推荐)
macOS 是 OpenClaw 的最佳体验平台,支持完整的语音交互能力。
方式一:Homebrew(推荐)
# 安装 Homebrew(如果未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 添加 OpenClaw 仓库
brew tap openclaw/openclaw
# 安装 OpenClaw
brew install openclaw
# 启动后台服务
brew services start openclaw
# 验证安装
openclaw -v
方式二:官方安装脚本
curl -fsSL https://openclaw.ai/install.sh | bash
方式三:npm 全局安装
npm install -g openclaw@latest
# 或
pnpm add -g openclaw@latest
注意:npm 安装后需要手动配置 PATH,并将 OpenClaw 添加为开机自启动服务。
macOS Voice Wake 配置:
- 安装 OpenClaw macOS App(从官网下载
.dmg) - 系统设置 → 隐私与安全 → 麦克风 → 允许 OpenClaw
- 首次运行时在 App 内完成设备配对
- 系统设置 → OpenClaw → 启用 Voice Wake,设置唤醒词
2.1.2 Linux 安装(Debian/Ubuntu)
# Node.js 24(推荐)
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt-get install -y nodejs
# 或使用 nvm 管理多版本
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
nvm install 24
nvm use 24
# 安装 OpenClaw
npm install -g openclaw@latest
# 初始化 systemd 用户服务(开机自启)
openclaw onboard --install-daemon
# 启动 Gateway
openclaw gateway start
# 检查状态
openclaw gateway status
WSL2 特殊说明:WSL2 中安装 OpenClaw 可以获得接近 macOS 的体验(Voice Wake 除外),但需要注意:
- WSL2 与 Windows 共享网络,建议在
.wslconfig中配置端口转发 - Docker 桌面版已集成 WSL2 支持,Docker 沙箱可以正常工作
- 浏览器自动化需要 Windows 端的 Chrome/Firefox,可配合 Chrome Remote Debugging
# ~/.wslconfig
[wsl2]
localhostForwarding=true
nestedVirtualization=true
2.1.3 Windows 安装
方式一:WSL2(强烈推荐)
WSL2 是 Windows 上运行 OpenClaw 的最佳方案,可以获得完整的 Linux 体验。
# 1. 以管理员身份打开 PowerShell,安装 WSL2
wsl --install
# 2. 重启后设置 Ubuntu 用户
wsl -d Ubuntu
# 3. 在 WSL2 内部安装 Node.js 和 OpenClaw
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt-get install -y nodejs
npm install -g openclaw@latest
openclaw onboard --install-daemon
方式二:PowerShell 原生安装
# 以管理员身份打开 PowerShell
iwr -useb https://openclaw.ai/install.ps1 | iex
⚠️ 原生 Windows 版本部分功能受限(如信号处理、Unix socket),推荐优先使用 WSL2。
方式三:Docker Desktop
# 确保已启用 WSL2 后端
docker run -d \
--name openclaw \
-p 18789:18789 \
-v ~/.openclaw:/home/appuser/.openclaw \
ghcr.io/openclaw/openclaw:latest
2.1.4 云服务器(VPS)部署
在云服务器上部署 OpenClaw,可以实现 24 小时运行,适合需要远程访问的场景。
腾讯云/阿里云部署注意事项:
- 安全组配置:开放端口 18789(Gateway),如使用 Funnel 模式还需开放 443/8443
- Tailscale 配合:推荐安装 Tailscale 实现加密隧道,避免直接暴露端口
- 内存要求:至少 1GB RAM,推荐 2GB+(含 Docker 沙箱)
- Node 版本:确保使用 Node 24,可通过
nvm管理
# SSH 登录到 VPS 后
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt-get install -y nodejs git
npm install -g openclaw@latest
openclaw onboard --install-daemon
2.1.5 Docker 沙箱部署
Docker 方式适合想要完全隔离运行环境的用户。
# 方式一:使用官方镜像
docker pull ghcr.io/openclaw/openclaw:latest
# 方式二:使用 docker-compose(推荐,可配置持久化)
cat > docker-compose.yml << 'EOF'
services:
openclaw:
image: ghcr.io/openclaw/openclaw:latest
container_name: openclaw
ports:
- "18789:18789"
volumes:
- ~/.openclaw:/home/appuser/.openclaw
- /var/run/docker.sock:/var/run/docker.sock # 沙箱用
environment:
- OPENCLAW_SANDBOX=1
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
restart: unless-stopped
networks:
- openclaw-net
networks:
openclaw-net:
driver: bridge
EOF
docker-compose up -d
2.2 快速开始
# 1. 安装完成后,运行引导向导(交互式)
openclaw onboard --install-daemon
# 2. 在引导过程中,你将配置:
# - 选择要接入的消息渠道(Telegram/飞书/等)
# - 配置 AI 模型(Anthropic/OpenAI 等)
# - 设置访问认证(Token 或密码)
# - 安装需要的 Skills
# 3. 验证运行状态
openclaw gateway status
# 4. 查看日志(排查问题时使用)
openclaw logs --follow
# 5. 打开 Web 控制台
openclaw dashboard
# 然后浏览器访问 http://127.0.0.1:18789
# 6. 查看版本
openclaw -v
2.3 系统依赖
| 依赖 | 要求 | 说明 |
|---|---|---|
| Node.js | Node 24(推荐)或 Node 22.16+ | 推荐使用 nvm 管理多版本 |
| npm / pnpm / bun | 任选其一 | pnpm 推荐(更快、更省空间) |
| Git | 最新稳定版 | 源码安装需要 |
| Docker | Docker 20.10+(可选) | 沙箱功能需要 |
| Tailscale | 最新版(可选) | 远程访问需要 |
| 系统内存 | 1GB+(基础)/ 2GB+(含沙箱) | - |
2.4 API Key 准备
OpenClaw 本身免费,但调用大模型需要用户自己准备 API Key。以下是推荐的模型提供商:
| 提供商 | API 类型 | 推荐模型 | 获取地址 |
|---|---|---|---|
| Anthropic | API Key | claude-opus-4-6, claude-sonnet-4-7 | console.anthropic.com |
| OpenAI | API Key | gpt-4o, gpt-4.5 | platform.openai.com |
| Google AI | API Key | gemini-2-5-pro, gemini-2-5-flash | aistudio.google.com |
| DeepSeek | API Key | deepseek-chat | platform.deepseek.com |
| MiniMax | API Key | MiniMax(国内合规) | minimax.io |
| Ollama | 本地(免费) | llama3.2, qwen2.5 | ollama.com |
2.5 首次运行配置向导详解
openclaw onboard 是 OpenClaw 提供的交互式配置向导,会逐步引导你完成以下配置:
第一步:基础配置
- 选择安装方式(全局安装 / 源码 / Docker)
- 设置 Gateway 端口(默认 18789)
- 选择绑定方式(本地 / Tailscale / 公网)
第二步:渠道配置
- 选择要启用的消息渠道
- 输入各渠道所需的凭证(Bot Token / App ID 等)
- 配置 DM 访问策略(pairing / allowlist / open)
第三步:模型配置
- 选择主模型提供商
- 输入 API Key(或进行 OAuth 授权)
- 配置备用模型列表(故障转移)
第四步:Skills 安装
- 浏览推荐 Skills
- 从 ClawHub 安装常用技能包
- 配置技能所需的环境变量
第五步:服务启动
- 安装 systemd 用户服务(Linux/macOS)
- 验证所有配置
- 打开控制台确认运行状态
2.6 常见安装问题及解决方案
| 问题 | 原因 | 解决方案 |
|---|---|---|
EACCES: permission denied |
npm 全局目录无写权限 | 使用 sudo 或配置 npm prefix |
port 18789 already in use |
已有进程占用端口 | openclaw gateway stop 后重试 |
| Node 版本不兼容 | Node < 22.16 | 升级到 Node 24:nvm install 24 && nvm use 24 |
| Docker 构建 OOM | 内存不足 | 分配更多内存(至少 2GB)或用 SWAP |
| 引导向导卡住 | 网络超时或配置错误 | openclaw doctor --fix 自动诊断 |
cannot find module xxx |
依赖未安装 | 进入目录运行 npm install |
| macOS 无法打开 App | 未授权开发者 | 系统设置 → 隐私与安全 → 仍要打开 |
| Android 配对失败 | 设备不在同一网络 | 确保手机和 Gateway 在同一局域网,或用 Tailscale |
| Windows Docker 挂载失败 | 路径格式问题 | WSL2 下使用 Linux 路径格式 |
| 沙箱镜像构建失败 | Docker 版本过旧或网络问题 | 升级 Docker Desktop,检查网络 |
| 飞书插件安装失败 | Node 版本或依赖问题 | npx @larksuite/openclaw-lark install --verbose 排查 |
三、架构与核心概念
3.1 整体架构
OpenClaw 采用单 Gateway 守护进程 + 多客户端 WebSocket 连接的现代分布式架构。Gateway 是整个系统的核心,它负责任务调度、消息路由、工具执行和会话管理。
┌──────────────────────────────────────────────────────┐
│ 消息渠道层 │
│ WhatsApp / Telegram / Discord / 飞书 / Slack 等 │
│ ──────────────────────────────────────────────── │
│ 各渠道 SDK 与 Gateway 之间的连接由渠道适配器管理 │
└────────────────────────┬─────────────────────────────┘
│
┌────────────────────────▼─────────────────────────────┐
│ Gateway 守护进程 (openclaw gateway) │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ WebSocket 控制平面 (typed RPC API) │ │
│ │ ─────────────────────────────────────── │ │
│ │ /v1/* REST API │ │
│ │ /tools/invoke (工具调用) │ │
│ │ /api/channels/* (渠道管理) │ │
│ │ /api/sessions/* (会话管理) │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 事件总线 │ │ 会话管理 │ │ 定时调度 │ │
│ │ agent │ │ sessions │ │ cron │ │
│ │ chat │ │ │ │ │ │
│ │ presence │ │ │ │ │ │
│ │ health │ │ │ │ │ │
│ │ heartbeat│ │ │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 模型路由 │ │ 故障转移 │ │ 工具执行 │ │
│ │ (router) │ │(failover)│ │(sandbox) │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└────────────────────────┬─────────────────────────────┘
│
┌────────────────┼────────────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌──────────┐
│macOS App│ │ CLI │ │ Web UI │
└─────────┘ └─────────┘ └──────────┘
│ │ │
└────────────────┼────────────────┘
│
WebSocket (ws://host:18789)
架构要点解读:
控制平面:Gateway 通过 WebSocket 提供双向通信,所有客户端(CLI、Web UI、macOS App)都通过这个通道与 Gateway 通信。这意味着无论你在哪里(本地或远程),只要能访问 Gateway 的 WebSocket,就能控制 AI 助手。
渠道适配器:每条消息渠道(飞书/Telegram/Discord)对应一个适配器进程,负责与外部服务建立长连接或接收 Webhook,将消息转换为统一格式后送入 Gateway。
事件总线:OpenClaw 内部有一套发布-订阅机制,所有组件(Agent、会话、定时器、渠道)通过事件总线异步通信。
会话存储:所有对话历史以 JSONL 格式存储在 ~/.openclaw/agents/<agentId>/sessions/ 目录下,每个会话独立存储,支持精确的上下文管理和会话重置。
3.2 Gateway WebSocket 控制平面
3.2.1 连接方式
# 本地连接(默认,自动使用 token)
ws://127.0.0.1:18789
# 远程连接(通过 Bearer Token)
ws://<gateway-host>:18789
Header: Authorization: Bearer <token>
# 通过 Tailscale MagicDNS(零配置 HTTPS)
wss://<machine-name>.tailnet-name.ts.net/
# 通过 Funnel 公网访问(需设置密码)
wss://<public-ip>.fs.<org>.ts.net/
3.2.2 WebSocket 消息类型
| 消息类型 | 方向 | 说明 |
|---|---|---|
connect |
客户端→Gateway | 发起连接,携带客户端信息 |
system-event |
客户端→Gateway | 发送系统事件(如心跳触发) |
system-presence |
双向 | 存在状态更新(在线设备列表) |
chat.message |
双向 | 聊天消息(最常用) |
invoke |
客户端→Gateway | 调用工具 |
invoke.result |
Gateway→客户端 | 工具调用结果 |
invoke.progress |
Gateway→客户端 | 长任务进度通知 |
agent.turn |
Gateway→客户端 | Agent 执行轮次事件 |
agent.start |
Gateway→客户端 | Agent 开始处理 |
agent.done |
Gateway→客户端 | Agent 完成处理 |
health |
Gateway→客户端 | 健康状态心跳 |
error |
Gateway→客户端 | 错误通知 |
3.2.3 connect 请求格式
{
"type": "connect",
"client": {
"instanceId": "my-macbook-pro",
"mode": "ui",
"version": "2026.3.13",
"hostname": "MacBook-Pro.local"
}
}
3.3 事件系统
OpenClaw 有一套完整的事件总线系统,所有组件通过事件驱动协同工作。
3.3.1 事件类型一览
| 事件类型 | 说明 | 典型用途 |
|---|---|---|
agent.started |
Agent 启动 | 触发初始化工作流 |
agent.turn |
Agent 开始推理 | 记录对话历史 |
agent.done |
Agent 完成推理 | 触发通知 |
agent.error |
Agent 出错 | 告警通知 |
chat.received |
收到消息 | 记录/处理入站消息 |
chat.sent |
消息已发送 | 确认发送成功 |
presence.online |
设备上线 | 通知 AI 助手有新设备 |
presence.offline |
设备离线 | 清理设备状态 |
health.ok |
健康检查通过 | - |
health.degraded |
健康检查降级 | 告警 |
heartbeat.triggered |
心跳触发 | 执行定时检查 |
cron.started |
Cron 任务开始 | 记录运行日志 |
cron.finished |
Cron 任务完成 | 投递结果 |
cron.failed |
Cron 任务失败 | 告警 + 重试 |
3.3.2 事件订阅与触发
# 触发一个即时系统事件(立即执行)
openclaw system event --text "检查日历是否有今日日程" --mode now
# 触发等待下次心跳的事件(下次心跳时执行)
openclaw system event --text "下次心跳时检查邮箱" --mode next-heartbeat
# 查看事件历史
openclaw events list --limit 50
# 查看详细事件日志
openclaw logs --filter "event" --follow
3.4 模型故障转移(Failover)机制
OpenClaw 的模型故障转移采用两级机制:认证轮换(Auth Rotation)和模型降级(Model Fallback),确保在某个模型不可用时能自动恢复。
3.4.1 两级故障转移流程
用户消息
│
▼
┌───────────────────────┐
│ 1. Auth Profile Rotation │ ← 在同一 Provider 内轮换账号
│ (OAuth > API Key) │
│ 指数退避: 1m→5m→25m→1h│
└───────────┬───────────────┘
│ 全部 Profile 失败
▼
┌───────────────────────┐
│ 2. Model Fallback │ ← 切换到备用模型
│ (primary → fallback1 │
│ → fallback2 → ...) │
└───────────┬───────────────┘
│
▼
返回错误给用户
3.4.2 认证配置与轮换
OpenClaw 支持在 ~/.openclaw/agents/<agentId>/agent/auth-profiles.json 中存储多个认证 Profile:
{
"profiles": {
"anthropic:default": {
"type": "oauth",
"provider": "anthropic",
"access": "ya29.xxx",
"refresh": "1//xxx",
"expires": 1736200000000
},
"anthropic:work": {
"type": "api_key",
"provider": "anthropic",
"key": "sk-ant-xxx"
}
},
"usageStats": {
"anthropic:default": {
"lastUsed": 1736160000000,
"cooldownUntil": null,
"errorCount": 0
}
}
}
轮换规则:
- OAuth 优先于 API Key:OAuth Profile 通常有更高配额
- 最少使用优先:优先使用
lastUsed最久远的 Profile - 冷却期:失败后按指数退避(1m → 5m → 25m → 60m)自动恢复
- 计费失败禁用:余额不足时禁用较长时间(5h 起步,双倍增长,上限 24h)
3.4.3 完整 Failover 配置
{
agents: {
defaults: {
model: {
primary: "anthropic/claude-opus-4-6",
fallbacks: [
"anthropic/claude-sonnet-4-7",
"openai/gpt-4o",
"google/gemini-2-5-flash",
],
},
},
},
auth: {
profiles: {
"anthropic:default": { type: "oauth" },
"openai:api": { type: "api_key", key: "sk-xxx" },
},
order: {
"anthropic": ["anthropic:default"],
"openai": ["openai:api"],
},
cooldowns: {
billingBackoffHours: 5, // 计费失败初始冷却(小时)
billingBackoffHoursByProvider: {}, // 按 Provider 覆盖
billingMaxHours: 24, // 计费失败最大冷却
failureWindowHours: 24, // 失败计数器重置窗口
},
},
}
3.4.4 故障转移触发条件
| 错误类型 | 行为 |
|---|---|
| 速率限制(429) | 等待后重试,失败后切换到下一个 Profile |
| 服务器过载(5xx) | 直接切换到下一个 Profile |
| 网络超时(ECONNRESET) | 重试 1 次后切换 Profile |
| 认证失败(401/403) | 不重试,立即切换 Profile |
| 格式错误(400) | 不切换,记录错误 |
| 模型不支持的功能 | 切换到支持该功能的备用模型 |
| 计费失败(余额不足) | 禁用较长时间(5h起步),切换 Profile |
3.5 会话管理(Sessions)
3.5.1 会话存储架构
~/.openclaw/
└── agents/
└── <agentId>/
└── sessions/
├── sessions.json # 会话索引(包含元数据)
├── sessions.json.bak # 备份
├── sessions.json.lock # 写锁
├── cron:<jobId>.jsonl # Cron 任务会话
└── <sessionKey>.jsonl # 转录文件(JSONL)
sessions.json 是会话索引,格式如下:
{
"main": {
"sessionId": "sess_abc123",
"updatedAt": 1736160000000,
"inputTokens": 1500,
"outputTokens": 800,
"totalTokens": 2300,
"displayName": "主会话",
"origin": { "label": "telegram:direct", "channel": "telegram" }
},
"discord:group:123456789": {
"sessionId": "sess_def456",
"updatedAt": 1736159900000,
"displayName": "Discord 开发频道",
"origin": { "label": "discord:group", "channel": "discord" }
}
}
3.5.2 会话键(Session Key)映射规则
| 来源 | 会话键格式 |
|---|---|
| 主会话(DM) | agent:<agentId>:<mainKey> |
| 按发送者隔离(DM) | agent:<agentId>:direct:<peerId> |
| 按渠道+发送者隔离 | agent:<agentId>:<channel>:direct:<peerId> |
| 按账号+渠道+发送者隔离 | agent:<agentId>:<channel>:<accountId>:direct:<peerId> |
| 群聊 | agent:<agentId>:<channel>:group:<id> |
| Telegram 话题 | agent:<agentId>:telegram:group:<id>:topic:<threadId> |
| Cron 任务 | cron:<jobId> |
| Webhook | hook:<uuid> |
| 设备节点 | node-<nodeId> |
3.5.3 推荐的 DM 安全配置
⚠️ 重要:如果 AI 可以接收来自多个人的私信,强烈建议开启安全 DM 模式,否则不同用户的会话会混在一起,造成信息泄露。
{
session: {
// 推荐配置:按「渠道+发送者」隔离私信会话
dmScope: "per-channel-peer",
// 多账号场景:按「账号+渠道+发送者」隔离
// dmScope: "per-account-channel-peer",
// 身份链接(同一人跨渠道共享会话)
identityLinks: {
"wechat:alice": "canonical:alice",
"telegram:123456789": "canonical:alice",
},
reset: {
mode: "daily", // 每天重置
atHour: 4, // 凌晨 4 点(Gateway 主机时区)
idleMinutes: 120, // 闲置 2 小时后重置
},
maintenance: {
mode: "enforce", // 自动执行清理
pruneAfter: "30d", // 超过 30 天未活动的会话清除
maxEntries: 500, // 最多保留 500 个会话条目
rotateBytes: "10mb", // sessions.json 超过 10MB 后轮换
},
},
}
3.6 完整配置字段参考
OpenClaw 的配置文件位于 ~/.openclaw/openclaw.json(JSON5 格式,支持注释)。
3.6.1 顶级配置字段
{
// $schema 用于编辑器类型提示(可选)
"$schema": "https://openclaw.ai/schema/config.json",
// 配置文件拆分引用
"$include": [
"./channels.feishu.json",
"./channels.telegram.json",
],
// Gateway 配置
gateway: {
bind: "loopback", // loopback | tailnet | auto
port: 18789, // Gateway 监听端口
host: "0.0.0.0", // 监听地址(仅在 bind=auto 时生效)
verbose: false, // 详细日志
logLevel: "info", // debug | info | warn | error
// 认证配置
auth: {
mode: "token", // token | password
token: "your-secret-token", # Bearer Token(建议用环境变量)
password: "shared-password", # 共享密码
allowTailscale: false, // Tailnet 身份免认证
},
// Tailscale 配置
tailscale: {
mode: "off", // off | serve | funnel
resetOnExit: false, // 退出时重置 Tailscale 配置
},
// 控制台 UI 配置
controlUi: {
basePath: "/", // 控制台路径前缀
branding: {
name: "OpenClaw",
logoUrl: "https://...",
},
},
// 健康检查配置
channelHealthCheckMinutes: 5, // 渠道健康检查间隔(0 禁用)
channelStaleEventThresholdMinutes: 30, // 认定"不活跃"的阈值
channelMaxRestartsPerHour: 10, // 每小时最多重启次数
// 推送通知(iOS APNs)
push: {
apns: {
relay: {
baseUrl: "https://relay.example.com",
timeoutMs: 10000,
},
},
},
},
// Agent 配置
agents: {
defaults: {
// 模型配置
model: {
primary: "anthropic/claude-opus-4-6",
fallbacks: ["anthropic/claude-sonnet-4-7"],
},
models: {
"anthropic/claude-opus-4-6": {
alias: "Opus",
apiKeyRef: "env:ANTHROPIC_API_KEY",
},
"openai/gpt-4o": {
alias: "GPT-4o",
baseUrl: "https://api.openai.com/v1", // 自定义端点
},
"deepseek/deepseek-chat": {
alias: "DeepSeek",
baseUrl: "https://api.deepseek.com",
},
},
// 图像模型配置
imageModel: "anthropic/claude-sonnet-4-7",
// 图像生成模型
imageGenerationModel: "openai/dall-e-3",
// 图像最大尺寸(像素,用于转录和工具)
imageMaxDimensionPx: 1200,
// 心跳配置
heartbeat: {
every: "30m", // 间隔(0m 禁用)
target: "last", // last | none | <channel>
lightContext: true, // 仅加载 HEARTBEAT.md
isolatedSession: true, // 独立会话
activeHours: { // 活跃时段限制
start: "08:00",
end: "22:00",
timezone: "Asia/Shanghai",
},
includeReasoning: false,
ackMaxChars: 300,
},
// 沙箱配置
sandbox: {
mode: "non-main", // off | non-main | all
scope: "session", // session | agent | shared
backend: "docker", // docker | ssh | openshell
workspaceAccess: "none", // none | ro | rw
browser: {
autoStart: true,
autoStartTimeoutMs: 10000,
network: "openclaw-sandbox-browser",
cdpSourceRange: "172.21.0.1/32",
},
docker: {
image: "openclaw-sandbox:bookworm-slim",
network: "none",
binds: [],
setupCommand: "apt-get update && apt-get install -y curl jq git",
},
ssh: {
target: "user@host:22",
workspaceRoot: "/tmp/openclaw-sandboxes",
identityFile: "~/.ssh/id_ed25519",
},
},
// 推理过程配置
thinking: {
enabled: true,
defaultLevel: "medium", // off | low | medium | high
},
// 工作区路径
workspace: "~/.openclaw/workspace",
},
// 多 Agent 配置
list: [
{
id: "main",
default: true,
workspace: "~/.openclaw/workspace",
},
{
id: "codex",
workspace: "~/.openclaw/workspace-codex",
model: {
primary: "anthropic/claude-sonnet-4-7",
},
},
],
},
// 身份链接(同一人跨渠道会话合并)
identityLinks: {
"telegram:123456789": "canonical:alice",
"feishu:ou_xxx": "canonical:alice",
},
// 渠道配置
channels: {
feishu: {
enabled: true,
dmPolicy: "pairing",
groupPolicy: "open",
streaming: true,
blockStreaming: true,
textChunkLimit: 2000,
mediaMaxMb: 30,
typingIndicator: true,
resolveSenderNames: true,
domain: "feishu",
accounts: {
main: {
appId: "cli_xxx",
appSecret: "xxx",
botName: "AI助手",
},
},
groups: {
"oc_xxx": {
requireMention: true,
},
},
},
telegram: {
enabled: false,
botToken: "xxx",
dmPolicy: "pairing",
groupPolicy: "open",
},
},
// 会话配置
session: {
dmScope: "per-channel-peer",
mainKey: "main",
scope: "agent",
reset: {
mode: "daily",
atHour: 4,
idleMinutes: 120,
},
resetByType: {
direct: { mode: "idle", idleMinutes: 240 },
group: { mode: "idle", idleMinutes: 120 },
thread: { mode: "daily", atHour: 4 },
},
threadBindings: {
enabled: true,
idleHours: 24,
maxAgeHours: 0,
},
maintenance: {
mode: "enforce",
pruneAfter: "30d",
maxEntries: 500,
rotateBytes: "10mb",
maxDiskBytes: "1gb",
highWaterBytes: "800mb",
},
},
// Cron 配置
cron: {
enabled: true,
maxConcurrentRuns: 2,
sessionRetention: "24h",
store: "~/.openclaw/cron/jobs.json",
runLog: {
maxBytes: "2mb",
keepLines: 2000,
},
retry: {
maxAttempts: 3,
backoffMs: [60000, 120000, 300000],
retryOn: ["rate_limit", "overloaded", "network", "server_error"],
},
},
// Hooks(Webhook)配置
hooks: {
enabled: true,
token: "shared-secret",
path: "/hooks",
defaultSessionKey: "hook:ingress",
allowRequestSessionKey: false,
allowedSessionKeyPrefixes: ["hook:"],
mappings: [
{
match: { path: "gmail" },
action: "agent",
agentId: "main",
deliver: true,
},
],
},
// 工具配置
tools: {
profile: "default", // default | full | minimal | custom
elevated: [], // 允许提权的命令
sessions: {
visibility: "all",
},
},
// Skills 配置
skills: {
load: {
extraDirs: [], // 额外技能搜索路径
watch: true, // 监视文件变化
watchDebounceMs: 250,
},
entries: {
// 按技能名称引用的配置
"image-lab": {
enabled: true,
apiKey: "GEMINI_KEY",
env: { GEMINI_API_KEY: "xxx" },
config: { model: "nano-pro" },
},
},
},
// 认证配置
auth: {
profiles: {},
order: {},
cooldowns: {
billingBackoffHours: 5,
billingMaxHours: 24,
failureWindowHours: 24,
},
},
}
3.7 环境变量完整列表
OpenClaw 支持通过环境变量覆盖配置文件中的任何设置。格式为 OPENCLAW_ 前缀 + 路径大写 + 下划线分隔。
# ========== 基础配置 ==========
OPENCLAW_MODEL="anthropic/claude-opus-4-6" # 默认模型
OPENCLAW_GATEWAY_PORT="18789" # Gateway 端口
OPENCLAW_GATEWAY_BIND="loopback" # 绑定方式
OPENCLAW_VERBOSE="1" # 详细日志
# ========== 认证配置 ==========
OPENCLAW_GATEWAY_TOKEN="your-token-here" # Bearer Token
OPENCLAW_GATEWAY_PASSWORD="your-password-here" # 共享密码
OPENCLAW_GATEWAY_AUTH_MODE="token" # 认证模式
# ========== Tailscale ==========
OPENCLAW_TAILSCALE_MODE="serve" # serve | funnel | off
OPENCLAW_TAILSCALE_RESET_ON_EXIT="false"
# ========== API Keys(各大模型) ==========
ANTHROPIC_API_KEY="sk-ant-xxx" # Anthropic
OPENAI_API_KEY="sk-xxx" # OpenAI
GOOGLE_API_KEY="xxx" # Google AI
DEEPSEEK_API_KEY="sk-xxx" # DeepSeek
MINIMAX_API_KEY="xxx" # MiniMax
BRAVE_API_KEY="xxx" # Brave 搜索
# ========== 渠道配置 ==========
TELEGRAM_BOT_TOKEN="xxx" # Telegram
DISCORD_TOKEN="xxx" # Discord
# 飞书
FEISHU_APP_ID="cli_xxx"
FEISHU_APP_SECRET="xxx"
# ========== 沙箱配置 ==========
OPENCLAW_SANDBOX="1" # 启用沙箱
OPENCLAW_DOCKER_SOCKET="/var/run/docker.sock" # Docker socket
OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS="1" # 禁用图形标志
OPENCLAW_BROWSER_DISABLE_EXTENSIONS="0"
# ========== Cron 配置 ==========
OPENCLAW_SKIP_CRON="1" # 禁用 Cron
# ========== ClawHub ==========
CLAWHUB_REGISTRY="https://registry.clawhub.ai"
CLAWHUB_DISABLE_TELEMETRY="1"
# ========== iOS 推送 ==========
OPENCLAW_APNS_RELAY_BASE_URL="https://relay.example.com"
OPENCLAW_APNS_RELAY_TIMEOUT_MS="10000"
OPENCLAW_APNS_RELAY_ALLOW_HTTP="true" # 仅本地开发用
3.8 配置文件拆分示例
使用 $include 指令将配置拆分到多个文件:
// ~/.openclaw/openclaw.json
{
"$include": [
"./channels/telegram.json",
"./channels/discord.json",
"./channels/feishu.json",
"./agents/production.json",
"./skills/custom.json",
],
gateway: {
port: 18789,
auth: { mode: "token" },
},
}
// ~/.openclaw/channels/feishu.json
{
channels: {
feishu: {
enabled: true,
dmPolicy: "pairing",
streaming: true,
accounts: {
main: {
appId: "cli_xxx",
appSecret: "env:FEISHU_APP_SECRET",
},
},
},
},
}
// ~/.openclaw/agents/production.json
{
agents: {
defaults: {
model: {
primary: "anthropic/claude-opus-4-6",
fallbacks: ["anthropic/claude-sonnet-4-7"],
},
sandbox: {
mode: "all",
scope: "session",
backend: "docker",
},
},
},
}
四、Skills 系统
4.1 Skills 核心概念
Skills(技能)是 OpenClaw 的扩展系统,每个技能本质上是一个文件夹,包含一个 SKILL.md 文件和一些可选的支持文件。Skills 教会 AI 助手如何使用特定工具、执行特定工作流。
OpenClaw 使用 AgentSkills 兼容格式——这意味着你可以使用 ClawHub 上的任何技能,也可以自己编写。
Skills 的工作原理:
- 每次开启新会话,OpenClaw 扫描所有技能目录
- 根据技能的
metadata过滤条件,确定哪些技能在当前环境可用 - 将可用技能的名称和描述注入到系统提示词中
- AI 在推理时判断是否需要调用某个技能
- 技能加载后,AI 按照
SKILL.md中的指令执行任务
4.2 三级优先级加载
OpenClaw 的 Skills 按以下优先级加载(高优先级覆盖低优先级):
| 优先级 | 来源 | 路径 | 说明 |
|---|---|---|---|
| 1 | 工作区技能 | <workspace>/skills/<skill>/ |
最高优先级,本地开发首选 |
| 2 | 托管技能 | ~/.openclaw/skills/<skill>/ |
用户本地管理的技能 |
| 3 | 捆绑技能 | OpenClaw 安装包内置 | 随 OpenClaw 分发的内置技能 |
覆盖规则:如果同一个技能名存在于多个位置,工作区技能优先。
4.3 ClawHub 完整使用教程
ClawHub(https://clawhub.ai)是 OpenClaw 的官方技能市场,类似于 npm 之于 Node.js。ClawHub 提供技能托管、版本管理、搜索和社区评分功能。
4.3.1 安装 ClawHub CLI
# npm 安装
npm i -g clawhub
# pnpm 安装
pnpm add -g clawhub
# 验证安装
clawhub --version
4.3.2 搜索技能
# 通过 CLI 搜索
clawhub search "calendar" --limit 10
# 通过 OpenClaw 搜索
openclaw skills search "calendar"
openclaw skills search "web scraping"
# 搜索带标签
clawhub search "postgres backups" --tags latest
4.3.3 安装技能
# 方式一:通过 OpenClaw CLI(推荐,安装到工作区)
openclaw skills install <skill-slug>
# 方式二:通过 ClawHub CLI
clawhub install <skill-slug>
# 安装指定版本
clawhub install <skill-slug> --version 1.2.0
# 强制覆盖(本地已有时)
clawhub install <skill-slug> --force
# 通过 npm 方式安装(clawhub 会自动处理)
npx clawhub@latest install sonoscli
安装位置:
openclaw skills install安装到~/.openclaw/workspace/skills/;clawhub install安装到当前目录的skills/。
4.3.4 更新技能
# 更新单个技能
clawhub update <skill-slug>
# 更新所有技能
clawhub update --all
# OpenClaw CLI 方式
openclaw skills update <skill-slug>
openclaw skills update --all
# 更新到指定版本
clawhub update <skill-slug> --version 1.3.0
4.3.5 发布技能
# 1. 登录 ClawHub
clawhub login
# 会打开浏览器完成 OAuth 授权
# 或使用 Token 登录
clawhub login --token <your-api-token>
# 2. 验证登录
clawhub whoami
# 3. 发布技能
clawhub publish ./my-skill \
--slug my-skill \
--name "我的技能" \
--version 1.0.0 \
--changelog "初始版本发布" \
--tags latest
# 4. 查看发布结果
clawhub list
4.3.6 批量同步(备份本地技能)
# 扫描并发布所有本地技能
clawhub sync --all
# 预览(不实际发布)
clawhub sync --dry-run
# 自动版本号管理
clawhub sync --all --bump minor
# 非交互模式(CI/CD 使用)
clawhub sync --all --changelog "Auto sync from CI"
4.3.7 ClawHub 完整命令列表
| 命令 | 说明 | 示例 |
|---|---|---|
clawhub login [--token <token>] |
登录认证 | clawhub login |
clawhub logout |
登出 | clawhub logout |
clawhub whoami |
显示当前用户 | clawhub whoami |
clawhub search <query> |
搜索技能 | clawhub search calendar |
clawhub install <slug> |
安装技能 | clawhub install postgres-backup |
clawhub update [slug] |
更新技能 | clawhub update --all |
clawhub list |
列出已安装技能 | clawhub list |
clawhub publish <path> |
发布技能 | clawhub publish ./skill |
clawhub delete <slug> |
删除技能(需所有者权限) | clawhub delete my-skill --yes |
clawhub undelete <slug> |
恢复已删除技能 | clawhub undelete my-skill --yes |
clawhub sync [--all] |
批量同步本地技能 | clawhub sync --all --dry-run |
clawhub --version |
显示 CLI 版本 | clawhub -V |
4.3.8 安全与审核
ClawHub 是开放平台,任何人都可以上传技能,但有以下保护机制:
- GitHub 账号必须满一周才能发布(防止垃圾账号)
- 用户可以对技能进行举报(每个用户最多 20 个活跃举报)
- 超过 3 个不同用户举报的技能会自动隐藏
- 管理员可以查看、恢复或永久删除技能
⚠️ 安全建议:使用第三方技能前,务必阅读其
SKILL.md内容,确认没有恶意操作。
4.4 国内技能市场:SkillHub Tencent
SkillHub(https://skillhub.tencent.com)是专为中国用户优化的 OpenClaw 技能社区,由腾讯云 Lighthouse 团队维护。
与 ClawHub 的区别:
| 方面 | ClawHub | SkillHub Tencent |
|---|---|---|
| 维护方 | OpenClaw 官方社区 | 腾讯云 Lighthouse 团队 |
| 语言 | 英文为主 | 中文优先 |
| 访问速度 | 海外服务器 | 国内服务器,访问更快 |
| 技能来源 | 全球开发者 | 国内开发者贡献 |
| 配套插件 | 国际渠道插件 | 企业微信、飞书、钉钉插件 |
| 安装方式 | clawhub install |
插件市场一键安装 |
特点:
- 针对国内网络优化,下载速度快
- 收录了飞书、企业微信、钉钉等国内渠道的配套技能
- 部分技能经过国内开发者团队审核和测试
- 与腾讯云 Lighthouse 部署的 OpenClaw 一键集成
使用方式:
- 访问官网:打开 https://skillhub.tencent.com/,注册并登录腾讯云账号
- 浏览技能:在技能市场浏览可用技能(按分类筛选:飞书、微信、日历、邮件等)
- 安装技能:点击技能详情页的「安装」按钮,获取安装命令
- 在 OpenClaw 中执行安装命令:
# 通过 SkillHub 安装技能(如果 CLI 支持)
openclaw skill install <skill-name>
# 或者手动下载技能包到本地
# ~/.openclaw/workspace/skills/<skill-name>/SKILL.md
说明:SkillHub 上的技能通常提供两种安装方式——插件市场一键安装(通过腾讯云 Lighthouse 控制台)或手动下载到本地
~/.openclaw/workspace/skills/目录。如果技能页面提供了下载链接,直接下载并解压到 skills 目录即可。
推荐配合使用:
- 使用 SkillHub 安装国内渠道配套技能(如飞书多维表格、企业微信待办)
- 使用 ClawHub 安装国际渠道技能(如 Telegram、Signal)
- 两个市场的技能可以同时使用,互不冲突
4.5 SKILL.md 完整字段参考
SKILL.md 是技能的核心描述文件,包含 YAML frontmatter 和 Markdown 说明内容。
---
# ★ 必填字段
name: skill-name # 技能唯一标识(英文、kebab-case)
description: 技能用途描述 # AI 用于判断何时触发此技能
# ◇ 可选元数据
version: "1.0.0" # 语义化版本(major.minor.patch)
author: "作者名 <[email protected]>" # 作者信息
homepage: "https://example.com/skill" # 技能官网(macOS UI 中显示)
# ◇ 触发条件(自然语言,AI 会话时判断)
triggers:
- "查看日历"
- "管理日程"
- "日程冲突怎么办"
# ◇ 用户可调用
user-invocable: true # true(默认)= 用户可通过斜杠命令调用
# ◇ 平台限制
metadata:
openclaw:
os: ["darwin", "linux"] # 仅在这些平台生效
always: true # 跳过其他过滤条件
# 依赖要求(负载时检查)
requires:
bins: ["uv", "ffmpeg"] # PATH 中必须存在的命令
anyBins: ["python3", "python"] # 至少一个存在
env: ["GEMINI_API_KEY"] # 必须设置的环境变量
config: ["browser.enabled"] # 配置中必须为 truthy 的字段
primaryEnv: "GEMINI_API_KEY" # 主要环境变量(用于 skills.entries.*.apiKey)
# 安装器(macOS Skills UI 中显示安装按钮)
install:
- id: "brew"
kind: "brew"
formula: "ffmpeg"
bins: ["ffmpeg"]
label: "Install ffmpeg (brew)"
- id: "npm"
kind: "node"
package: "@modelcontextprotocol/server-filesystem"
bins: ["npx"]
label: "Install via npx"
# ◇ 工具分发(斜杠命令直接分发到工具,跳过 AI 推理)
command-dispatch: "tool" # 设为 tool 时斜杠命令直接调用工具
command-tool: "exec" # 调用的工具名
command-arg-mode: "raw" # raw = 传递原始参数字符串
# ◇ 禁用 AI 调用(仅用户手动触发)
disable-model-invocation: false # true = 不在 AI 推理中触发
---
# 技能标题
这里是技能的详细说明文档。使用 Markdown 格式编写。
## 功能
- 功能一说明
- 功能二说明
## 使用方法
描述如何使用此技能。
## 示例
示例命令或对话
## 配置
如果需要配置,按以下方式设置:
4.6 技能配置注入
通过 skills.entries 向技能注入环境变量和配置:
{
skills: {
entries: {
// 基础配置
"my-skill": {
enabled: true,
apiKey: "sk-xxx", // 明文 API Key
apiKey: { source: "env", id: "API_KEY" }, // 或引用环境变量
env: {
API_KEY: "sk-xxx",
DATABASE_URL: "postgres://...",
TIMEZONE: "Asia/Shanghai",
},
config: {
model: "nano-pro",
maxRetries: 3,
},
},
// 禁用某个内置技能
"sag": { enabled: false },
"peekaboo": { enabled: true },
},
},
}
注入规则:
env:仅在环境变量未设置时注入apiKey:便捷字段,当技能声明primaryEnv时使用config:自定义配置字段,传递给技能的 SKILL.md
4.7 常用推荐技能
以下是我们精选的推荐技能,适合大多数用户:
| 技能名称 | 功能 | 安装命令 |
|---|---|---|
weather |
获取天气预报 | openclaw skills install weather |
news-summary |
新闻摘要生成 | openclaw skills install news-summary |
halo-blog-publishing |
Halo 博客发布 | openclaw skills install halo-blog-publishing |
imap-smtp-email |
邮件收发管理 | openclaw skills install imap-smtp-email |
ffmpeg-master |
音视频处理 | openclaw skills install ffmpeg-master |
git-essentials |
Git 版本控制 | openclaw skills install git-essentials |
docker-essentials |
Docker 容器管理 | openclaw skills install docker-essentials |
excel-xlsx |
Excel 文件处理 | openclaw skills install excel-xlsx |
halo-cli-content |
Halo 博客内容管理 | openclaw skills install halo-cli-content |
浏览更多技能:https://clawhub.ai/skills
五、工具系统
5.1 工具系统概述
OpenClaw 的工具系统是 AI 助手能力的核心延伸。与只能生成文本的普通 AI 对话不同,OpenClaw 的 AI 可以通过工具执行实际操作——读写文件、运行命令、控制浏览器、发送消息等。
工具执行流程:
用户消息
│
▼
┌─────────────┐
│ AI 推理 │ ← 系统提示词(含可用工具列表)
│ (LLM Call) │
└──────┬──────┘
│ 决定调用工具
▼
┌─────────────┐
│ 工具执行 │ ← 沙箱隔离(可选)
│ (Tool Call) │
└──────┬──────┘
│ 返回结果
▼
┌─────────────┐
│ AI 推理 │ ← 继续推理,整合工具结果
│ (LLM Call) │
└──────┬──────┘
│
▼
返回结果
5.2 浏览器自动化
浏览器自动化是 OpenClaw 最强大的工具之一,支持截图、UI 操作、表单填写、JavaScript 执行等。
5.2.1 基础操作
# 启动浏览器
openclaw browser start
# 停止浏览器
openclaw browser stop
# 查看浏览器状态
openclaw browser status
# 列出浏览器配置文件
openclaw browser profiles
# 列出当前标签页
openclaw browser tabs
# 打开网页
openclaw browser open --url "https://example.com"
5.2.2 浏览器工具动作详解
| 动作 | 说明 | 常用参数 |
|---|---|---|
snapshot |
获取页面 DOM 快照 | depth、refs(role/aria)、compact |
screenshot |
截图 | fullPage、type(png/jpeg)、quality |
navigate |
导航到 URL | url |
act |
执行 UI 操作 | kind、selector/ref、text |
open |
新开标签页 | url |
close |
关闭标签页 | - |
focus |
聚焦标签页 | - |
console |
读取控制台日志 | level |
pdf |
导出 PDF | width、height |
upload |
文件上传 | element、paths |
dialog |
处理对话框 | accept、promptText |
5.2.3 act 操作类型详解
| kind | 说明 | 关键参数 |
|---|---|---|
click |
点击元素 | selector 或 ref,button(左/中/右) |
type |
输入文本 | selector、text、slowly |
press |
按键 | key(Enter、Escape、Control+a) |
hover |
悬停 | selector |
drag |
拖拽 | startRef、endRef |
select |
下拉选择 | selector、values |
fill |
填充表单 | selector、values |
resize |
调整窗口 | width、height |
wait |
等待 | timeMs 或 selector(等待元素出现) |
evaluate |
执行 JavaScript | fn(JavaScript 代码字符串) |
5.2.4 快照引用系统
快照返回的元素引用(ref)用于后续 act 操作,实现稳定的前后操作绑定:
# 获取快照(role 引用)
openclaw browser snapshot --refs role
# 获取快照(ARIA 引用,更稳定)
openclaw browser snapshot --refs aria
# 使用引用执行操作
openclaw browser act --ref e12 --kind click
# 使用选择器执行操作
openclaw browser act --selector "#submit-btn" --kind click
# 输入文本
openclaw browser act --selector "input[name=q]" --kind type --text "搜索内容"
5.2.5 多浏览器配置文件
OpenClaw 支持多个浏览器配置文件,适用于不同场景:
# OpenClaw 独立管理的浏览器(隔离,无登录信息)
openclaw browser --profile openclaw
# 用户已登录的浏览器(使用当前系统的 Chrome/Firefox)
openclaw browser --profile user
# Chrome Relay(浏览器扩展打开的标签页)
openclaw browser --profile chrome-relay
profile=user 适合需要登录状态的场景(如 Gmail、社交媒体),但需要用户在场授权。
5.2.6 完整浏览器配置
{
agents: {
defaults: {
sandbox: {
browser: {
autoStart: true, // 需要时自动启动 CDP
autoStartTimeoutMs: 10000, // 超时时间
network: "openclaw-sandbox-browser", // Docker 网络
cdpSourceRange: "172.21.0.1/32", // CDP 入口 CIDR
allowHostControl: false, // 允许沙箱会话控制宿主机浏览器
},
},
},
},
}
5.3 Canvas 可视化工作区
Canvas 是 OpenClaw 的 AI 驱动可视化界面,支持推送自定义 HTML/CSS/JS 内容,实现图表、动画、数据可视化等效果。
5.3.1 Canvas 动作
| 动作 | 说明 | 参数 |
|---|---|---|
present |
推送内容到 Canvas | html、width、height、maxWidth |
hide |
隐藏 Canvas | - |
navigate |
导航到路径 | url |
eval |
执行 JavaScript | javaScript |
snapshot |
获取 Canvas 快照 | - |
a2ui_push |
推送 A2UI 内容 | html、css、js |
a2ui_reset |
重置 A2UI | - |
5.3.2 present 推送示例
{
"action": "present",
"html": "<div style='font-family:sans-serif;padding:20px'>"
"<h1>实时数据</h1>"
"<canvas id='chart'></canvas>"
"<script>"
"const ctx = document.getElementById('chart').getContext('2d');"
"new Chart(ctx, {type:'bar',data:{labels:['A','B','C'],"
"datasets:[{label:'销量',data:[12,19,3]}]}});"
"</script>"
"</div>",
"width": 800,
"height": 600
}
5.3.3 模板变量
Canvas HTML 中支持模板变量:
| 变量 | 说明 |
|---|---|
{{time}} |
当前时间 |
{{date}} |
当前日期 |
{{session}} |
会话 ID |
{{agent}} |
Agent ID |
5.4 Nodes 设备节点
Nodes 允许 macOS/iOS/Android 设备与 Gateway 配对,实现远程控制、语音交互、设备能力调用。
5.4.1 配对流程
# 方式一:二维码配对(推荐)
# 在 Gateway 上生成配对码
openclaw pairing qrcode
# 方式二:手动配对码
openclaw pairing code
# 方式三:Tailscale 远程配对
# 确保设备在同一个 Tailnet,直接使用 MagicDNS 名称配对
5.4.2 配对管理
# 列出已配对设备
openclaw pairing list
# 批准配对请求
openclaw pairing approve telegram 123456
# 撤销设备配对
openclaw pairing revoke telegram macbook-pro-local
# 清除所有配对
openclaw pairing clear
5.4.3 设备功能对比
| 功能 | macOS | iOS | Android |
|---|---|---|---|
| Voice Wake 语音唤醒 | ✅ | ✅ | ❌ |
| Talk Mode 连续对话 | ✅ | ❌ | ✅ |
| 系统通知推送 | ✅ | ✅ | ✅ |
| 屏幕录制 | ✅ | ❌ | ✅ |
| 浏览器远程控制 | ✅ | ✅ | ✅ |
| 相机控制 | ❌ | ✅ | ✅ |
| 麦克风 | ✅ | ✅ | ✅ |
| Canvas 渲染 | ✅ | ✅ | ✅ |
| 位置信息 | ❌ | ❌ | ✅ |
5.5 工具最佳实践
1. 安全使用浏览器自动化:
- 优先在沙箱中运行浏览器自动化
- 使用
refs="aria"而非 CSS 选择器(更稳定) - 避免在选择器中使用动态生成的类名
2. 文件操作的沙箱策略:
{
agents: {
defaults: {
sandbox: {
mode: "non-main",
scope: "session",
workspaceAccess: "ro", // 工具只读访问工作区
},
},
},
}
3. 长时间任务使用独立会话:
{
agents: {
defaults: {
heartbeat: {
isolatedSession: true,
lightContext: true,
},
},
},
}
六、渠道接入
6.1 支持渠道总览
| 渠道 | 内置 | 插件名称 | 接入方式 | MCP 支持 |
|---|---|---|---|---|
| ✅ | - | QR 码 | ❌ | |
| Telegram | ✅ | - | Bot Token | ❌ |
| Discord | ✅ | - | Bot Token | ❌ |
| 飞书 | ❌ | @larksuite/openclaw-lark |
长连接/Webhook | ✅ |
| Slack | ✅ | - | Webhook | ❌ |
| Signal | ✅ | - | 手动配置 | ❌ |
| iMessage | ✅ | - | macOS Bridge | ❌ |
| Microsoft Teams | ✅ | - | Webhook | ❌ |
| 企业微信 | ❌ | @wecom/wecom-openclaw-cli |
长连接 | ✅ |
| 钉钉 | ❌ | @dingtalk-real-ai/dingtalk-connector |
长连接 | ✅ |
| WebChat | ✅ | - | 嵌入式 | ❌ |
| Matrix | ✅ | - | WebSocket | ❌ |
| Mattermost | ✅ | - | Webhook | ❌ |
6.2 飞书(Feishu)插件
文档来源:https://www.feishu.cn/content/article/7613711414611463386
插件版本:2026.3.17
6.2.1 功能特性
飞书官方插件让 OpenClaw 可以「以你的身份」操作飞书各项能力,实现真正的数字分身体验。
| 类别 | 具体能力 |
|---|---|
| 💬 消息 | 消息读取(群聊/单聊历史、话题回复)、消息发送、消息回复、消息搜索、图片/文件下载 |
| 📄 文档 | 创建云文档、更新云文档、读取云文档内容 |
| 📊 多维表格 | 创建/管理多维表格、数据表、字段、记录(增删改查、批量操作、高级筛选)、视图 |
| 📅 日历日程 | 日历管理、日程管理(创建/查询/修改/删除/搜索)、参会人管理、忙闲查询 |
| ✅ 任务 | 任务管理(创建/查询/更新/完成)、清单管理、子任务、评论 |
特色体验:
- 流式输出卡片回复(需手动开启)
- 识别合并转发消息
- 发表情互动
- 以用户身份发消息(需额外开通
im:message.send_as_user权限)
6.2.2 安装步骤
步骤一:安装并配置 OpenClaw
# Linux / macOS
curl -fsSL https://openclaw.ai/install.sh | bash
# Windows
iwr -useb https://openclaw.ai/install.ps1 | iex
按提示完成配置后,打开 OpenClaw Dashboard URL 验证安装是否成功。
步骤二:安装飞书插件
npx -y @larksuite/openclaw-lark install
- 执行过程中可选择「新建机器人」或「关联已有机器人」
- 若选择新建机器人,通过飞书客户端扫描二维码,选择「一键创建飞书机器人」
- 创建完成后点击「打开机器人」,在飞书中向机器人发送任意消息即可开始对话
步骤三:批量授权与验证
在飞书对话中发送以下命令:
# 批量完成用户授权(让 OpenClaw 可以你的身份操作文档、消息、日历等)
/feishu auth
# 让 AI 学习新插件能力
/feishu learn
# 验证安装是否成功
/feishu start
6.2.3 配置方法
① 切换流式输出
# 开启流式输出
openclaw config set channels.feishu.streaming true
# 关闭流式输出
openclaw config set channels.feishu.streaming false
② 设置多任务并行、独立上下文
openclaw config set channels.feishu.threadSession true
③ 修改群内回复方式
模式 1:只有 @ 机器人才回复(默认)
{
"channels": {
"feishu": {
"enabled": true,
"appId": "cli_你的AppID",
"appSecret": "你的AppSecret",
"requireMention": true,
"groupPolicy": "open"
}
}
}
模式 2:所有消息都回复(无需 @,需额外申请 im:message.group_msg 权限)
openclaw config set channels.feishu.requireMention false --json
⚠️ 注意:此模式在大群里容易刷屏,谨慎使用!
模式 3:指定群 @ 才回复,其他群自由回复
{
"channels": {
"feishu": {
"enabled": true,
"appId": "cli_你的AppID",
"appSecret": "你的AppSecret",
"requireMention": "open",
"groupPolicy": "open",
"groups": {
"oc_532044075a61d112f04fa63109c75e9b": {
"requireMention": true
}
}
}
}
}
6.2.4 升级插件
# 查看 OpenClaw 版本要求
# Linux/MacOS:2026.2.26 及以上
# Windows:2026.3.2 及以上
# 升级 OpenClaw
npm install -g openclaw
# 升级飞书插件到最新版本
npx -y @larksuite/openclaw-lark update
6.2.5 注意事项
- 安全风险:插件可读取你的消息、文档、日历等数据,请仅在个人账号上安全使用,待安全隔离能力成熟后再考虑接入真实工作环境。
- AI 幻觉:AI 可能误解意图或生成不准确内容,重要操作务必「先预览,再确认」。
- 部分操作不可逆:AI 代发的消息以你的名义发出,发出即成事实。
- 权限申请:如遇权限不足,需在飞书开放平台批量导入所需权限并发布新版本应用。
- Windows 扫码问题:如终端分辨率导致扫码失败,建议使用 Cmder 终端。
- OpenClaw 3.2 工具权限:该版本默认关闭新 Agent 工具权限,需在
openclaw.json中补充:
{
"tools": {
"profile": "full",
"sessions": {
"visibility": "all"
}
}
}
6.2.6 MCP 工具详解
飞书插件提供完整的 MCP(Model Context Protocol)工具集,支持以用户身份操作飞书各项能力:
| 工具分类 | 工具名称 | 功能说明 |
|---|---|---|
| 消息 | feishu_im_user_message |
发送私聊/群聊消息 |
| 文档 | feishu_create_doc, feishu_fetch_doc, feishu_update_doc |
创建/读取/更新云文档 |
| 多维表格 | feishu_bitable_app_* |
管理多维表格(App/表/字段/记录) |
| 日历 | feishu_calendar_event, feishu_calendar_freebusy |
日程管理和忙闲查询 |
| 任务 | feishu_task_task, feishu_task_tasklist |
任务和清单管理 |
| 搜索 | feishu_search_user, feishu_search_doc_wiki |
搜索用户、文档和 Wiki |
安装 MCP 配置:
{
"mcpServers": {
"feishu": {
"command": "npx",
"args": ["-y", "@larksuite/openclaw-lark", "mcp"]
}
}
}
6.2.7 飞书应用创建详解
步骤一:创建飞书应用
- 访问 飞书开放平台,登录账号
- 点击创建企业自建应用,填写名称和描述,上传图标
步骤二:获取凭证
- 在凭证与基础信息中复制 App ID(格式
cli_xxx)和 App Secret
步骤三:批量导入权限
- 在权限管理中点击批量导入,粘贴以下 JSON:
{
"scopes": {
"tenant": [
"im:file:read",
"im:file:write",
"application:application:self_manage",
"application:bot.menu:write",
"cardkit:card:read",
"cardkit:card:write",
"contact:user.employee_id:readonly",
"corehr:file:download",
"event:ip_list",
"im:chat.access_event.bot_p2p_chat:read",
"im:chat.members:bot_access",
"im:message",
"im:message.group_at_msg:readonly",
"im:message.p2p_msg:readonly",
"im:message:readonly",
"im:message:send_as_bot",
"im:resource"
],
"user": [
"im:file:read",
"im:file:write",
"im:chat.access_event.bot_p2p_chat:read"
]
}
}
步骤四:启用机器人
- 在应用能力 → 机器人中启用机器人能力
- 在事件订阅中选择使用长连接接收事件,添加事件
im.message.receive_v1 - 在版本管理与发布中创建版本并发布
6.3 企业微信(WeCom)插件
文档来源:https://open.work.weixin.qq.com/help2/pc/cat?doc_id=21657
6.3.1 功能特性
通过企业微信智能机器人接入 OpenClaw,可实现以下能力:
| 类别 | 具体能力 |
|---|---|
| 🤖 智能对话 | 接入大模型的智能问答与任务处理 |
| 📝 文档管理 | 通过 MCP 创建企业微信文档(v5.0.7+) |
| 📊 智能表格 | 创建企业微信智能表格、管理数据记录 |
| 🔗 Webhook | 将 OpenClaw 产生的数据自动同步至智能表格 |
| 💬 消息收发 | 支持文字、图片、图文混排、音频、视频、文件等多种消息格式 |
| 🔌 API 调用 | 通过企业微信 API 调用文档、审批、打卡等各类应用 |
支持的消息类型: 模板卡片(template_card)、Markdown、文件(file)、图片(image)、语音(voice)、视频(video)。
6.3.2 安装步骤
方式一:腾讯云 Lighthouse 部署(云端)
步骤一: 使用腾讯云轻量应用服务器 Lighthouse
步骤二: 进入「轻量云」控制台,选中已部署 OpenClaw 的服务器,进入「管理实例」→「应用管理」
步骤三: 在「模型(Models)」中添加模型
步骤四: 在通道中选择「企微机器人(长连接)」,输入 Bot ID 和 Secret,点击「添加并应用」,完成后重启
步骤五: 保存并创建机器人,即可在企业微信中与机器人正常对话
方式二:本地终端部署
步骤一:安装企微插件
npx -y @wecom/wecom-openclaw-cli install
步骤二:企微扫码接入
选择扫码接入,使用企业微信扫描二维码
步骤三:一键创建机器人
点击「一键创建机器人」,无需更多配置
步骤四:自动接入 OpenClaw
成功创建机器人后,无需手动配对,自动接入本地 OpenClaw
6.3.3 配置方法
6.3.3.1 创建企业微信机器人(长连接方式)
- 打开企业微信客户端 → 工作台 → 智能机器人 → 创建机器人 → 手动创建
- 选择「API 模式创建」
- 在 API 配置页面,连接方式选择「使用长连接」
- 保存后获取 Bot ID 和 Secret,妥善保管
- 配置机器人可见范围,保存
6.3.3.2 通过 MCP 使用文档(对话授权)
- 直接要求机器人操作文档,例如:「帮我搜集本周零售行业重要新闻,汇总成一篇企业微信文档」
- 机器人自动发送授权连接,点击「确认授权」
- 告诉机器人「授权了」,自动对接 MCP 服务并生成文档
6.3.3.3 获取企业 ID 与应用 Secret(API 调用用)
- 登录企业微信管理后台 → 我的企业 → 获取企业 ID(corpid)
- 管理后台 → 应用管理 → 自建应用 → 新建或选择已有应用 → 查看 Secret
6.3.3.4 MCP 工具使用
企业微信 MCP 工具通过 wecom_mcp 命令行调用,支持多个功能品类:
# 查看指定品类的所有可用工具(如 contact)
wecom_mcp list contact
# contact 品类:通讯录管理
wecom_mcp call contact getContact '{"userid": "USERID"}'
wecom_mcp call contact getDepartmentList '{}'
wecom_mcp call contact getUserList '{"departmentid": 1}'
# todo 品类:待办管理
wecom_mcp call todo getTodoList '{}'
wecom_mcp call todo createTodo '{"content": "任务内容", "userid_list": ["USERID"]}'
# meeting 品类:会议管理
wecom_mcp call meeting createMeeting '{"subject": "会议", "start_time": 1736200000}'
# schedule 品类:日程管理
wecom_mcp call schedule getScheduleList '{}'
前置要求:确保已在
mcporter.json中配置wecom-openclaw-cli。
6.3.4 注意事项
- 长连接 vs URL 回调:长连接方式无需域名/IP,是 OpenClaw 对接的推荐方式;URL 回调需要企业可信域名和 IP(备案主体与企业主体相同)。
- 权限限制:通讯录人数 > 1000 人的企业,默认所有成员不可配置长连接机器人,需管理员开通「长连接」权限。
- 多模态支持:需使用多模态模型才支持附件识别。
- 外部群限制:暂不支持在外部群 / 客户群中使用。
- 插件来源:腾讯云 Lighthouse 部署的 OpenClaw 使用的插件非企业微信官方提供,如有问题建议联系 Lighthouse 团队。
- 升级插件:
openclaw plugins update wecom-openclaw-plugin
6.4 钉钉(DingTalk)插件
文档来源:https://open.dingtalk.com/document/dingstart/build-dingtalk-ai-employees
更新日期:2026-03-12
6.4.1 功能特性
将 OpenClaw 接入钉钉,创建 AI 助理员工,实现以下能力:
| 类别 | 具体能力 |
|---|---|
| 🤖 AI 助理 | 基于通义千问等大模型的智能问答与任务处理 |
| 💬 群聊交互 | 群聊 @ 机器人自动回复 |
| 📨 单聊交互 | 私聊机器人进行对话 |
| 📤 消息收发 | 卡片流式输出、互动卡片消息 |
| 🔌 MCP 深度集成 | 调用钉钉 MCP 扩展更多功能 |
核心优势:
- 无缝集成钉钉生态,直接触达数亿钉钉用户
- 支持群聊 @ 机器人和私聊两种交互模式
- 集成通义千问等先进大模型,支持内容创作、代码生成、数据分析等场景
6.4.2 安装步骤
步骤一:一键创建 OpenClaw 机器人
- 登录开发者后台
- 在应用开发下,点击「立即创建」,选择「一键创建 OpenClaw 机器人」
- 填写机器人基本信息(名称、简介、图标),也可使用默认信息,直接点击「确定」
- 创建成功后,自动展示 Client ID 和 Client Secret,请妥善保存
⚠️ 重要:Client ID 和 Client Secret 是应用关键信息,请勿轻易提供给他人。
自动创建的 OpenClaw 会默认开通Card.Streaming.Write、Card.Instance.Write和qyapi_robot_sendmsg权限,无需手动申请。
步骤二:部署 OpenClaw,与钉钉机器人打通
根据实际环境选择以下部署方式之一:
- 阿里云 ECS 服务器:请参考阿里云 ECS 服务器部署文档
- 阿里云轻量服务器:请参考阿里云轻量服务器部署文档
- 本地安装 OpenClaw:请参考本地安装文档
步骤三:使用钉钉机器人
场景一:单聊中使用机器人
- 在钉钉顶部搜索框搜索已创建机器人名称
- 直接发送消息,机器人自动回复
场景二:群聊中使用机器人
- 打开钉钉客户端,进入任意群聊(群归属组织需与创建机器人时的组织相同)
- 单击群设置 → 机器人 → 添加机器人
- 搜索已创建并发布的机器人,点击添加
- 通过 @ 机器人实现自动回复
⚠️ 搜索机器人时只能搜索已发布的机器人,且需已完成「步骤二」的部署。
6.4.3 配置方法
6.4.3.1 安装钉钉连接插件
openclaw plugins install @dingtalk-real-ai/dingtalk-connector
6.4.3.2 核心配置参数
| 参数 | 说明 |
|---|---|
| Client ID | 创建机器人时获取的应用唯一标识 |
| Client Secret | 创建机器人时获取的应用密钥 |
| 18789 端口 | 确保服务器 18789 端口对外开放(消息接收地址) |
6.4.3.3 钉钉开发者后台获取凭证
- 登录开发者后台
- 进入「应用开发」→「OpenClaw」→ 应用的「凭证与基础信息」
- 获取 Client ID 和 Client Secret
6.4.4 注意事项
- 组织归属:群聊添加机器人时,群归属组织必须与创建机器人时的组织相同;非内部群需转换为内部群。
- 端口要求:确保服务器 18789 端口对外开放,否则机器人无法接收消息。
- 应用发布:机器人需先发布版本后才能在群聊中被搜索到。
- 默认权限:创建 OpenClaw 机器人时自动开通三个权限,如遇权限不足需在开发者后台手动申请。
- 问题排查:如配置后无法收到消息,请按以下顺序检查:
- 确认钉钉插件已正确安装
- 检查 Client ID 和 Client Secret 配置是否正确
- 确认已申请所需权限
- 检查机器人消息接收地址是否正确
- 确保 18789 端口对外开放
- 确保应用版本已发布
6.5 国内三大平台对比
| 对比项 | 飞书 | 企业微信 | 钉钉 |
|---|---|---|---|
| 插件包 | @larksuite/openclaw-lark |
@wecom/wecom-openclaw-cli |
@dingtalk-real-ai/dingtalk-connector |
| 接入方式 | 长连接 / Webhook | 长连接(推荐)/ URL 回调 | 长连接 |
| MCP 能力 | ✅ 完整 27 种工具 | ✅ 完整工具集 | ✅ MCP 集成 |
| 文档管理 | ✅ 云文档 | ✅ 文档(v5.0.7+) | ✅ MCP 扩展 |
| 多维表格 | ✅ 完整支持 | ✅ 智能表格 + Webhook | ❌ |
| 日历日程 | ✅ 完整支持 | ❌ | ❌ |
| 任务管理 | ✅ 完整支持 | ❌ | ❌ |
| 消息类型 | 文字/图片/文件等 | 文字/图片/MD/音频/视频等 | 文字/卡片流式输出 |
| 安装命令 | npx @larksuite/openclaw-lark install |
npx @wecom/wecom-openclaw-cli install |
openclaw plugins install @dingtalk-real-ai/dingtalk-connector |
| 上手难度 | ⭐⭐⭐ 中等 | ⭐⭐⭐ 中等 | ⭐⭐ 简单 |
| 默认权限 | 需手动批量导入 | 需手动申请 | ✅ 自动开通 3 个核心权限 |
| 一键创建 | ❌ | ❌ | ✅ |
| 企业 IM 整合 | 文档/日历/任务全生态 | 文档/审批/打卡 | 群聊/日程/审批 |
选择建议:
- 飞书:适合需要完整企业生态(文档、日历、任务、多维表格)的团队
- 企业微信:适合腾讯生态团队,需要文档协作和智能表格
- 钉钉:最简单,适合快速尝鲜阿里系产品
6.6 通用渠道配置
6.6.1 DM 策略详解
| 值 | 行为 | 适用场景 |
|---|---|---|
pairing |
默认。未知用户收到配对码,需管理员审批 | 公开 bot(防滥用) |
allowlist |
仅 allowFrom 列表中的用户可以聊天 |
受控用户群 |
open |
允许所有人(需 allowFrom: ["*"]) |
完全信任的环境 |
disabled |
禁用私信 | 纯群聊场景 |
6.6.2 配对审批流程
# 用户 A 首次发消息给 bot
# bot 回复配对码(如 ABC123)
# 管理员执行审批
openclaw pairing approve feishu ABC123
# 用户 A 现已配对成功,后续消息正常处理
七、进阶功能
7.1 心跳(Heartbeat)
心跳是 OpenClaw 的主动推送机制,让 AI 可以在没有用户消息的情况下主动执行任务、发送通知。
7.1.1 配置
{
agents: {
defaults: {
heartbeat: {
every: "30m", // 间隔(0m = 禁用)
target: "last", // last(最后对话渠道)/ none / <channel名>
lightContext: true, // 仅加载 HEARTBEAT.md(节省 token)
isolatedSession: true, // 独立会话(不污染主对话)
activeHours: { // 活跃时段(机器人作息)
start: "08:00",
end: "22:00",
timezone: "Asia/Shanghai",
},
includeReasoning: false, // 是否发送推理过程
ackMaxChars: 300, // HEARTBEAT_OK 后允许的额外字符数
directPolicy: "block", // block / allow(对 DM 类心跳目标)
},
},
},
}
7.1.2 HEARTBEAT.md 写法
在 ~/.openclaw/workspace/ 目录下创建 HEARTBEAT.md,定义心跳时执行的检查任务:
# 心跳检查清单
## 每次心跳执行
- 快速扫描收件箱,有无紧急消息?
- 检查今日日历是否有即将到来的日程(<2小时)
## 每日执行(每8小时)
- 汇总今日重要新闻摘要
- 检查系统健康状态
## 条件执行
- 如果有未完成的任务超过24小时,发送提醒
- 如果检测到异常(服务宕机等),立即告警
## 心跳回复规范
- 无需操作:回复 HEARTBEAT_OK
- 有通知内容:直接发送内容
- 有告警:直接发送告警(不要包含 HEARTBEAT_OK)
7.2 定时任务(Cron Jobs)
Cron 是 Gateway 内置的持久化调度器,支持标准 cron 表达式和三种投递方式。
7.2.1 执行风格
| 风格 | 说明 | 适用场景 |
|---|---|---|
main |
在主会话中运行,享受完整上下文 | 需要参考历史对话的提醒 |
isolated |
独立会话运行(cron:<jobId>) |
频繁后台任务,不污染主对话 |
current |
在创建时的当前会话运行 | 需要累积上下文的定时任务 |
7.2.2 调度类型
| 类型 | CLI 参数 | 说明 |
|---|---|---|
at |
--at |
一次性任务(UTC ISO 时间) |
every |
--every |
固定间隔(20m、1h、2h30m) |
cron |
--cron |
标准 cron 表达式(五字段或六字段含秒) |
7.2.3 完整 CLI 示例
# 一次性提醒(立即触发后删除)
openclaw cron add \
--name "会议提醒" \
--at "2026-03-25T09:00:00+08:00" \
--session main \
--system-event "Reminder: 10点有产品评审会议" \
--wake now \
--delete-after-run
# 每日早报(独立会话,投递到 Telegram)
openclaw cron add \
--name "每日早报" \
--cron "0 7 * * *" \
--tz "Asia/Shanghai" \
--session isolated \
--message "汇总今日重要新闻、天气和日程安排。" \
--announce \
--channel telegram
# 每小时健康检查
openclaw cron add \
--name "系统健康检查" \
--cron "0 * * * *" \
--tz "UTC" \
--stagger 30s \
--session isolated \
--message "检查 OpenClaw Gateway 运行状态和日志错误。" \
--announce
# 自定义会话(跨 Cron 运行保持上下文)
openclaw cron add \
--name "每日站会" \
--cron "0 9 * * 1-5" \
--tz "Asia/Shanghai" \
--session session:standup \
--message "生成今日站会摘要,包括任务进度和阻塞点。" \
--announce \
--channel feishu
7.2.4 投递配置
{
"name": "每日早报",
"schedule": {
"kind": "cron",
"expr": "0 7 * * *",
"tz": "Asia/Shanghai",
"staggerMs": 300000 // ±5 分钟交错(避免整点风暴)
},
"sessionTarget": "isolated",
"payload": {
"kind": "agentTurn",
"message": "汇总今日重要新闻、天气和日程安排。",
"lightContext": true
},
"delivery": {
"mode": "announce", // announce | webhook | none
"channel": "telegram",
"to": "-1001234567890",
"bestEffort": true // 投递失败不阻塞主会话
},
"retry": {
"maxAttempts": 3,
"backoffMs": [60000, 120000, 300000]
}
}
7.3 Webhooks
Webhooks 允许 OpenClaw 接收外部系统的 HTTP 请求,实现与 GitHub、GitLab、Jira、Gmail 等的集成。
7.3.1 基础配置
{
hooks: {
enabled: true,
token: "your-webhook-secret", // 签名验证 Token
path: "/hooks", // Webhook 路径前缀
defaultSessionKey: "hook:ingress", // 默认会话键
allowRequestSessionKey: false, // 禁止请求指定会话键
allowedSessionKeyPrefixes: ["hook:"], // 允许的会话键前缀
mappings: [
{
// 匹配路径包含 "gmail" 的请求
match: { path: "gmail" },
action: "agent",
agentId: "main",
deliver: true, // 投递到用户渠道
},
{
// GitHub PR 事件
match: { path: "github", event: "pull_request" },
action: "agent",
agentId: "main",
message: "GitHub PR: {{payload.title}} - {{payload.action}}",
},
],
},
}
7.3.2 安全建议
⚠️ 将所有 Webhook 内容视为不可信输入,配置
allowUnsafeExternalContent: false。
7.4 Tailscale 远程访问
Tailscale 是 OpenClaw 远程访问的推荐方案,提供零配置的加密隧道。
7.4.1 三种模式对比
| 模式 | 说明 | 安全性 | 适用场景 |
|---|---|---|---|
off |
不使用 Tailscale | - | 本地使用 |
serve |
仅 Tailnet 内访问 | 高 | 远程管理(同网络) |
funnel |
公网 HTTPS 访问 | 中 | 公网访问(需密码) |
7.4.2 Tailnet 专用(Serve)配置
{
gateway: {
bind: "loopback",
tailscale: { mode: "serve" },
},
}
访问地址:https://<machine-name>.<tailnet>.ts.net/
7.4.3 公网访问(Funnel)配置
{
gateway: {
bind: "loopback",
tailscale: { mode: "funnel" },
auth: { mode: "password", password: "your-strong-password" },
},
}
⚠️ Funnel 模式下必须设置密码认证。建议使用
OPENCLAW_GATEWAY_PASSWORD环境变量而非明文配置。
7.4.4 Tailscale 认证免 Token
{
gateway: {
tailscale: { mode: "serve" },
auth: {
mode: "token",
allowTailscale: true, // Tailnet 身份 header 可信,无需 Token
},
},
}
⚠️ 启用
allowTailscale后,同一 Tailnet 上的任何设备都可以免认证访问 Gateway。
7.4.5 前置条件
# 1. 安装 Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
# 2. 登录 Tailscale
tailscale up --accept-routes
# 3. 验证 Tailscale 运行
tailscale status
# 4. 启动 Gateway(自动配置 Tailscale Serve)
openclaw gateway start
# 5. 检查 HTTPS 地址
tailscale serve status
7.5 Docker 沙箱
Docker 沙箱将工具执行隔离在容器中运行,有效限制 AI 的操作范围,降低意外损害的风险。
7.5.1 模式与作用域
| 模式 | 说明 | 适用场景 |
|---|---|---|
off |
不使用沙箱(默认) | 本地开发,可信环境 |
non-main |
仅非主会话使用沙箱 | 日常对话在宿主机,定时任务在沙箱 |
all |
所有会话都使用沙箱 | 高安全要求 |
| 作用域 | 说明 |
|---|---|
session |
每个会话一个独立容器(默认) |
agent |
每个 Agent 一个容器 |
shared |
所有沙箱会话共享一个容器 |
7.5.2 工作区访问模式
| 模式 | 说明 | 风险 |
|---|---|---|
none |
隔离工作区(~/.openclaw/sandboxes) |
最低 |
ro |
挂载 Agent 工作区只读 | 低 |
rw |
挂载 Agent 工作区读写 | 中 |
7.5.3 完整沙箱配置
{
agents: {
defaults: {
sandbox: {
mode: "non-main",
scope: "session",
backend: "docker",
workspaceAccess: "none",
docker: {
image: "openclaw-sandbox:bookworm-slim",
network: "none", // 默认无网络隔离
binds: [
"/home/user/source:/source:ro", // 只读挂载源码
],
setupCommand: "apt-get update && apt-get install -y curl jq git python3",
},
browser: {
autoStart: true,
autoStartTimeoutMs: 10000,
network: "openclaw-sandbox-browser",
},
},
},
},
}
7.5.4 构建沙箱镜像
# 基础镜像(最小)
scripts/sandbox-setup.sh
# 包含常用工具(curl/jq/nodejs/python3/git)
scripts/sandbox-common-setup.sh
# 沙箱浏览器镜像
scripts/sandbox-browser-setup.sh
7.5.5 SSH 沙箱后端
{
agents: {
defaults: {
sandbox: {
mode: "all",
backend: "ssh",
scope: "session",
workspaceAccess: "rw",
ssh: {
target: "user@gateway-host:22",
workspaceRoot: "/tmp/openclaw-sandboxes",
identityFile: "~/.ssh/id_ed25519",
strictHostKeyChecking: true,
updateHostKeys: true,
},
},
},
},
}
7.5.6 安全注意事项
network: "host"和network: "container:<id>"默认被阻止- 敏感挂载(SSH 密钥、服务凭证)应设为
:ro只读 - 危险挂载源(
/etc、/proc、/sys、docker.sock)会被自动阻止 tools.elevated绕过沙箱,始终在宿主机执行
7.6 Voice Wake 与 Talk Mode
7.6.1 Voice Wake(macOS / iOS)
通过语音唤醒词激活 AI,无需手动点击:
- 配对设备后,在 OpenClaw App 或系统设置中启用
- 设置唤醒词(默认:
Hey OpenClaw) - 说出唤醒词,AI 响应后开始对话
{
agents: {
defaults: {
voice: {
wakeWord: "Hey Assistant",
language: "zh-CN",
},
},
},
}
7.6.2 Talk Mode(Android)
Android 上的连续语音对话模式:
- 打开 OpenClaw Android App
- 长按麦克风按钮开始说话
- 释放按钮,AI 处理语音识别结果
- AI 回复通过语音播报
7.7 安全最佳实践
7.7.1 安全模型说明
OpenClaw 的安全模型基于个人助手信任边界:
- 一个 Gateway 实例 = 一个信任边界
- Gateway 主机和配置目录(
~/.openclaw)属于可信区域 - 不支持在单一 Gateway 上运行面向对抗性用户的场景
- 如需多用户隔离,应部署独立 Gateway(理想情况按 OS 用户/主机隔离)
7.7.2 安全审计命令
# 运行安全审计(基础)
openclaw security audit
# 深度审计
openclaw security audit --deep
# 自动修复
openclaw security audit --fix
# JSON 格式输出(CI/CD 使用)
openclaw security audit --json
审计检查项:
- Gateway 认证配置
- 浏览器控制暴露风险
- 提权命令白名单
- 文件系统权限
- 渠道工具暴露
7.7.3 工具提权管理
tools.elevated 允许指定命令绕过沙箱在宿主机执行:
{
tools: {
elevated: [
"systemctl", // 系统服务管理
"docker", // Docker 容器管理(谨慎!)
"pm2", // 进程管理器
],
},
}
⚠️ 提权执行绕过了沙箱安全边界。仅在必要时使用,并限制命令范围。
7.7.4 多用户 DM 安全
{
session: {
dmScope: "per-channel-peer",
},
channels: {
feishu: { dmPolicy: "pairing" },
telegram: { dmPolicy: "pairing" },
},
}
八、最佳实践
8.1 常见使用场景示例
8.1.1 个人知识管理助手
场景:将 OpenClaw 接入飞书,作为你的个人知识管理助手。
配置:
{
channels: { feishu: { enabled: true, dmPolicy: "allowlist" } },
agents: {
defaults: {
model: { primary: "anthropic/claude-opus-4-6" },
heartbeat: {
every: "4h",
target: "feishu",
lightContext: true,
activeHours: { start: "09:00", end: "21:00" },
},
},
},
}
# 个人知识管理心跳
- 检查飞书云文档「待整理」文件夹是否有新文档,有则汇总要点
- 推送今日重要日程提醒(距离开始 <2小时)
- 每周五下午总结本周工作成果
Cron 任务:
# 每日复盘(工作日晚 6 点)
openclaw cron add \
--name "每日复盘" \
--cron "0 18 * * 1-5" \
--tz "Asia/Shanghai" \
--message "回顾今日工作,整理待办,生成复盘摘要推送到飞书。" \
--announce --channel feishu
8.1.2 开发团队 Bot
场景:在 Discord 中部署 OpenClaw 作为开发团队的 AI Bot,处理 GitHub PR 通知、技术问答和代码审查。
配置:
{
channels: {
discord: {
enabled: true,
botToken: "xxx",
dmPolicy: "allowlist",
groupPolicy: "allowlist",
groupAllowFrom: ["123456789"],
},
},
agents: {
defaults: {
sandbox: { mode: "all", scope: "session", backend: "docker" },
},
},
}
Webhook 集成:
{
hooks: {
enabled: true,
token: "github-webhook-secret",
mappings: [
{
match: { path: "github", event: "pull_request" },
message: "GitHub: {{payload.pull_request.title}} by {{payload.sender.login}} - {{payload.action}}",
},
],
},
}
8.1.3 家庭自动化控制中心
场景:在家庭网络上部署 OpenClaw,配合 Home Assistant 实现语音控制的智能家居中心。
配置:
{
channels: {
telegram: {
enabled: true,
botToken: "xxx",
dmPolicy: "allowlist",
allowFrom: ["your-telegram-user-id"],
},
},
agents: {
defaults: {
sandbox: {
mode: "all",
workspaceAccess: "rw",
docker: {
network: "host", // 访问家庭网络
},
},
},
},
}
8.2 性能优化建议
8.2.1 减少 Token 消耗
{
session: {
maintenance: {
mode: "enforce", // 自动清理旧会话
pruneAfter: "30d", // 缩短保留时间
maxEntries: 300, // 减少会话条目数
},
},
agents: {
defaults: {
heartbeat: {
lightContext: true, // 心跳使用轻量上下文
isolatedSession: true, // 独立会话
},
imageMaxDimensionPx: 800, // 降低图像处理尺寸
},
},
}
8.2.2 提高响应速度
- 使用本地模型(如 Ollama)作为备用,减少网络延迟
- 开启沙箱并行:
cron.maxConcurrentRuns: 2 - 使用
sessionScope: "agent"而非"session"减少容器创建开销
8.2.3 降低 API 成本
- 日常闲聊使用轻量模型(如
claude-haiku),复杂任务切换到 Opus - 心跳使用
lightContext: true减少 token 消耗 - 配置合理的会话重置策略,避免历史积累
{
agents: {
defaults: {
model: {
primary: "anthropic/claude-haiku-4",
fallbacks: ["anthropic/claude-sonnet-4-7"],
},
heartbeat: {
model: "anthropic/claude-haiku-4", // 心跳专用轻量模型
},
},
},
}
8.3 故障排查指南
8.3.1 诊断命令速查表
| 问题现象 | 诊断命令 |
|---|---|
| Gateway 无法启动 | openclaw gateway status → openclaw logs --follow |
| 渠道无法连接 | openclaw channels list → openclaw doctor --fix |
| 飞书消息无响应 | /feishu doctor --fix |
| 模型调用失败 | openclaw model list → 检查 API Key |
| 沙箱无法创建 | docker ps → docker images |
| 设备无法配对 | openclaw pairing list → openclaw logs --filter pairing |
| 心跳不触发 | openclaw cron list → 检查 heartbeat.every 配置 |
| 消息延迟 | openclaw gateway status → 检查并发会话数 |
8.3.2 常见问题处理流程
问题:飞书插件无法收发消息
# 1. 检查插件是否安装
openclaw plugins list
# 2. 检查飞书配置
openclaw config get channels.feishu
# 3. 运行诊断
/feishu doctor --fix
# 4. 检查日志
openclaw logs --filter feishu --follow
# 5. 验证权限(飞书开放平台)
# 确保已开通 im:message 相关权限并发布新版本
问题:Cron 任务不执行
# 1. 列出所有任务
openclaw cron list
# 2. 检查任务配置
openclaw cron list --json
# 3. 查看运行历史
openclaw cron runs --id <job-id> --limit 20
# 4. 手动触发测试
openclaw cron run <job-id>
# 5. 检查 Cron 是否启用
openclaw config get cron.enabled
问题:沙箱 Docker 容器无法启动
# 1. 检查 Docker 是否运行
docker ps
# 2. 检查镜像是否存在
docker images | grep openclaw-sandbox
# 3. 重新构建镜像
scripts/sandbox-setup.sh
# 4. 检查磁盘空间
df -h /var/lib/docker
# 5. 检查日志
docker logs <container-id>
问题:模型调用报 401/403
# 1. 检查 API Key 配置
echo $ANTHROPIC_API_KEY
# 2. 验证 API Key 有效性
curl https://api.anthropic.com/v1/models \
-H "x-api-key: $ANTHROPIC_API_KEY"
# 3. 检查配置中的 Key 引用
openclaw config get agents.defaults.model
# 4. 清理认证缓存(解决 Profile 冲突)
rm ~/.openclaw/agents/main/agent/auth-profiles.json
# 然后重启 Gateway
openclaw gateway restart
问题:Tailscale Funnel 无法访问
# 1. 确认 Tailscale 运行
tailscale status
# 2. 检查 Funnel 配置
tailscale serve status
# 3. 确认端口可用(443/8443/10000)
ss -tlnp | grep -E "(443|8443|10000)"
# 4. 检查防火墙
sudo ufw status
sudo iptables -L -n
# 5. 测试本地访问
curl -k https://localhost:18789/health
九、命令参考
9.1 Gateway 管理
| 命令 | 说明 |
|---|---|
openclaw gateway |
启动 Gateway |
openclaw gateway --port 18789 --verbose |
指定端口启动(调试) |
openclaw gateway start |
后台启动 |
openclaw gateway status |
查看状态 |
openclaw gateway stop |
停止 |
openclaw gateway restart |
重启 |
openclaw logs --follow |
实时查看日志 |
openclaw dashboard |
打开 Web 控制台 |
openclaw doctor --fix |
诊断并修复问题 |
openclaw security audit --deep --fix |
安全审计(自动修复) |
9.2 配置管理
| 命令 | 说明 |
|---|---|
openclaw config get agents.defaults.model |
获取配置值 |
openclaw config set channels.feishu.streaming true |
设置配置值 |
openclaw config unset channels.feishu.streaming |
删除配置项 |
openclaw onboard --install-daemon |
交互式配置向导 |
9.3 渠道管理
| 命令 | 说明 |
|---|---|
openclaw channels list |
列出所有渠道 |
openclaw channels add |
添加渠道 |
openclaw channels remove <channel> |
移除渠道 |
9.4 配对管理
| 命令 | 说明 |
|---|---|
openclaw pairing list |
列出已配对设备 |
openclaw pairing approve <channel> <code> |
批准配对 |
openclaw pairing revoke <channel> <instanceId> |
撤销配对 |
openclaw pairing clear |
清除所有配对 |
openclaw pairing qrcode |
生成配对二维码 |
9.5 会话管理
| 命令 | 说明 |
|---|---|
openclaw sessions list --json |
列出所有会话 |
openclaw sessions cleanup --dry-run |
预览清理 |
openclaw sessions cleanup --enforce |
执行清理 |
openclaw sessions preview <session-key> |
预览会话内容 |
9.6 Cron 管理
| 命令 | 说明 |
|---|---|
openclaw cron add |
添加 Cron 任务 |
openclaw cron list |
列出所有任务 |
openclaw cron edit <id> |
编辑任务 |
openclaw cron run <id> |
手动运行 |
openclaw cron runs --id <id> |
查看运行历史 |
openclaw cron remove <id> |
删除任务 |
9.7 Skills 管理
| 命令 | 说明 |
|---|---|
openclaw skills search <query> |
搜索技能 |
openclaw skills install <slug> |
安装技能 |
openclaw skills update <slug> |
更新技能 |
openclaw skills update --all |
更新所有技能 |
openclaw skills list |
列出已安装技能 |
9.8 插件管理
| 命令 | 说明 |
|---|---|
openclaw plugins install <pkg> |
安装插件 |
openclaw plugins update |
更新插件 |
openclaw plugins update --all |
更新所有插件 |
openclaw plugins list |
列出插件 |
openclaw plugins uninstall <name> |
卸载插件 |
openclaw plugins troubleshoot <name> |
诊断插件 |
9.9 浏览器
| 命令 | 说明 |
|---|---|
openclaw browser start |
启动浏览器 |
openclaw browser stop |
停止浏览器 |
openclaw browser status |
查看状态 |
openclaw browser profiles |
列出配置文件 |
openclaw browser tabs |
列出标签页 |
openclaw browser open --url <url> |
打开网页 |
9.10 沙箱
| 命令 | 说明 |
|---|---|
openclaw sandbox list |
列出沙箱实例 |
openclaw sandbox recreate |
重建沙箱 |
openclaw sandbox explain |
解释沙箱配置 |
9.11 系统事件
| 命令 | 说明 |
|---|---|
openclaw system event --text "..." --mode now |
立即触发事件 |
openclaw system event --text "..." --mode next-heartbeat |
下次心跳触发 |
openclaw events list --limit 50 |
查看事件历史 |
附录
A. 文件路径速查
| 路径 | 说明 |
|---|---|
~/.openclaw/openclaw.json |
主配置文件 |
~/.openclaw/openclaw.json.local |
本地覆盖配置(不提交 Git) |
~/.openclaw/env |
环境变量文件 |
~/.openclaw/agents/<id>/sessions/ |
会话存储 |
~/.openclaw/cron/jobs.json |
Cron 任务存储 |
~/.openclaw/skills/ |
托管技能目录 |
~/.openclaw/workspace/ |
工作区根目录 |
~/.openclaw/workspace/skills/ |
工作区技能目录 |
~/.openclaw/workspace/HEARTBEAT.md |
心跳检查清单 |
~/.openclaw/agents/<id>/agent/auth-profiles.json |
认证 Profile 存储 |
B. 推荐阅读
- 官方文档:https://docs.openclaw.ai/
- GitHub:https://github.com/openclaw/openclaw
- ClawHub 市场:https://clawhub.ai/
- 国内技能市场:https://skillhub.tencent.com/
- Discord 社区:https://discord.gg/clawd
- DeepWiki 分析:https://deepwiki.com/openclaw/openclaw
本文档由小时 AI 基于官方文档整理编写,版本更新至 2026 年 3 月。如有疑问请参考 https://docs.openclaw.ai/