高级用法

高级用法

探索 OpenClaw 的高级功能,包括多代理路由、Canvas 模式、浏览器控制和自定义技能开发。

多代理路由

将不同的渠道或用户路由到具有单独配置的隔离代理实例。

基本路由

在配置文件中配置路由:

{
  "routing": {
    "whatsapp:+1234567890": "personal",
    "slack:#engineering": "work",
    "telegram:@research": "research"
  }
}

带自定义配置的高级路由

每个路由可以有自己的代理配置:

{
  "routing": {
    "whatsapp:+1234567890": {
      "agent": "personal",
      "model": "claude-sonnet-4-6",
      "systemPrompt": "你是我的个人助手。要随意和友好。",
      "temperature": 0.8,
      "context": {
        "maxMessages": 50,
        "strategy": "sliding-window"
      }
    },
    "slack:#engineering": {
      "agent": "work",
      "model": "claude-opus-4-6",
      "systemPrompt": "你是一个专业的工程助手。要精确和技术性。",
      "temperature": 0.3,
      "thinkingLevel": "high",
      "context": {
        "maxMessages": 200,
        "strategy": "summarization"
      }
    },
    "telegram:@research": {
      "agent": "research",
      "model": "claude-opus-4-6",
      "systemPrompt": "你是一个研究助手。深入思考并提供详细分析。",
      "thinkingLevel": "xhigh",
      "context": {
        "maxMessages": 100,
        "strategy": "hybrid"
      }
    }
  }
}

基于模式的路由

使用通配符进行灵活路由:

{
  "routing": {
    "whatsapp:*": "personal",
    "slack:#eng-*": "engineering",
    "slack:#design-*": "design",
    "*:@admin": "admin"
  }
}

动态路由

基于消息内容或用户属性进行路由:

# CLI 命令设置路由规则
openclaw routing add --pattern "slack:#*" --agent "work" --condition "workHours"

Canvas 模式

Canvas 是一个代理驱动的可视化工作区,用于复杂的多步骤任务。

打开 Canvas

openclaw canvas open

或从聊天中:

/canvas

Canvas 功能

  • 可视化任务分解:查看复杂任务分解为步骤
  • A2UI(代理到 UI):代理直接操作 UI 元素
  • 实时协作:与代理一起工作
  • 多步骤工作流:跟踪复杂操作的进度
  • 状态持久化:跨会话恢复工作

Canvas 用例

  1. 代码重构:可视化文件更改和依赖关系
  2. 项目规划:将功能分解为任务
  3. 数据分析:交互式数据探索
  4. 内容创作:协作写作和编辑
  5. 系统设计:架构图和规划

Canvas 命令

# 为当前对话打开 canvas
openclaw canvas open

# 使用特定任务打开 canvas
openclaw canvas open --task "重构身份验证系统"

# 列出活动的 canvas
openclaw canvas list

# 关闭 canvas
openclaw canvas close <canvas-id>

浏览器控制

通过 CDP(Chrome DevTools Protocol)控制 Chrome/Chromium 浏览器。

启用浏览器控制

{
  "browser": {
    "enabled": true,
    "chromePath": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
    "headless": false,
    "userDataDir": "~/.openclaw/chrome-profile",
    "viewport": {
      "width": 1920,
      "height": 1080
    }
  }
}

浏览器自动化示例

要求您的代理控制浏览器:

打开 GitHub 并搜索 OpenClaw
导航到仓库并给它加星
打开问题页面并创建新问题
填写标题为"功能请求"的表单并提交

浏览器控制用例

  1. 网页抓取:从网站提取数据
  2. 测试:自动化 UI 测试
  3. 表单填写:自动化重复的网页任务
  4. 研究:从多个来源收集信息
  5. 监控:检查网站状态和更改

浏览器安全

浏览器控制需要明确权限:

# 授予浏览器控制权限
openclaw config set browser.enabled true

# 撤销权限
openclaw config set browser.enabled false

语音交互

配置高级语音功能以实现免提操作。

macOS/iOS 语音唤醒

{
  "voice": {
    "enabled": true,
    "wakeWord": "嘿 Claw",
    "language": "zh-CN",
    "voiceId": "zh-CN-Neural2-J",
    "continuous": false,
    "confirmationSound": true
  }
}

Android 连续语音模式

{
  "voice": {
    "enabled": true,
    "continuous": true,
    "language": "zh-CN",
    "silenceThreshold": 2000,
    "autoSubmit": true
  }
}

语音命令

  • "嘿 Claw,今天天气怎么样?"
  • "嘿 Claw,给 John 发消息"
  • "嘿 Claw,打开 canvas"
  • "嘿 Claw,启动思考模式"

自定义技能开发

创建您自己的技能作为 SKILL.md 文件。

技能文件结构

创建 my-skill/SKILL.md

---
name: my-custom-skill
version: 1.0.0
description: 我的工作流的自定义技能
author: 您的名字
category: automation
tags: [api, data, custom]
requires:
  env:
    - API_KEY
    - SECRET_TOKEN
  binaries:
    - curl
    - jq
  permissions:
    - network
    - filesystem
---

