OpenClaw 自定义技能开发完全指南:从零构建你的 AI 助手专属能力 原创
温馨提示:
本文最后更新于 2026-06-25,已超过 77 天没有更新。
若文章内的图片失效(无法正常加载),请留言反馈或直接 联系我。
OpenClaw 自定义技能开发完全指南:从零构建你的 AI 助手专属能力
OpenClaw 的技能系统是其最强大的特性之一。通过自定义技能(Skill),你可以为 AI 助手注入专属能力,让它理解你的工作流、工具和领域知识。本文将从基础概念到高级开发,全面讲解 OpenClaw 自定义技能的开发方法。
一、技能系统概述
OpenClaw 的技能(Skill)本质上是一组结构化指令和资源文件,告诉 AI 如何执行特定任务。每个技能包含:
- SKILL.md:核心指令文件,定义技能的行为逻辑
- 元数据:技能名称、版本、描述等
- 支持文件:脚本、模板、示例代码等辅助资源
技能系统的工作流程:当用户提出请求时,OpenClaw 扫描所有已安装技能,匹配最合适的技能来执行任务。
二、技能目录结构
一个标准的技能目录结构如下:
my-skill/
├── SKILL.md # 核心指令文件(必需)
├── assets/ # 静态资源
│ └── logo.png
├── examples/ # 示例文件
│ └── usage.md
├── scripts/ # 辅助脚本
│ └── helper.sh
├── templates/ # 模板文件
│ └── report.md
└── references/ # 参考资料
└── api-docs.md
三、SKILL.md 文件结构
SKILL.md 是技能的核心,使用 Markdown 编写,包含以下关键部分:
3.1 元数据头
使用 YAML front matter 定义技能元数据:
---
name: my-custom-skill
version: 1.0.0
description: 简短描述(160 字节以内)
author: Your Name
tags: [工具, 自动化, 开发]
---
3.2 触发条件
定义技能在什么情况下被触发:
## Triggers
- 用户请求包含关键词"部署"、"发布"
- 用户询问关于 CI/CD 的问题
- 检测到项目根目录有 deploy.sh
3.3 执行流程
详细描述技能的执行步骤:
## Workflow
1. 读取项目配置文件
2. 检查依赖是否安装
3. 运行测试套件
4. 执行部署脚本
5. 验证部署结果
3.4 工具与依赖
## Dependencies
- Node.js >= 18.0
- Docker
- curl
## Tools Used
- exec: 运行部署命令
- read: 读取配置文件
- web_fetch: 检查部署状态
四、技能开发实战
让我们通过一个实际案例,开发一个”代码审查”技能。
4.1 创建技能目录
技能可以放在 ~/.openclaw/workspace/skills/ 目录下,或者通过 Skill Workshop 创建提案。
4.2 编写 SKILL.md
---
name: code-reviewer
version: 1.0.0
description: 自动化代码审查,检查代码质量、安全性和最佳实践
tags: [代码, 审查, 质量]
---
## Description
自动审查代码变更,检查潜在问题、安全漏洞和编码规范。
## Triggers
- Pull Request 创建或更新
- 用户请求"审查代码"、"code review"
- 检测到 .git 目录且有未提交变更
## Workflow
1. 获取代码变更(git diff)
2. 识别变更的文件类型
3. 对每种文件类型执行检查:
- JavaScript/TypeScript: ESLint 规则检查
- Python: pylint 规则检查
- Shell: ShellCheck 规则检查
4. 检查常见安全问题(SQL 注入、XSS、硬编码密钥)
5. 生成审查报告
## Output
返回格式化的审查报告,包含:
- 严重问题(红色标记)
- 警告(黄色标记)
- 建议(蓝色标记)
- 总体评分
4.3 通过 Skill Workshop 创建
OpenClaw 提供了 Skill Workshop 工具来管理技能生命周期:
# 创建技能提案
skill_workshop(action="create", name="code-reviewer", ...)
# 查看已有提案
skill_workshop(action="list")
# 应用提案
skill_workshop(action="apply", proposal_id="...")
五、高级技巧
5.1 条件分支
在 SKILL.md 中使用条件逻辑处理不同场景:
## Decision Points
- 如果项目使用 TypeScript → 执行类型检查
- 如果项目使用 JavaScript → 跳过类型检查
- 如果检测到 Dockerfile → 额外检查 Docker 最佳实践
5.2 引用外部文件
技能可以引用目录内的其他文件:
## References
- 编码规范: [references/coding-standards.md](references/coding-standards.md)
- 安全检查清单: [references/security-checklist.md](references/security-checklist.md)
5.3 错误处理
## Error Handling
- 如果 git diff 失败 → 尝试 git status 获取变更列表
- 如果依赖工具未安装 → 提示用户安装并给出命令
- 如果审查超时 → 返回部分结果并注明
六、最佳实践
- 单一职责:每个技能只做一件事,做得好
- 明确触发条件:避免技能误触发
- 提供回退方案:主方案失败时有备选
- 版本管理:使用语义化版本号
- 测试验证:创建测试用例验证技能行为
- 文档完善:提供清晰的说明和示例
七、技能发布与分享
完成技能开发后,你可以:
- 本地使用:直接放在 skills 目录下
- 发布到 ClawdHub:分享给社区
- 通过 EvoMap 发布:注册为 Capsule 获得信誉分
八、总结
OpenClaw 的自定义技能系统为 AI 助手提供了强大的扩展能力。通过编写 SKILL.md,你可以教会 AI 执行任何重复性任务,从代码审查到文档生成,从数据采集到自动化部署。掌握技能开发,就是掌握了让 AI 真正为你工作的钥匙。