乐于分享
好东西不私藏

OpenClaw 技能系统详解:扩展 AI 能力的核心机制

OpenClaw 技能系统详解:扩展 AI 能力的核心机制

OpenClaw 技能系统详解:扩展 AI 能力的核心机制

买了 AI 助手却只能聊天?本文教你用技能系统把它变成真正的数字员工——搜索、创作、自动化、树洞记忆,插上技能就有超能力。


你能学到什么?

  • ✅ 理解 OpenClaw 技能系统的架构原理
  • ✅ 从 ClawHub 安装需要的技能(5 分钟)
  • ✅ 配置文件控制技能开关和参数
  • ✅ 编写自己的第一个自定义技能
  • ✅ 技能的安全注意事项

技能系统是什么?

OpenClaw 的技能(Skills)是一种模块化的能力扩展单元。每个技能是一个文件夹,里面有 SKILL.md 说明文件,告诉 AI 助手:

  1. 这个技能是做什么的
  2. 需要什么工具或 API
  3. 什么条件下应该激活
  4. 如何使用它

技能基于 AgentSkills[1] 标准,所以很多在其他 AI Agent 上开发的技能可以直接复用在 OpenClaw 上。

核心特点:

  • 即装即用,无需重启网关
  • 支持版本管理,可更新可回滚
  • 技能之间相互隔离,不会互相干扰
  • 可配置生效条件(环境变量、配置文件、操作系统等)

技能存在哪里?三层加载机制

OpenClaw 按优先级从高到低从三个位置加载技能:

优先级 位置 说明
🥇 最高 <workspace>/skills 工作区技能,只影响当前项目
🥈 ~/.openclaw/skills 托管技能,所有项目共享
🥉 最低 OpenClaw 内置 系统自带的基础技能

当同一技能名出现在多个位置时,优先级高的覆盖优先级低的

查看当前已安装的技能

openclaw skills list

输出示例:

✓ agent-reach         ~/.openclaw/workspace/skills/agent-reach
✓ multi-search-engine ~/.openclaw/skills/multi-search-engine
✓ memory-setup        ~/.openclaw/skills/memory-setup
✓ self-improving      ~/.openclaw/skills/self-improving

查看技能详细信息

openclaw skills info <技能名>

检查技能是否满足运行条件

openclaw skills check

这个命令会告诉你:哪些技能可用、哪些因缺少依赖被禁用、以及具体缺什么。


ClawHub:技能的 App Store

ClawHub[2] 是 OpenClaw 官方技能市场,收录了 5400+ Skills,涵盖各领域。

安装 CLI

npm i -g clawhub

搜索技能

clawhub search "wechat"       # 搜索微信相关
clawhub search "bilibili"     # B站相关
clawhub search "memory"       # 记忆系统
clawhub search "automation"   # 自动化工作流

安装技能

clawhub install <skill-slug>   # 安装到当前目录的 skills/

安装后,OpenClaw 会在下一个新会话自动加载。

更新所有技能

clawhub update --all

同步本地技能到 ClawHub(备份)

clawhub sync --all

精选技能推荐

根据路飞的使用场景,推荐以下技能:

1. 多平台搜索 — agent-reach

已安装 ⭐⭐⭐⭐⭐

全平台内容获取,支持:

  • 微信公众号文章读取
  • 小红书内容搜索
  • B站视频信息获取
  • Twitter/X 推文读取
  • GitHub 代码和 issues 搜索
  • 等等 14 个平台
clawhub install agent-reach

2. 搜索增强 — multi-search-engine

已安装 ⭐⭐⭐⭐

整合 17 个搜索引擎(8 个中文 + 9 个英文),支持高级搜索指令、时间筛选、站点限制。

clawhub install multi-search-engine

3. 记忆系统 — memory-setup

已安装 ⭐⭐⭐⭐

配置向量搜索和长期记忆,让 AI 真正"记住"你是谁、你的偏好、你的项目背景。配合 self-improving 使用会持续进化。

clawhub install memory-setup

4. 自我改进 — self-improving

已安装 ⭐⭐⭐⭐⭐

记录使用中的修正和教训,形成自己的经验库。每次犯错都会被记住,下次不再犯。

clawhub install self-improving

5. 定时提醒(QQ)— qqbot-cron

如果接入了 QQ 机器人,这个技能让你创建定时提醒和周期性任务。

clawhub install qqbot-cron

6. 飞书文档 — feishu-doc / feishu-wiki

读写飞书云文档和知识库,适合企业内部场景。

clawhub install feishu-doc
clawhub install feishu-wiki