# 我的自定义技能

此技能执行自定义自动化任务。

## 用法

通过以下方式调用此技能:
- "使用我的自定义技能获取数据"
- "运行自定义工作流"
- "执行我的自动化"

## 实现

该技能使用以下方法:

1. 使用 curl  API 获取数据
2. 使用 jq 处理 JSON
3. 将结果存储在工作区中

## 示例

### 示例 1:获取用户数据

"使用我的自定义技能获取 ID 为 12345 的用户数据"

代理将:
1. 调用 API 端点
2. 解析响应
3. 格式化并显示数据

### 示例 2:批量处理

"使用我的自定义技能处理数据库中的所有用户"

代理将:
1. 获取所有用户 ID
2. 处理每个用户
3. 生成摘要报告

## 配置

设置所需的环境变量:

```bash
export API_KEY="your-api-key"
export SECRET_TOKEN="your-secret-token"

错误处理

该技能处理这些错误情况:

  • API 速率限制
  • 网络超时
  • 无效响应
  • 缺少权限

更新日志

1.0.0 (2026-03-04)

  • 初始版本
  • 基本 API 集成
  • 错误处理

### 发布到 ClawHub

```bash
# 发布您的技能
openclaw skill publish ./my-skill/SKILL.md

# 更新现有技能
openclaw skill publish ./my-skill/SKILL.md --version 1.1.0

# 添加发布说明
openclaw skill publish ./my-skill/SKILL.md --notes "添加了批量处理"

技能最佳实践

  1. 清晰的文档:解释技能的功能和使用方法
  2. 明确的要求:列出所有依赖项和权限
  3. 错误处理:记录错误情况和恢复
  4. 示例:提供具体的使用示例
  5. 版本控制:使用语义版本控制
  6. 测试:发布前彻底测试

Nix 模式技能

使用 Nix 插件创建系统级技能以实现深度操作系统集成。

示例:macOS UI 自动化

---
name: macos-automation
version: 1.0.0
description: 自动化 macOS UI 任务
requires:
  nix:
    - darwin.apple_sdk.frameworks.ApplicationServices
  permissions:
    - accessibility
    - screen-recording
---

# macOS 自动化技能

使用原生 API 自动化 macOS UI 任务。

## 功能

- 点击 UI 元素
- 输入文本
- 截屏
- 读取窗口内容
- 控制应用程序

Nix 插件开发

Nix 模式技能可以访问系统级 API:

# 启用 Nix 模式
openclaw config set nix.enabled true

# 安装 Nix 插件
openclaw nix install macos-automation

高级会话管理

会话隔离策略

{
  "sessions": {
    "isolation": "per-conversation",
    "persistence": true,
    "ttl": 86400,
    "autoCleanup": true,
    "encryption": true
  }
}

会话备份和恢复

# 备份所有会话
openclaw session backup --output ./sessions-backup.json

# 备份特定会话
openclaw session backup --session abc123 --output ./session-abc123.json

# 恢复会话
openclaw session restore --input ./sessions-backup.json

# 合并恢复
openclaw session restore --input ./sessions-backup.json --merge

会话分析

# 查看会话统计
openclaw session stats

# 导出会话数据
openclaw session export --format csv --output ./sessions.csv

性能优化

减少延迟

{
  "agent": {
    "model": "claude-haiku-4-5",
    "maxTokens": 2048
  },
  "context": {
    "maxMessages": 20,
    "maxTokens": 4000
  }
}

降低成本

{
  "agent": {
    "model": "claude-sonnet-4-6",
    "temperature": 0.3
  },
  "context": {
    "strategy": "summarization",
    "summaryThreshold": 30
  }
}

提高质量

{
  "agent": {
    "model": "claude-opus-4-6",
    "thinkingLevel": "xhigh",
    "temperature": 0.7
  },
  "context": {
    "maxMessages": 200,
    "strategy": "hybrid"
  }
}

监控和日志

启用详细日志

{
  "logging": {
    "level": "debug",
    "file": "~/.openclaw/logs/openclaw.log",
    "maxSize": "100MB",
    "maxFiles": 10,
    "format": "json"
  }
}

查看日志

# 跟踪日志
tail -f ~/.openclaw/logs/openclaw.log

# 搜索日志
grep "ERROR" ~/.openclaw/logs/openclaw.log

# 查看结构化日志
jq '.' ~/.openclaw/logs/openclaw.log

指标和分析

# 查看网关指标
openclaw metrics

# 导出指标
openclaw metrics export --format prometheus

安全最佳实践

加密

{
  "memory": {
    "persistence": {
      "encryption": true,
      "encryptionKey": "env:OPENCLAW_ENCRYPTION_KEY"
    }
  }
}

访问控制

{
  "dmPolicy": "pairing",
  "whitelist": ["+1234567890"],
  "blacklist": ["+9876543210"],
  "rateLimit": {
    "enabled": true,
    "maxRequests": 100,
    "window": 3600
  }
}

审计日志

{
  "audit": {
    "enabled": true,
    "logFile": "~/.openclaw/audit.log",
    "events": ["message", "skill", "config", "session"]
  }
}

下一步