Skip to content
OpenInfoHub
Go back

OpenClaw 完全指南(四):高级功能与维护

在本系列的最后一篇文章中,我们将深入探讨 OpenClaw 的高级功能、技能系统、远程访问配置以及日常维护和优化技巧。

目录

浏览器控制

OpenClaw 可以控制专用的 Chrome/Chromium 实例,实现网页自动化。

启用浏览器控制

在配置文件中启用:

{
  "browser": {
    "enabled": true,
    "color": "#FF4500",
    "headless": false,
    "userDataDir": "~/.openclaw/browser-profile"
  }
}

配置选项

浏览器功能

Agent 可以执行以下浏览器操作:

导航和交互

数据提取

文件操作

使用示例

你:打开 GitHub 并搜索 OpenClaw
Agent:好的,我来帮你打开 GitHub 并搜索...
[执行浏览器操作]
Agent:已找到 OpenClaw 仓库,这是截图。
MEDIA:/tmp/github-screenshot.png

浏览器配置文件

浏览器配置文件存储在:

~/.openclaw/browser-profile/

这包括:

故障排查

Linux 上的浏览器问题

如果浏览器无法启动,可能需要安装依赖:

# Ubuntu/Debian
sudo apt-get install -y \
  libnss3 \
  libatk-bridge2.0-0 \
  libdrm2 \
  libxkbcommon0 \
  libgbm1 \
  libasound2

# Fedora/RHEL
sudo dnf install -y \
  nss \
  atk \
  libdrm \
  libxkbcommon \
  mesa-libgbm \
  alsa-lib

Canvas 与 A2UI

Canvas 是 Agent 驱动的可视化工作空间。

什么是 Canvas?

Canvas 提供了一个实时的可视化界面,Agent 可以:

启用 Canvas

Canvas 通过设备节点访问(macOS/iOS/Android)。

macOS 应用

iOS/Android 节点

Canvas 操作

Agent 可以使用以下 Canvas 工具:

使用示例

你:创建一个待办事项列表
Agent:好的,我在 Canvas 上创建了一个待办列表。
[推送 UI 到 Canvas]

设备节点

设备节点扩展了 OpenClaw 的能力,允许执行设备特定的操作。

macOS 节点

macOS 应用可以作为节点运行,提供:

系统操作

媒体操作

Canvas 访问

iOS 节点

iOS 应用提供:

Android 节点

Android 应用提供:

连接选项卡

聊天会话

语音选项卡

Canvas

设备命令

配对设备节点

使用配对码

  1. 在设备上打开 OpenClaw 应用
  2. 获取配对码
  3. 在 Gateway 上批准:
    openclaw devices pair <code>

使用 Bonjour(macOS/iOS)

设备会自动发现本地网络上的 Gateway。

调用节点操作

# 列出节点
openclaw nodes list

# 描述节点能力
openclaw nodes describe <node-id>

# 调用节点操作
openclaw nodes invoke <node-id> camera.snap

节点权限(macOS)

macOS 节点需要特定权限:

在系统偏好设置 > 安全性与隐私 > 隐私中授予权限。

技能系统

技能是扩展 OpenClaw 功能的模块化方式。

技能类型

捆绑技能(Bundled):

托管技能(Managed):

工作区技能(Workspace):

安装技能

从 ClawHub 安装

# 搜索技能
openclaw skills search gmail

# 安装技能
openclaw skills install gmail

# 列出已安装技能
openclaw skills list

手动安装

  1. 创建技能目录:

    mkdir -p ~/.openclaw/workspace/skills/my-skill
  2. 创建 SKILL.md

    # My Custom Skill
    
    ## 描述
    
    这是一个自定义技能。
    
    ## 工具
    
    ### my_tool
    
    执行特定操作。
    
    参数:
    - param1: 描述
    - param2: 描述
  3. 创建实现文件(可选):

    // skill.js
    module.exports = {
      my_tool: async (params) => {
        // 实现逻辑
        return result;
      }
    };

技能配置

在配置文件中管理技能:

