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 支持服务器/频道/线程 多人社群,开发者社区
WhatsApp 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 配置

  1. 安装 OpenClaw macOS App(从官网下载 .dmg
  2. 系统设置 → 隐私与安全 → 麦克风 → 允许 OpenClaw
  3. 首次运行时在 App 内完成设备配对
  4. 系统设置 → 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 小时运行,适合需要远程访问的场景。

腾讯云/阿里云部署注意事项

  1. 安全组配置:开放端口 18789(Gateway),如使用 Funnel 模式还需开放 443/8443
  2. Tailscale 配合:推荐安装 Tailscale 实现加密隧道,避免直接暴露端口
  3. 内存要求:至少 1GB RAM,推荐 2GB+(含 Docker 沙箱)
  4. 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 的工作原理

  1. 每次开启新会话,OpenClaw 扫描所有技能目录
  2. 根据技能的 metadata 过滤条件,确定哪些技能在当前环境可用
  3. 将可用技能的名称和描述注入到系统提示词中
  4. AI 在推理时判断是否需要调用某个技能
  5. 技能加载后,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

SkillHubhttps://skillhub.tencent.com)是专为中国用户优化的 OpenClaw 技能社区,由腾讯云 Lighthouse 团队维护。

与 ClawHub 的区别

方面 ClawHub SkillHub Tencent
维护方 OpenClaw 官方社区 腾讯云 Lighthouse 团队
语言 英文为主 中文优先
访问速度 海外服务器 国内服务器,访问更快
技能来源 全球开发者 国内开发者贡献
配套插件 国际渠道插件 企业微信、飞书、钉钉插件
安装方式 clawhub install 插件市场一键安装

特点

  • 针对国内网络优化,下载速度快
  • 收录了飞书、企业微信、钉钉等国内渠道的配套技能
  • 部分技能经过国内开发者团队审核和测试
  • 与腾讯云 Lighthouse 部署的 OpenClaw 一键集成

使用方式

  1. 访问官网:打开 https://skillhub.tencent.com/,注册并登录腾讯云账号
  2. 浏览技能:在技能市场浏览可用技能(按分类筛选:飞书、微信、日历、邮件等)
  3. 安装技能:点击技能详情页的「安装」按钮,获取安装命令
  4. 在 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 快照 depthrefs(role/aria)、compact
screenshot 截图 fullPagetype(png/jpeg)、quality
navigate 导航到 URL url
act 执行 UI 操作 kindselector/reftext
open 新开标签页 url
close 关闭标签页 -
focus 聚焦标签页 -
console 读取控制台日志 level
pdf 导出 PDF widthheight
upload 文件上传 elementpaths
dialog 处理对话框 acceptpromptText

5.2.3 act 操作类型详解

kind 说明 关键参数
click 点击元素 selectorrefbutton(左/中/右)
type 输入文本 selectortextslowly
press 按键 keyEnterEscapeControl+a
hover 悬停 selector
drag 拖拽 startRefendRef
select 下拉选择 selectorvalues
fill 填充表单 selectorvalues
resize 调整窗口 widthheight
wait 等待 timeMsselector(等待元素出现)
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 htmlwidthheightmaxWidth
hide 隐藏 Canvas -
navigate 导航到路径 url
eval 执行 JavaScript javaScript
snapshot 获取 Canvas 快照 -
a2ui_push 推送 A2UI 内容 htmlcssjs
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 支持
WhatsApp - 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 注意事项

  1. 安全风险:插件可读取你的消息、文档、日历等数据,请仅在个人账号上安全使用,待安全隔离能力成熟后再考虑接入真实工作环境。
  2. AI 幻觉:AI 可能误解意图或生成不准确内容,重要操作务必「先预览,再确认」。
  3. 部分操作不可逆:AI 代发的消息以你的名义发出,发出即成事实。
  4. 权限申请:如遇权限不足,需在飞书开放平台批量导入所需权限并发布新版本应用。
  5. Windows 扫码问题:如终端分辨率导致扫码失败,建议使用 Cmder 终端。
  6. 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 飞书应用创建详解

步骤一:创建飞书应用

  1. 访问 飞书开放平台,登录账号
  2. 点击创建企业自建应用,填写名称和描述,上传图标

步骤二:获取凭证

  1. 凭证与基础信息中复制 App ID(格式 cli_xxx)和 App Secret

步骤三:批量导入权限

  1. 权限管理中点击批量导入,粘贴以下 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"
    ]
  }
}

步骤四:启用机器人

  1. 应用能力机器人中启用机器人能力
  2. 事件订阅中选择使用长连接接收事件,添加事件 im.message.receive_v1
  3. 版本管理与发布中创建版本并发布

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 创建企业微信机器人(长连接方式)
  1. 打开企业微信客户端 → 工作台 → 智能机器人 → 创建机器人 → 手动创建
  2. 选择「API 模式创建」
  3. 在 API 配置页面,连接方式选择「使用长连接」
  4. 保存后获取 Bot IDSecret,妥善保管
  5. 配置机器人可见范围,保存