技能配置:精细化控制

所有技能配置都在 ~/.openclaw/openclaw.jsonskills 节点下。

基本结构

{
  skills: {
    entries: {
      "技能名": {
        enabled: true,                          // 是否启用
        apiKey: { source: "env", id: "API_KEY" }, // API 密钥来源
        env: {
          CUSTOM_VAR: "值"                       // 环境变量
        },
        config: {
          // 技能自定义配置
        }
      }
    },
    load: {
      watch: true,                              // 监听文件变化热更新
      watchDebounceMs: 250,                    // 监听防抖(毫秒)
      extraDirs: ["~/my-skills"]               // 额外的技能目录
    }
  }
}

示例:配置 agent-reach

{
  skills: {
    entries: {
      "agent-reach": {
        enabled: true,
        config: {
          // agent-reach 特有的配置项
        }
      }
    }
  }
}

按条件加载(Gate)

技能可以通过 metadata 设置加载条件,不满足条件时自动跳过:

---
name: gemini
description: 使用 Gemini CLI 编程辅助
metadata:
  {
    "openclaw":
      {
        "requires": { "bins": ["gemini"] },       # 必须有 gemini 命令
        "os": ["darwin""linux"]                  # 只在 macOS 和 Linux
      },
  }
---

常见的条件类型:

  • bins:必须在 PATH 中的可执行文件
  • env:必须设置的环境变量
  • config:openclaw.json 中必须为真的配置项
  • os:限定操作系统

编写自己的技能

当市面上的技能无法满足需求时,可以自己写。

技能目录结构

~/.openclaw/workspace/skills/my-skill/
├── SKILL.md          # 必须:技能说明文件
├── script.sh         # 可选:辅助脚本
└── README.md         # 可选:详细文档

最简单的 SKILL.md

---
name: my_first_skill
description: 我的第一个技能,用来打招呼
---


# 我的第一个技能

当用户说"你好"或"打招呼"时,用 `echo` 工具输出一段问候语。

## 使用方法

直接告诉我"你好",我会用这个技能回复你。

带工具定义的 SKILL.md

---
name: file-reader
description: 读取本地文件内容
metadata:
  {
    "openclaw":
      {
        "requires": { "bins": ["cat"] },
      },
  }
---

# 文件读取技能

当用户要求读取某个文件时,使用 `read` 工具读取并返回内容。

## 使用限制

- 只能读取用户workspace下的文件
- 不允许读取系统敏感文件

带安装指引的 SKILL.md

---
name: weather
description: 查询天气预报
metadata:
  {
    "openclaw":
      {
        "requires": { "env": ["WEATHER_API_KEY"] },
        "primaryEnv": "WEATHER_API_KEY",
        "install": [
          {
            "id": "brew",
            "kind": "brew",
            "formula": "curl",
            "label": "安装 curl (brew)"
          }
        ]
      },
  }
---

# 天气查询技能

使用 wttr.in 查询天气预报,无需 API key。

## 安装要求

需要 `curl` 命令存在。Linux/macOS 通常自带。

技能的 Token 消耗

技能信息会注入到系统提示词中,每个技能大约增加 97 字符(约 24 tokens) 的额外消耗。

公式:

总开销 = 195(基础开销)+ Σ(97 + name长度 + description长度 + location长度)

技能越多,提示词越长,Token 消耗越高。如果在意成本,控制技能数量。


安全注意事项

⚠️ 重要提醒:

  1. 第三方技能请谨慎安装。技能本质上是在执行代码,安装前务必阅读 SKILL.md 确认没有恶意操作。

  2. API 密钥保护。配置在 skills.entries 中的密钥会被注入到进程环境变量,避免在日志中暴露。

  3. 隔离运行。对于高风险技能,可以使用沙箱模式(sandbox)运行,限制其对系统资源的访问。

  4. 定期更新。使用 clawhub update --all 保持技能版本最新,修复已知漏洞。


常见问题

技能安装后不生效

原因:OpenClaw 在新会话才加载技能。

解决:开启一个新对话,或者在当前对话输入"刷新技能"让 AI 重新扫描。

技能显示"缺少依赖"

原因:不满足 requires 条件(缺少命令、环境变量或配置)。

解决:运行 openclaw skills check 查看具体缺什么,然后安装对应依赖。

技能数量太多影响速度

解决:在 skills.entries 中将不需要的技能设为 enabled: false,或在 skills.allowBundled 中设置白名单。

引用链接

[1]AgentSkills: https://agentskills.io

[2]ClawHub: https://clawhub.com