{
  "skills": {
    "enabled": true,
    "autoInstall": false,
    "allowList": ["gmail", "calendar", "github"],
    "denyList": ["dangerous-skill"]
  }
}

ClawHub

ClawHub 是技能注册中心。

启用 ClawHub

{
  "clawhub": {
    "enabled": true,
    "autoSearch": true
  }
}

功能

创建自定义技能

技能结构

~/.openclaw/workspace/skills/my-skill/
├── SKILL.md          # 技能文档
├── skill.js          # 实现(可选)
├── package.json      # 依赖(可选)
└── README.md         # 说明(可选)

SKILL.md 模板

# 技能名称

## 描述

简短描述技能的功能。

## 工具

### tool_name

工具描述。

**参数**
- `param1` (string): 参数描述
- `param2` (number, optional): 可选参数

**返回**
- 返回值描述

**示例**
\`\`\`
tool_name(param1="value", param2=123)
\`\`\`

## 配置

如果需要配置,在此说明。

## 依赖

列出外部依赖。

技能示例:天气查询

# 天气查询技能

## 描述

查询指定城市的天气信息。

## 工具

### get_weather

获取城市的当前天气。

**参数**
- `city` (string): 城市名称
- `units` (string, optional): 单位(metric/imperial),默认 metric

**返回**
- 天气信息对象

**示例**
\`\`\`
get_weather(city="Beijing", units="metric")
\`\`\`

## 配置

需要设置环境变量:
- `WEATHER_API_KEY`: OpenWeatherMap API 密钥

远程访问

OpenClaw 支持远程访问 Gateway,让你可以从任何地方控制你的 AI 助手。

方式一:Tailscale(推荐)

Tailscale 提供安全的点对点连接。

安装 Tailscale

macOS

brew install tailscale

Linux

curl -fsSL https://tailscale.com/install.sh | sh

配置 Tailscale Serve

在配置文件中启用:

{
  "gateway": {
    "bind": "127.0.0.1",
    "tailscale": {
      "mode": "serve",
      "resetOnExit": true
    }
  }
}

模式选项

Tailscale Funnel(公开访问)

如果需要公开访问:

{
  "gateway": {
    "bind": "127.0.0.1",
    "auth": {
      "mode": "password",
      "password": "your-secure-password"
    },
    "tailscale": {
      "mode": "funnel"
    }
  }
}

重要

方式二:SSH 隧道

使用 SSH 隧道进行远程访问。

创建 SSH 隧道

从远程机器

ssh -L 18789:localhost:18789 user@gateway-host

持久化隧道(使用 autossh):

autossh -M 0 -f -N -L 18789:localhost:18789 user@gateway-host

配置 SSH

~/.ssh/config 中添加:

Host openclaw-gateway
    HostName gateway-host
    User your-user
    LocalForward 18789 localhost:18789
    ServerAliveInterval 60
    ServerAliveCountMax 3

然后简单地运行:

ssh openclaw-gateway

远程 Gateway 架构

在 Linux 服务器上运行 Gateway 是完全可行的:

┌─────────────────┐
│  Linux Server   │
│   (Gateway)     │
│  - exec tool    │
│  - channels     │
└────────┬────────┘

         ├─ Tailscale/SSH

┌────────┴────────┐
│  Local Device   │
│  - macOS app    │
│  - CLI          │
│  - WebChat      │
└─────────────────┘

         ├─ node.invoke

┌────────┴────────┐
│  Device Nodes   │
│  - macOS node   │
│  - iOS node     │
│  - Android node │
└─────────────────┘

关键点

远程客户端配置

配置本地客户端连接到远程 Gateway:

openclaw onboard --remote

或手动配置:

{
  "gateway": {
    "remote": {
      "url": "wss://your-gateway.ts.net",
      "token": "your-token"
    }
  }
}

更新和维护

保持 OpenClaw 最新以获得最新功能和安全修复。

检查更新

openclaw update --check

更新 OpenClaw

稳定版本

openclaw update --channel stable

Beta 版本

openclaw update --channel beta

开发版本

openclaw update --channel dev

开发渠道

OpenClaw 有三个开发渠道:

从源码更新

如果从源码安装:

cd openclaw
git pull
pnpm install
pnpm ui:build
pnpm build

运行诊断

更新后运行诊断:

openclaw doctor

这会检查:

迁移

OpenClaw 会自动处理配置迁移,但建议:

  1. 更新前备份配置
  2. 查看 CHANGELOG
  3. 运行 openclaw doctor
  4. 测试关键功能

性能优化

模型选择

选择合适的模型可以平衡性能和成本:

高性能

平衡

经济

模型回退

配置模型回退以处理限制:

{
  "agent": {
    "model": "anthropic/claude-opus-4-6",
    "fallback": [
      "anthropic/claude-sonnet-4-5",
      "openai/gpt-4",
      "anthropic/claude-haiku"
    ]
  }
}

上下文管理

定期压缩

/compact

配置自动重置

{
  "session": {
    "reset": {
      "mode": "daily",
      "atHour": 4
    }
  }
}

限制上下文长度

{
  "agent": {
    "maxContextTokens": 100000
  }
}

缓存策略

启用响应缓存:

{
  "agent": {
    "cache": {
      "enabled": true,
      "ttl": 3600
    }
  }
}

并发控制

限制并发请求:

{
  "agent": {
    "concurrency": {
      "max": 3,
      "queue": true
    }
  }
}

超时配置

设置合理的超时:

{
  "agent": {
    "timeoutSeconds": 1800
  }
}

备份和恢复

备份内容

需要备份的关键数据:

配置文件

~/.openclaw/openclaw.json

工作区

~/.openclaw/workspace/

会话数据

~/.openclaw/agents/*/sessions/

凭证

~/.openclaw/credentials/

技能

~/.openclaw/workspace/skills/

备份脚本

创建自动备份脚本:

#!/bin/bash
# backup-openclaw.sh

BACKUP_DIR=~/openclaw-backups
DATE=$(date +%Y%m%d-%H%M%S)
BACKUP_PATH=$BACKUP_DIR/openclaw-$DATE

mkdir -p $BACKUP_PATH

# 备份配置
cp ~/.openclaw/openclaw.json $BACKUP_PATH/

# 备份工作区
cp -r ~/.openclaw/workspace $BACKUP_PATH/

# 备份会话
cp -r ~/.openclaw/agents $BACKUP_PATH/

# 备份凭证(加密)
tar czf - ~/.openclaw/credentials | \
  openssl enc -aes-256-cbc -salt -out $BACKUP_PATH/credentials.tar.gz.enc

# 清理旧备份(保留最近 7 天)
find $BACKUP_DIR -type d -mtime +7 -exec rm -rf {} +

echo "备份完成: $BACKUP_PATH"

使用 Git 备份工作区

将工作区初始化为 Git 仓库:

cd ~/.openclaw/workspace
git init
git add .
git commit -m "Initial commit"

# 添加远程仓库(私有)
git remote add origin git@github.com:your-user/openclaw-workspace.git
git push -u origin main

恢复

从备份恢复:

# 停止 Gateway
openclaw gateway stop

# 恢复配置
cp backup/openclaw.json ~/.openclaw/

# 恢复工作区
cp -r backup/workspace ~/.openclaw/

# 恢复会话
cp -r backup/agents ~/.openclaw/

# 恢复凭证
openssl enc -aes-256-cbc -d -in backup/credentials.tar.gz.enc | \
  tar xzf - -C ~/

# 重启 Gateway
openclaw gateway start

监控和日志

日志位置

OpenClaw 日志存储在:

/tmp/openclaw/openclaw-YYYY-MM-DD.log

实时查看日志

tail -f /tmp/openclaw/openclaw-$(date +%Y-%m-%d).log

日志级别

配置日志级别:

{
  "logging": {
    "level": "info"
  }
}

级别选项

监控脚本

创建监控脚本:

#!/bin/bash
# monitor-openclaw.sh

while true; do
  if ! openclaw status > /dev/null 2>&1; then
    echo "$(date): Gateway 未运行,正在重启..."
    openclaw gateway start
    
    # 发送通知
    openclaw message send \
      --to +1234567890 \
      --message "OpenClaw Gateway 已重启"
  fi
  
  sleep 300  # 每 5 分钟检查一次
done

使用 systemd 监控(Linux)

创建 systemd 服务:

[Unit]
Description=OpenClaw Gateway
After=network.target

[Service]
Type=simple
User=your-user
ExecStart=/usr/local/bin/openclaw gateway
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

启用服务:

systemctl --user enable openclaw-gateway
systemctl --user start openclaw-gateway

安全最佳实践

1. 使用强认证

{
  "gateway": {
    "auth": {
      "mode": "token",
      "token": "使用强随机 token"
    }
  }
}

生成强 token:

openssl rand -hex 32

2. 限制网络访问

{
  "gateway": {
    "bind": "127.0.0.1"
  }
}

仅在需要时使用 Tailscale 或 SSH 隧道。

3. 配置白名单

始终配置 allowFrom

{
  "channels": {
    "telegram": {
      "allowFrom": ["@trusted_user"]
    }
  }
}

4. 使用沙箱

对非主会话使用 Docker 沙箱:

{
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "non-main",
        "allowlist": ["bash", "read", "write"],
        "denylist": ["browser", "system"]
      }
    }
  }
}

5. 定期审计

定期运行安全检查:

openclaw doctor

6. 保护凭证

7. 更新依赖

定期更新 OpenClaw 和依赖:

openclaw update

故障排查清单

Gateway 无法启动

  1. 检查端口是否被占用
  2. 验证配置文件语法
  3. 检查 Node.js 版本
  4. 查看日志文件

频道连接失败

  1. 验证 Token/凭证
  2. 检查网络连接
  3. 确认白名单配置
  4. 运行 openclaw status --deep

Agent 响应缓慢

  1. 检查 API 限制
  2. 压缩会话上下文
  3. 使用更快的模型
  4. 检查网络延迟

内存使用过高

  1. 重置长时间运行的会话
  2. 清理旧日志
  3. 限制并发请求
  4. 重启 Gateway

技能无法加载

  1. 检查技能目录结构
  2. 验证 SKILL.md 格式
  3. 检查依赖安装
  4. 查看技能日志

社区和支持

官方资源

贡献

OpenClaw 欢迎社区贡献:

查看 CONTRIBUTING.md 了解详情。

获取帮助

如果遇到问题:

  1. 查看官方文档
  2. 搜索 GitHub Issues
  3. 在 Discord 中提问
  4. 运行 openclaw doctor 并分享输出

总结

在本系列的四篇文章中,我们全面介绍了 OpenClaw:

  1. 第一篇:核心概念和架构
  2. 第二篇:安装和基本配置
  3. 第三篇:频道配置和日常使用
  4. 第四篇:高级功能和维护

OpenClaw 是一个强大而灵活的平台,它真正实现了”AI 助手”的承诺 —— 不仅仅是聊天,而是能够执行实际任务。通过本地部署、开源特性和可扩展架构,OpenClaw 为个人和团队提供了一个完全可控的 AI 解决方案。

关键要点

下一步建议

  1. 开始使用:按照本系列教程设置你的 OpenClaw
  2. 定制工作区:编辑 SOUL.mdAGENTS.md 来定制行为
  3. 安装技能:从 ClawHub 安装有用的技能
  4. 加入社区:在 Discord 中与其他用户交流
  5. 贡献:分享你的技能和经验

OpenClaw 正在快速发展,每天都有新功能和改进。保持更新,探索可能性,让你的 AI 助手真正为你工作!

参考资源


内容基于 OpenClaw 官方文档和社区资源改编,遵循内容许可限制


Share this post on:

Previous Post
Claude Cowork 入门指南:AI 驱动的知识工作自动化
Next Post
OpenClaw 完全指南(三):频道配置与日常使用