高级用法
高级用法
探索 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 用例
- 代码重构:可视化文件更改和依赖关系
- 项目规划:将功能分解为任务
- 数据分析:交互式数据探索
- 内容创作:协作写作和编辑
- 系统设计:架构图和规划
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
导航到仓库并给它加星
打开问题页面并创建新问题
填写标题为"功能请求"的表单并提交
浏览器控制用例
- 网页抓取:从网站提取数据
- 测试:自动化 UI 测试
- 表单填写:自动化重复的网页任务
- 研究:从多个来源收集信息
- 监控:检查网站状态和更改
浏览器安全
浏览器控制需要明确权限:
# 授予浏览器控制权限
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 "添加了批量处理"
技能最佳实践
- 清晰的文档:解释技能的功能和使用方法
- 明确的要求:列出所有依赖项和权限
- 错误处理:记录错误情况和恢复
- 示例:提供具体的使用示例
- 版本控制:使用语义版本控制
- 测试:发布前彻底测试
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"]
}
}