6.3.3.2 通过 MCP 使用文档(对话授权)
  1. 直接要求机器人操作文档,例如:「帮我搜集本周零售行业重要新闻,汇总成一篇企业微信文档」
  2. 机器人自动发送授权连接,点击「确认授权」
  3. 告诉机器人「授权了」,自动对接 MCP 服务并生成文档
6.3.3.3 获取企业 ID 与应用 Secret(API 调用用)
  1. 登录企业微信管理后台 → 我的企业 → 获取企业 ID(corpid)
  2. 管理后台 → 应用管理 → 自建应用 → 新建或选择已有应用 → 查看 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 注意事项

  1. 长连接 vs URL 回调:长连接方式无需域名/IP,是 OpenClaw 对接的推荐方式;URL 回调需要企业可信域名和 IP(备案主体与企业主体相同)。
  2. 权限限制:通讯录人数 > 1000 人的企业,默认所有成员不可配置长连接机器人,需管理员开通「长连接」权限。
  3. 多模态支持:需使用多模态模型才支持附件识别。
  4. 外部群限制:暂不支持在外部群 / 客户群中使用。
  5. 插件来源:腾讯云 Lighthouse 部署的 OpenClaw 使用的插件非企业微信官方提供,如有问题建议联系 Lighthouse 团队。
  6. 升级插件
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 机器人
  1. 登录开发者后台
  2. 在应用开发下,点击「立即创建」,选择「一键创建 OpenClaw 机器人」
  3. 填写机器人基本信息(名称、简介、图标),也可使用默认信息,直接点击「确定」
  4. 创建成功后,自动展示 Client IDClient Secret,请妥善保存

⚠️ 重要:Client ID 和 Client Secret 是应用关键信息,请勿轻易提供给他人。
自动创建的 OpenClaw 会默认开通 Card.Streaming.WriteCard.Instance.Writeqyapi_robot_sendmsg 权限,无需手动申请。

步骤二:部署 OpenClaw,与钉钉机器人打通

根据实际环境选择以下部署方式之一:

  • 阿里云 ECS 服务器:请参考阿里云 ECS 服务器部署文档
  • 阿里云轻量服务器:请参考阿里云轻量服务器部署文档
  • 本地安装 OpenClaw:请参考本地安装文档
步骤三:使用钉钉机器人

场景一:单聊中使用机器人

  1. 在钉钉顶部搜索框搜索已创建机器人名称
  2. 直接发送消息,机器人自动回复

场景二:群聊中使用机器人

  1. 打开钉钉客户端,进入任意群聊(群归属组织需与创建机器人时的组织相同)
  2. 单击群设置 → 机器人 → 添加机器人
  3. 搜索已创建并发布的机器人,点击添加
  4. 通过 @ 机器人实现自动回复

⚠️ 搜索机器人时只能搜索已发布的机器人,且需已完成「步骤二」的部署。

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 钉钉开发者后台获取凭证
  1. 登录开发者后台
  2. 进入「应用开发」→「OpenClaw」→ 应用的「凭证与基础信息」
  3. 获取 Client ID 和 Client Secret

6.4.4 注意事项

  1. 组织归属:群聊添加机器人时,群归属组织必须与创建机器人时的组织相同;非内部群需转换为内部群。
  2. 端口要求:确保服务器 18789 端口对外开放,否则机器人无法接收消息。
  3. 应用发布:机器人需先发布版本后才能在群聊中被搜索到。
  4. 默认权限:创建 OpenClaw 机器人时自动开通三个权限,如遇权限不足需在开发者后台手动申请。
  5. 问题排查:如配置后无法收到消息,请按以下顺序检查:
    • 确认钉钉插件已正确安装
    • 检查 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 固定间隔(20m1h2h30m
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/sysdocker.sock)会被自动阻止
  • tools.elevated 绕过沙箱,始终在宿主机执行

7.6 Voice Wake 与 Talk Mode

7.6.1 Voice Wake(macOS / iOS)

通过语音唤醒词激活 AI,无需手动点击:

  1. 配对设备后,在 OpenClaw App 或系统设置中启用
  2. 设置唤醒词(默认:Hey OpenClaw
  3. 说出唤醒词,AI 响应后开始对话
{
  agents: {
    defaults: {
      voice: {
        wakeWord: "Hey Assistant",
        language: "zh-CN",
      },
    },
  },
}

7.6.2 Talk Mode(Android)

Android 上的连续语音对话模式:

  1. 打开 OpenClaw Android App
  2. 长按麦克风按钮开始说话
  3. 释放按钮,AI 处理语音识别结果
  4. 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" },
      },
    },
  },
}

HEARTBEAT.md

# 个人知识管理心跳

- 检查飞书云文档「待整理」文件夹是否有新文档,有则汇总要点
- 推送今日重要日程提醒(距离开始 <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 statusopenclaw logs --follow
渠道无法连接 openclaw channels listopenclaw doctor --fix
飞书消息无响应 /feishu doctor --fix
模型调用失败 openclaw model list → 检查 API Key
沙箱无法创建 docker psdocker images
设备无法配对 openclaw pairing listopenclaw 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. 推荐阅读


本文档由小时 AI 基于官方文档整理编写,版本更新至 2026 年 3 月。如有疑问请参考 https://docs.openclaw.ai/


本站由 时空 使用 Stellar 搭建。