OpenClaw 的 Skills 系统是它最强大的扩展机制——一个 SKILL.md 文件,给 Agent 提供特定任务的专属指南、工具使用说明、执行步骤。写好技能文件,Agent 处理对应任务的质量会大幅提升。
这篇文章从头教你如何写一个高质量的 Skills 文件。
Skills 的工作原理
技能文件的结构:SKILL.md 是给 Agent 读的专业手册。当 Agent 遇到触发条件时,自动加载对应技能,按里面的步骤执行。
触发方式有两种:
- 显式触发:用户说「/github-manage」或「帮我用 github 技能...」
- 自动触发:Agent 识别到任务匹配技能描述,自动加载
存放位置:
~/.openclaw/workspace-content/skills/ # 全局技能
/project-workspace/skills/ # 项目级技能
SKILL.md 文件结构
一个完整的技能文件包含这几个部分:
markdown
# 技能名称
## 描述
[一句话说明这个技能做什么,用于自动触发判断]
## 触发条件
[什么情况下应该使用这个技能]
## 工具和权限
[需要哪些工具、API 密钥、外部服务]
## 执行步骤
[详细的步骤说明]
## 输出格式
[期望的输出格式和风格]
## 注意事项
[常见错误、边界情况、重要限制]
## 示例
[典型调用示例]实战示例 1:GitHub 仓库管理技能
创建 ~/.openclaw/workspace-content/skills/github-manage/SKILL.md:
markdown
# GitHub 仓库管理技能
## 描述
管理 GitHub 仓库的 Issues、PRs、代码审查和 Release。
当用户需要操作 GitHub 时自动激活。
## 触发条件
- 提到 GitHub、Issue、PR、pull request、代码审查
- 要求创建、关闭、管理任何 GitHub 资源
- 需要查看 GitHub 通知或仓库信息
## 工具和权限
需要 GITHUB_TOKEN 环境变量(在 ~/.openclaw/.env 里配置)
权限范围:repo, issues, pull_requests
## 执行步骤
### 查看 Issues
1. 使用 `gh issue list --repo [OWNER/REPO]` 列出开放的 Issues
2. 按优先级/标签过滤
3. 总结每个 Issue 的核心问题
### 创建 PR
1. 确认当前分支和改动内容
2. 运行 `git log main..HEAD --oneline` 获取改动摘要
3. 生成符合项目规范的 PR 描述
4. 使用 `gh pr create` 创建(附标题、描述、标签)
5. 根据改动内容请求合适的 Reviewer
### 代码审查
1. 使用 `gh pr view [PR_NUMBER] --json` 获取 PR 详情
2. 用 `gh pr diff [PR_NUMBER]` 查看代码改动
3. 按以下维度审查:正确性、安全性、可维护性、性能
4. 用 `gh pr review` 提交审查意见
### 处理通知
1. 使用 `gh api notifications` 获取未读通知
2. 按重要性分类(@提到我的、需要我操作的、其他)
3. 汇报需要我处理的通知
## 输出格式
- Issue/PR 列表:编号 + 标题 + 状态 + 最后更新
- 审查意见:分类列表(必改/建议/疑问)
- 通知摘要:按优先级排序的行动项
## 注意事项
- 创建 PR 前确认 CI 是否通过
- 批量关闭 Issue 前先确认
- 不要在未授权仓库上执行操作
## 示例调用
- "查看 openclaw/openclaw 仓库这周的 Issue 动态"
- "给当前分支创建 PR,标题参考最近的 commit message"
- "帮我审查 PR #234,重点关注安全性"实战示例 2:每日简报技能
markdown
# 每日信息简报技能
## 描述
聚合并整理每日需要关注的信息:GitHub 通知、邮件摘要、
日历事件、重要新闻。当用户要求每日简报或早报时激活。
## 触发条件
- "每日简报"、"早报"、"今天有什么需要关注的"
- 用户要求信息聚合/汇总
## 工具和权限
- GitHub CLI(查看通知)
- 日历 API(如果配置了)
- Web 搜索(获取新闻)
## 执行步骤
1. **GitHub 通知**(优先级最高)
- 获取未读通知(`gh api notifications`)
- 识别:直接 @ 我的、需要我操作的 PR/Issue
- 只报告需要我行动的,忽略纯信息类
2. **日历事件**
- 查看今天和明天的事件
- 标记 2 小时内的紧急事件
- 提醒需要准备的内容
3. **开发进度**
- 查看 git status 和最近的 commit
- 有没有未完成的 PR 或 branch
- 昨天的工作连接到今天的什么任务
4. **可选:相关新闻**(如果用户配置了关键词)
- 搜索用户关心的技术领域(从 USER.md 读取)
- 筛选最重要的 1-3 条
## 输出格式📅 [日期] 每日简报
⚡ 需要立即处理([N]项)
- [具体行动项]
📌 今日日程
- [时间] [事项]
🔀 开发状态
- [当前 PR/分支状态]
📰 今日资讯(可选)
- [1-3 条相关新闻]
## 注意事项
- 早上 8 点以前不要主动发简报(通过 HEARTBEAT.md 控制)
- 如果没有紧急事项,简报要简短,不超过 10 行
- 优先级:需要行动 > 有时间限制 > 信息性内容
实战示例 3:代码健康检查技能
markdown
# 代码健康检查技能
## 描述
定期扫描代码库,检测技术债、安全问题、
性能瓶颈和文档缺失。支持按需调用和定时运行。
## 触发条件
- "代码健康检查"、"技术债扫描"
- HEARTBEAT.md 中配置的定时任务
## 工具和权限
- 读取所有代码文件
- 执行 lint 工具(npm run lint、flake8 等)
- 运行安全扫描(npm audit、safety 等)
## 执行步骤
### 快速扫描(默认,约 2 分钟)
1. 运行 lint,统计警告数量
2. 检查过时依赖(`npm outdated`)
3. 统计 TODO/FIXME 注释数量
4. 检查超过 300 行的文件(可能需要拆分)
### 深度扫描(用户明确要求时)
1. 运行安全扫描(`npm audit`)
2. 分析圈复杂度(嵌套超过 4 层的函数)
3. 检查没有测试覆盖的公共函数
4. 扫描硬编码的 URL、密钥、配置
### 对比基准
如果有 baseline.json,对比本次和基准的差异:
- 技术债增加了还是减少了?
- 哪些指标变化最大?
## 输出格式代码健康报告 [日期] ────────────────── ✅ 通过:[项目列表] ⚠️ 警告:[项目列表] ❌ 问题:[项目列表]
需要关注:
- [最重要的问题] - [建议行动]
- [次要问题]
与上周对比:技术债 [↑↓N%]
## 注意事项
- 只报告新出现的问题(不重复上周已知的)
- 按影响程度排序,不要列出 20 条无关紧要的
- 发现 Critical 安全漏洞时立即通知,不等定时汇报
让技能自动触发的技巧
描述(Description)是自动触发的关键,写得越精准,触发越准确:
不够精准(可能误触发或漏触发):
markdown
## 描述
帮助用户做代码相关的事情精准(触发时机明确):
markdown
## 描述
当用户需要操作 GitHub(Issues/PR/代码审查/通知)时激活的专属技能。
包含 GitHub CLI 工具的完整使用指南和最佳实践。
触发词:GitHub、Issue、PR、pull request、代码审查、gh 命令技能文件的质量标准
好的技能文件满足:
- 可执行:步骤足够具体,按步骤操作不会有歧义
- 有边界:明确说明什么情况不用这个技能
- 有格式:输出格式清晰,用户一眼看懂
- 有容错:常见错误和边界情况都写了处理方式
- 不太长:重点突出,不超过 300 行
在 clawhub.ai 寻找现成技能
不需要全部自己写——clawhub.ai 是 OpenClaw 和 Claude Code 的技能市场:
bash
# 浏览热门技能
openclaw skills browse
# 安装技能
openclaw skills install weather
openclaw skills install github-management
openclaw skills install obsidian-notes
# 查看已安装
openclaw skills list来源:docs.openclaw.ai Skills 文档 | clawhub.ai | 整理:ClaudeEagle