系列说明 :本系列共计约 20 篇,全面介绍 OpenClaw 开源 AI 智能体框架。本文为系列第 009 篇,聚焦于 OpenClaw Skills技能系统与ClawHub技能市场度解析。建议先阅读 第 008 篇:流量枢纽------OpenClaw Gateway 网关深度解析。
摘要
OpenClaw的Skills技能系统是其模块化扩展架构的核心,允许用户通过安装技能包来扩展AI Agent的工具调用能力。本文深入剖析Skills系统的设计理念、文件结构、加载机制,详细介绍ClawHub技能市场的功能和生态,提供技能开发指南和安全注意事项,帮助读者全面掌握OpenClaw技能体系。
一、Skills核心概念与设计理念
1.1 什么是Skills?
OpenClaw Skills本质上是一个模块化扩展系统,类比于浏览器插件之于浏览器。每个Skill是一个包含元数据定义(SKILL.md)和可选脚本的目录,由OpenClaw主程序在运行时动态加载,用于扩展Agent的工具调用能力。
在OpenClaw六层架构中,Skills位于第四层(Layer 4),承载着80+内置工具的能力,包括浏览器自动化(agent-browser)、联网搜索(tavily-search)、文件操作、数据库访问、TTS语音合成等。这些工具通过Skills系统暴露给Agent,使其能够调用外部世界的各种资源。
1.2 Skills的设计哲学
Skills系统遵循以下六大设计原则:
- 功能说明:通过SKILL.md告诉AI这个技能是做什么的,以及该使用什么工具
- 工具教学:指导LLM如何使用命令行工具(如gh、curl、sag等)
- 工作流封装:将复杂的多步骤操作流程封装成可复用的技能
- 上下文注入:在系统提示词中注入特定领域的知识和指令
- 门控控制:根据环境、配置自动启用或禁用特定功能
- 跨平台适配:根据操作系统或可用二进制文件动态加载
这种设计使得Skills成为连接AI智能体与外部工具的桥梁,既保持了系统的可扩展性,又确保了使用的安全性。
1.3 Skills在架构中的位置
第1层: Channels (WebChat/Telegram/WhatsApp...)
第2层: Gateway (路由/鉴权/配额/审计)
第3层: Sessions (会话/记忆/上下文压缩)
第4层: Skills (80+工具: Browser/Shell/DB/TTS...) ← Skills层
第5层: Agent Runtime (推理/调度)
第6层: Models & Sandbox (AI模型与安全沙箱)
从数据流角度看,用户请求通过Channel进入Gateway,Gateway路由到对应的Agent,Agent根据任务需求选择合适的Skills工具,最终调用底层模型和外部服务完成响应。这种分层设计使得Skills可以独立于具体业务逻辑进行开发和部署。
二、Skills文件结构与SKILL.md格式
2.1 基本文件结构
每个Skill必须是一个目录,其中必须包含一个SKILL.md文件。OpenClaw使用兼容AgentSkills的技能文件夹格式,确保与其他工具生态的兼容性。
my-skill/
├── SKILL.md # 必需:技能定义文件
├── index.js # 可选:JavaScript脚本
├── package.json # 可选:npm依赖定义
├── utils/ # 可选:工具函数
└── README.md # 可选:使用说明
2.2 SKILL.md完整格式
SKILL.md采用YAML Front Matter格式,分为元数据部分和说明部分:
yaml
---
name: file-report-skill
description: "统计目录文件并生成Markdown报表"
version: 1.0.0
homepage: https://github.com/example/file-report-skill
permissions: ["file.read", "file.write"]
metadata:
openclaw:
requires:
bins: ["python3", "git"]
env: ["OPENCLAW_API_KEY"]
config: ["report.format"]
primaryEnv: "OPENCLAW_API_KEY"
os: ["linux", "darwin", "win32"]
---
# 技能说明
这个技能用于统计指定目录下的文件信息,并生成结构化的Markdown报表。
## 使用场景
当用户需要以下任务时使用此技能:
- 查看项目目录结构
- 统计代码文件数量和行数
- 生成项目文档
## 执行步骤
1. 使用`find`命令扫描目录
2. 根据文件扩展名分类统计
3. 使用模板生成Markdown报表
4. 将报表写入指定文件
## 注意事项
- 需要Python 3.8+环境
- 大型目录扫描可能需要较长时间
- 生成报表前会确认目标文件路径
2.3 关键元数据字段详解
| 字段 | 说明 | 必填 |
|---|---|---|
name |
技能名称(唯一标识符) | ✅ |
description |
技能描述,会显示给AI | ✅ |
homepage |
技能官网URL | ❌ |
version |
技能版本号 | ❌ |
permissions |
所需权限列表 | ❌ |
user-invocable |
是否可被用户直接调用(默认true) | ❌ |
disable-model-invocation |
是否排除在模型提示之外(默认false) | ❌ |
command-dispatch |
设置为tool时,斜杠命令会作为工具调用 | ❌ |
OpenClaw特定元数据:
yaml
metadata:
openclaw:
requires:
bins: ["uv", "git"] # 需要的二进制文件
env: ["GEMINI_API_KEY"] # 需要的环境变量
config: ["model.provider"] # 需要的配置项
primaryEnv: "GEMINI_API_KEY" # 主要环境变量(用于UI提示)
os: ["linux", "darwin", "win32"] # 支持的操作系统
这些元数据用于门控控制:如果环境不满足requires条件,该Skill将不会加载到可用技能列表中。
三、Skills加载与执行机制
3.1 加载位置与优先级
OpenClaw从四个位置加载Skills,按优先级从高到低排序:
- 工作区Skills :
<workspace>/skills--- 仅对当前智能体可见 - 托管/本地Skills :
~/.openclaw/skills--- 对同一机器上的所有智能体可见 - 内置Skills:随OpenClaw安装包分发(npm或OpenClaw.app)
- 额外目录 :通过
skills.load.extraDirs配置添加(优先级最低)
这种优先级设计允许在不同层级覆盖技能定义,工作区技能可以覆盖全局技能,从而实现个性化定制。
3.2 加载流程详解
Skills加载流程包含以下五个步骤:
1. 启动时扫描所有Skills目录
↓
2. 读取每个SKILL.md的metadata.openclaw.requires字段
↓
3. 检查环境变量、二进制文件、配置项等是否满足
↓
4. 合格的Skills列表会被缓存
↓
5. 启用文件监视(skills.load.watch: true),SKILL.md变更时自动刷新
环境检查示例:
javascript
// 伪代码示例
function checkRequirements(requires) {
if (requires.bins) {
for (const bin of requires.bins) {
if (!commandExists(bin)) return false;
}
}
if (requires.env) {
for (const envVar of requires.env) {
if (!process.env[envVar]) return false;
}
}
if (requires.config) {
for (const configKey of requires.config) {
if (!configHas(configKey)) return false;
}
}
return true;
}
只有通过所有环境检查的Skills才会被加载到可用技能列表中,这确保了只有可用的技能才会被推荐给AI使用。
3.3 全局配置文件
OpenClaw的全局配置文件位于~/.openclaw/openclaw.json,支持JSON5格式:
json5
{
"skills": {
"entries": {
"tavily-search": {
"enabled": true,
"apiKey": "tvly-xxxxx",
"env": {
"TAVILY_API_KEY": "tvly-xxxxx"
},
"config": {
"maxResults": 10,
"searchDepth": "basic"
}
},
"github-manager": {
"enabled": true,
"config": {
"defaultRepo": "my-repo",
"defaultBranch": "main"
}
}
},
"load": {
"watch": true, // 启用文件监视
"watchDebounceMs": 250, // 防抖延迟(毫秒)
"extraDirs": [
"/opt/openclaw/skills",
"/shared/skills"
]
}
}
}
这种集中配置方式使得技能管理更加灵活,可以通过配置文件控制技能的启用状态、注入环境变量和自定义配置项。
3.4 热重载机制
当skills.load.watch: true时,OpenClaw会启用文件监视,监听Skills目录的变化:
- 新增Skill:自动发现并加载
- 修改SKILL.md:自动重新解析元数据和说明
- 删除Skill:自动从可用列表移除
热重载采用防抖机制(默认250ms),避免频繁修改导致的多次重载。这种设计实现了真正的"即插即用",无需重启OpenClaw服务即可生效。
四、ClawHub技能市场
4.1 ClawHub的功能与定位
ClawHub是OpenClaw的官方技能市场,类比于npm之于Node.js。它提供了技能的搜索、安装、版本管理、发布、备份全生命周期能力,无需编写代码,一条命令即可为Agent扩展新能力。
ClawHub核心功能:
- 技能发布:用户可以上传AgentSkills技能包到市场
- 版本管理:类似npm的版本控制系统,支持版本回滚
- 向量搜索:通过向量化技术实现技能的语义搜索
- 一键安装:支持npm、pnpm、bun等包管理器快速安装技能
- 安全扫描:集成VirusTotal进行恶意代码检测
4.2 ClawHub市场规模与筛选
截至2026年3月,ClawHub已收录**13,000+**社区贡献的技能。然而,OpenClaw官方对技能进行了严格筛选:
| 项目 | 数量 | 说明 |
|---|---|---|
| 原始技能总数 | 13,729 | 提交到ClawHub的所有技能 |
| 垃圾测试技能 | 1,180 | 无实际功能的测试技能 |
| 加密货币相关技能 | 672 | 疑似庞氏骗局的币圈技能 |
| 重复相似技能 | 492 | 功能雷同的低质量技能 |
| 恶意技能 | 396 | 窃取凭证、安装后门的技能 |
| 最终入选技能 | 约2,868 | 经过官方筛选的高质量技能 |
根据awesome-openclaw-skills仓库的分类,5366个精选技能在各个领域的分布如下:
| 分类 | 技能数量 | 占比 |
|---|---|---|
| Coding Agents & IDEs | 1,222 | 22.8% |
| Web & Frontend Development | 938 | 17.5% |
| DevOps & Cloud | 409 | 7.6% |
| Search & Research | 352 | 6.6% |
| Browser & Automation | 335 | 6.2% |
| Productivity & Tasks | 206 | 3.8% |
| AI & LLMs | 197 | 3.7% |
| CLI Utilities | 186 | 3.5% |
| Image & Video Generation | 169 | 3.1% |
| Communication | 149 | 2.8% |
4.3 ClawHub常用命令
安装ClawHub CLI:
bash
npm install -g clawhub
常用命令:
bash
# 搜索技能
clawhub search "summarize"
# 安装技能
clawhub install summarize
# 查看已安装技能
clawhub list
# 升级指定技能
clawhub update summarize
# 升级全部技能
clawhub update --all
# 扫描并发布更新
clawhub sync --all
# 卸载技能
clawhub uninstall summarize
# 查看技能详情
clawhub info summarize
4.4 腾讯SkillHub本土化市场
针对中国用户,腾讯云推出了SkillHub本土化市场,主要优化包括:
- 中文搜索:支持中文关键词搜索技能
- 国内节点分发:下载安装更稳定顺畅
- 中文界面:有精选榜单和推荐列表
- 技能收录:包含13,000+个龙虾技能
SkillHub的推出极大地降低了中国用户使用OpenClaw的门槛,让国内开发者能够更便捷地发现和使用高质量的技能。
五、技能开发指南
5.1 创建自定义Skill的步骤
第一步:创建目录
bash
mkdir -p ~/.openclaw/skills/hello-world
cd ~/.openclaw/skills/hello-world
第二步:编写SKILL.md
yaml
---
name: hello_world
description: 一个简单的打招呼技能
version: 1.0.0
---
# Hello World技能
这个技能用于向用户打招呼,展示基本的Skill结构。
## 使用场景
当用户询问"你好"、"hello"等问候语时,使用此技能。
## 执行逻辑
1. 获取当前时间
2. 根据时间生成问候语(早上好/下午好/晚上好)
3. 返回友好的问候消息
第三步:测试技能
bash
# 启动OpenClaw
openclaw
# 在对话中测试
用户:你好
AI:早上好!今天有什么可以帮你的吗?
5.2 实战案例:创建文件监控Skill
场景描述:监控指定目录,当有新文件创建时发送通知。
SKILL.md内容:
yaml
---
name: file-watcher
description: 监控目录变化,实时通知新文件创建
version: 1.0.0
permissions: ["file.read", "file.write"]
metadata:
openclaw:
requires:
bins: ["inotifywait"]
config: ["watch.directory"]
---
# 文件监控技能
监控指定目录的文件变化,当有新文件创建时发送通知。
## 使用场景
当用户需要以下任务时使用此技能:
- 监控上传目录的新文件
- 实时跟踪项目文件变化
- 自动化文件处理流程
## 执行步骤
1. 使用inotifywait监控目录
2. 检测CREATE事件
3. 记录新文件信息(路径、大小、时间)
4. 生成通知消息
## 配置要求
需要配置以下配置项:
- `watch.directory`:要监控的目录路径
配套脚本(可选):
javascript
// index.js
const { spawn } = require('child_process');
function watchDirectory(directory) {
const watcher = spawn('inotifywait', [
'-m',
'-e',
'create',
directory
]);
watcher.stdout.on('data', (data) => {
const event = data.toString().trim();
console.log(`New file detected: ${event}`);
});
return watcher;
}
module.exports = { watchDirectory };
5.3 工具组(Tool Groups)
OpenClaw使用工具组来简化工具策略配置,避免逐一配置25+内置工具:
| 工具组 | 包含工具 |
|---|---|
group:runtime |
exec, bash, process(运行时命令执行) |
group:fs |
read, write, edit, apply_patch(文件系统操作) |
group:session |
界面控制 |
group:automation |
cron, gateway(自动化任务) |
group:messaging |
message(消息发送) |
group:nodes |
nodes(节点管理) |
group:openclaw |
所有内置OpenClaw工具 |
配置示例:
json5
{
"tools": {
"allow": ["group:fs", "browser"], // 允许文件系统和浏览器
"deny": ["gateway"], // 禁止网关操作
"profile": "coding", // 预设配置:minimal | coding | messaging | full
"byProvider": {
"openai/gpt-5.2": { // 针对特定模型允许所有工具
"allow": ["all"]
}
}
}
}
5.4 技能测试和调试
- 确认OpenClaw版本 :
openclaw --version - 查看已加载的Skills:在对话中询问"展示当前可用的Skills"
- 手动触发重载:删除Skills目录下的缓存文件
- 调试日志 :检查
~/.openclaw/logs/目录下的运行日志 - 元数据验证 :使用
openclaw skills validate命令检查SKILL.md格式
六、常用技能案例分析
6.1 agent-browser(浏览器自动化)
核心功能:支持AI Agent使用的浏览器工具,能够浏览页面、点击、输入文本、截取页面快照。
使用场景:
- 网页浏览和信息提取
- 自动化搜索和抓取
- 表单填写和数据采集
- 页面截图和验证
安装方式:
bash
clawhub install agent-browser
使用示例:
markdown
用户:帮我打开百度首页并搜索"OpenClaw"
AI:正在打开百度首页...
(浏览器操作)
搜索"OpenClaw"...
找到约1,000,000条结果
6.2 tavily-search(联网搜索)
核心功能:专为AI Agent优化的实时联网搜索能力,提供精准的搜索结果和摘要。
配置步骤:
- 访问 tavily.com 注册账号
- 获取API Key
- 安装技能:
clawhub install tavily-search - 配置环境变量:
bash
export TAVILY_API_KEY="tvly-xxxxx"
使用示例:
markdown
用户:搜索2026年AI领域最新进展
AI:正在搜索...
根据搜索结果,2026年AI领域的最新进展包括:
1. GPT-5.2发布,推理能力显著提升
2. OpenClaw社区突破100万用户
3. ...
6.3 其他热门技能
| 技能名称 | 功能描述 | 下载量 | 推荐度 |
|---|---|---|---|
| 百度搜索Skill | 搜索引擎官方插件 | 36,000+ | ⭐⭐⭐⭐⭐ |
| gmail-manager | 邮件处理和管理 | 高 | ⭐⭐⭐⭐ |
| notion-manager | Notion笔记管理 | 高 | ⭐⭐⭐⭐ |
| weather | 天气查询和预报 | 高 | ⭐⭐⭐ |
| stock-watcher | 股票监控和预警 | 中 | ⭐⭐⭐ |
| summarize | 文本摘要和提炼 | 高 | ⭐⭐⭐⭐ |
七、安全注意事项
7.1 恶意技能风险
根据安全公司Koi Security的审计,ClawHub市场存在严重的安全问题:
- 341个恶意技能:窃取SSH密钥、浏览器密码、API凭证
- 8000+非恶意垃圾技能:无实际功能或功能重复
- 伪装性攻击:使用诱人名称如"smart-email-assistant"、"calendar-sync-pro"
7.2 安全防护措施
OpenClaw已采取以下安全措施:
- VirusTotal集成:所有技能发布时自动扫描
- 账号门槛:GitHub账号需注册满一周才能发布技能
- 评论门槛:需通过GPT 5.2验证才能发表评论
- 每日扫描:所有活动技能每天重新扫描
7.3 用户防护建议
- 审查源码:无论从哪个渠道安装,都要审查SKILL.md源码
- 使用精选列表 :优先使用
awesome-openclaw-skills等经过筛选的列表 - 查看下载量:关注热门技能,下载量高的技能相对更可靠
- 验证VirusTotal报告:在ClawHub官网查看技能的安全扫描结果
- 检查GitHub账号:验证技能作者的账号年龄和声誉
- 避免敏感授权:不要随意授权API密钥或OAuth Token
7.4 隔离运行建议
对于不信任的技能,建议:
json5
{
"skills": {
"entries": {
"untrusted-skill": {
"enabled": true,
"sandbox": true, // 在沙箱中运行
"restricted": true, // 限制权限
"env": {} // 不注入真实环境变量
}
}
}
}
八、技能生态与发展趋势
8.1 技能生态现状
OpenClaw技能生态已经形成了完整的链条:
开发者 → 创建Skill → 发布到ClawHub → 用户搜索下载 → 集成到Agent → 反馈优化
生态参与者包括:
- 技能开发者:贡献高质量技能,获得社区认可
- 技能平台:ClawHub、腾讯SkillHub提供分发渠道
- 技能用户:使用技能扩展Agent能力
- 安全团队:持续监控恶意技能,维护生态健康
8.2 发展趋势
- 技能专业化:越来越多的垂直领域技能涌现(如量化投资、科研辅助、医疗诊断)
- 技能组合化:多个技能组合形成完整的解决方案
- 技能智能化:技能本身具备学习和优化能力
- 技能安全化:更严格的安全审查和认证机制
8.3 企业级应用
越来越多的企业开始将Skills用于实际业务场景:
- 客户服务:自动处理常见问题,生成FAQ
- 数据分析:自动化报表生成和趋势分析
- 代码开发:代码审查、测试、部署自动化
- 文档管理:自动生成技术文档和API说明
九、总结
OpenClaw的Skills技能系统是其模块化架构的核心,通过ClawHub市场实现了技能的发现、安装和管理。本文从技能的概念、设计理念、文件结构、加载机制等方面进行了全面剖析,介绍了ClawHub市场的功能和生态,提供了技能开发指南和安全注意事项。
随着AI技术的不断发展,Skills系统将继续演进,为用户提供更强大、更安全的AI Agent能力。无论你是开发者还是用户,都可以通过Skills系统扩展OpenClaw的能力,构建属于自己的AI智能体。