OpenClaw 自定义 Skill 开发指南
把你的独特工作流封装成 Skill,让 AI 真正替你干活。
为什么要自己写 Skill?
OpenClaw 内置了很多通用 Skill,但每个人的工作流都不一样。自定义 Skill 让你可以:
- 🎯 封装独特工作流:你公司内部的审批流程、报表格式、数据源,别人的 Skill 不可能覆盖
- 🔗 对接内部工具:连接公司的 CRM、ERP、OA 系统,让 AI 直接操作你的业务系统
- ⚡ 提高执行效率:把 10 步手动操作压缩成一个 Skill 调用,AI 一句话就能完成
- 🔄 标准化团队协作:团队成员共享同一套 Skill,确保 AI 输出的格式和质量一致
Skill 架构概览
一个 Skill 的核心结构非常简单,由三个部分组成:
声明层(Manifest)
告诉 OpenClaw 这个 Skill 是什么、需要什么输入、产生什么输出。包括名称、描述、参数定义、权限要求等元信息。
执行层(Handler)
Skill 的核心逻辑。接收输入参数,执行具体操作(调 API、读写文件、处理数据),返回结果。支持同步和异步两种模式。
生命周期钩子(Hooks)
可选的扩展点:初始化(加载配置、建立连接)、校验(检查输入合法性)、清理(释放资源、关闭连接)。不写也没关系,系统有默认行为。
实战:构建一个「客户跟进提醒」Skill
我们用一个真实场景来走一遍完整的开发流程:
明确需求
场景:销售团队需要 AI 每天检查 CRM 中超过 7 天未联系的客户,生成跟进清单,发送到企业微信群。
- 输入:天数阈值(默认 7 天)、目标群组 ID
- 输出:跟进清单(客户名、上次联系时间、建议动作)
- 权限:需要 CRM API 访问权限、企业微信发送权限
编写 Manifest
定义 Skill 的元信息:名称叫 customer-followup,描述清楚功能,声明两个输入参数和它们的类型、默认值。这一步决定了 AI 什么时候会调用你的 Skill。
实现 Handler
核心逻辑分三步:① 调用 CRM API 查询超期客户 → ② 用 AI 生成每个客户的跟进建议 → ③ 格式化成消息发送到企业微信。每一步都可以调用 OpenClaw 的内置工具。
本地测试
用 OpenClaw 的开发模式加载 Skill,对 AI 说「检查一下超过 3 天没联系的客户」。观察 AI 是否正确识别意图、传入正确参数、返回预期结果。
部署上线
测试通过后,将 Skill 安装到生产环境。团队中的任何人都可以通过自然语言触发它。
常见开发模式
大多数自定义 Skill 都属于以下几类:
🌐 API 集成类
对接外部服务的 API,让 AI 可以操作第三方系统。
- 连接企业微信 / 钉钉 / 飞书,发送消息和通知
- 对接 Jira / Notion / 飞书多维表格,管理项目和任务
- 调用支付网关查询订单状态
- 连接自建的内部 API 服务
📄 文件处理类
批量处理文件、转换格式、提取信息。
- 批量将 Word 转 PDF 并添加水印
- 从发票图片中提取金额和日期(结合 OCR)
- 合并多个 Excel 并生成汇总报表
- 扫描目录中的文件并按规则整理归档
🔔 通知和报告类
定时生成报告或在特定条件下发出通知。
- 每日站会摘要:汇总昨天的 Git 提交和 Jira 变更
- 异常告警:监控指标超阈值时自动通知
- 周报生成:从多个数据源拉取数据并格式化
🔄 数据处理类
ETL、数据清洗、格式转换等数据密集型任务。
- 从数据库导出 → 清洗 → 写入另一个系统
- CSV/JSON 格式互转并做数据校验
- 多源数据合并去重
测试和调试技巧
- 🐛 开发模式运行:加载 Skill 时开启 debug 模式,可以看到 AI 传入的完整参数和 Skill 返回的完整结果
- 🧪 模拟输入测试:准备几组典型输入(正常值、边界值、异常值),逐个验证 Skill 的行为
- 📋 检查 Manifest 描述:如果 AI 不调用你的 Skill,通常是 Manifest 中的描述不够清晰。试着用更自然的语言描述功能
- 🔍 日志追踪:在 Handler 中添加日志输出,追踪每一步的执行情况
- ⏱️ 超时处理:外部 API 调用一定要设置超时,避免 Skill 卡死
- 🛡️ 错误处理:返回清晰的错误信息,而不是让 Skill 直接崩溃。AI 需要错误信息来决定下一步怎么做
发布和分享
写好的 Skill 不要藏着,分享给社区让更多人受益:
- 📦 打包:按照标准目录结构组织文件,包含 Manifest、Handler、README、示例配置
- ✅ 审核:提交到 OpenClaw Skill 仓库前,确保代码无硬编码密钥、有基本的错误处理、描述清晰
- 🌍 发布:通过 PR 提交到官方 Skill 仓库,审核通过后所有用户可以一键安装
- 🏢 企业内部分享:也可以搭建私有 Skill 仓库,仅在团队内部使用
daily-report-generator 比 tool-v2-final 好一万倍。AI 也靠名字和描述来决定是否调用。开发最佳实践清单
- ✅ 单一职责:一个 Skill 只做一件事。「发邮件」和「生成报表」应该是两个 Skill,而不是一个
- ✅ 参数有默认值:尽量给参数设默认值,减少 AI 需要确认的信息
- ✅ 描述写给 AI 看:Manifest 中的描述是写给 AI 的,要让 AI 能判断什么场景下该调用
- ✅ 幂等设计:同样的输入执行多次,结果应该一样。避免重复发邮件、重复创建记录
- ✅ 敏感信息用环境变量:API Key、密码等绝对不要硬编码在 Skill 里
- ✅ 返回有意义的结果:不要只返回「成功」,返回具体做了什么(如「已发送 3 封邮件给 张三、李四、王五」)
相关搜索
OpenClaw Skill 开发 · 自定义 AI 技能 · OpenClaw 插件开发 · AI Agent 扩展开发 · OpenClaw Skill 发布 · 企业 AI 自动化