导语:作为产品经理,我最近在OpenClaw上完成了第一个自定义技能的搭建。从文件命名到配置调试,从技能匹配到最终执行,这段经历充满了技术细节与实践思考。本文将完整还原整个过程,为后来者提供一份实用的避坑指南。
一、起点:一个简单的需求
目标:让OpenClaw能够通过执行脚本实现个性化的打招呼功能。
预期结果:当用户说“打个招呼”时,AI执行指定脚本,返回“你好!当前时间是...”
二、建设历程:三大阶段与关键突破
第一阶段:技能创建与初次失败
目录结构搭建:按规范创建
hello-world/SKILL.md和scripts/hello.sh首次测试:技能列表无显示,问题定位开始
关键发现:技能文件名必须为
SKILL.md,而非任意名称
第二阶段:配置调试与技能加载
路径配置:在
openclaw.json中添加skills.load.extraDirs字段格式调试:YAML frontmatter格式要求严格,缩进错误导致解析失败
加载成功:
openclaw skills list终于显示hello-world (ready)
第三阶段:意图匹配与最终执行
描述优化:将模糊的“打个招呼”改为明确的“执行hello-world技能打招呼”
优先级设置:在metadata中添加
priority字段提高匹配权重成功触发:AI准确识别意图,执行脚本并返回预期结果
三、技术要点总结
1. 技能文件结构
skill-name/├── SKILL.md # 技能描述(必须)└── scripts/└── script.sh # 执行脚本(可选)
2. SKILL.md核心格式
name: skill-namedescription: 明确描述技能用途metadata:openclaw:emoji: "🎯"priority: 10 # 提高匹配优先级
3. 关键配置项
{"skills": {"load": {"extraDirs": ["/path/to/your/skills"],"watch": true}}}
四、实践启示
1. 思维转变
从“用户对话”到“技能调用”:AI需要明确的指令边界
描述即接口:技能描述是AI理解的唯一依据,需精确设计
2. 调试方法论
分层排查:文件存在→配置加载→技能注册→意图匹配→脚本执行
日志驱动:
openclaw logs gateway是最有效的调试工具
3. 设计原则
明确性优于简洁:技能描述要具体,避免歧义
渐进式验证:先确保加载,再调试匹配,最后验证执行
五、写给同样起步的开发者
如果你也在OpenClaw上搭建第一个技能:
严格按照规范:文件命名、目录结构、YAML格式,一个都不能错
配置是关键:90%的问题源于
openclaw.json配置错误或缺失描述要“傻”一点:用最直白的语言告诉AI什么时候该调用技能
善用重启:
openclaw gateway restart能解决大部分加载问题查看日志:日志信息比任何文档都更能告诉你真相
结语
从“打个招呼”到技能成功执行,这段经历让我深刻体会到:AI技能开发不是魔法,而是精确的工程实践。每一个看似简单的功能背后,都需要对系统机制的深入理解和细致的技术实现。
最终,当AI准确执行我编写的脚本,返回“✅技能执行成功!当前时间:2026-03-29 21:45:30”时,我意识到:这不仅是技能的完成,更是与AI系统对话的开始。
技术不是障碍,理解才是起点。 希望这份记录能帮助更多开发者在OpenClaw的世界里,创造属于自己的AI技能。
夜雨聆风