乐于分享
好东西不私藏

从“打个招呼”到技能执行:我在OpenClaw上搭建第一个AI技能的完整历程

从“打个招呼”到技能执行:我在OpenClaw上搭建第一个AI技能的完整历程

导语:作为产品经理,我最近在OpenClaw上完成了第一个自定义技能的搭建。从文件命名到配置调试,从技能匹配到最终执行,这段经历充满了技术细节与实践思考。本文将完整还原整个过程,为后来者提供一份实用的避坑指南。

一、起点:一个简单的需求

目标:让OpenClaw能够通过执行脚本实现个性化的打招呼功能。

预期结果:当用户说“打个招呼”时,AI执行指定脚本,返回“你好!当前时间是...”

二、建设历程:三大阶段与关键突破

第一阶段:技能创建与初次失败

  1. 目录结构搭建:按规范创建hello-world/SKILL.mdscripts/hello.sh

  2. 首次测试:技能列表无显示,问题定位开始

  3. 关键发现:技能文件名必须为SKILL.md,而非任意名称

第二阶段:配置调试与技能加载

  1. 路径配置:在openclaw.json中添加skills.load.extraDirs字段

  2. 格式调试:YAML frontmatter格式要求严格,缩进错误导致解析失败

  3. 加载成功openclaw skills list终于显示hello-world (ready)

第三阶段:意图匹配与最终执行

  1. 描述优化:将模糊的“打个招呼”改为明确的“执行hello-world技能打招呼”

  2. 优先级设置:在metadata中添加priority字段提高匹配权重

  3. 成功触发: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上搭建第一个技能:

  1. 严格按照规范:文件命名、目录结构、YAML格式,一个都不能错

  2. 配置是关键:90%的问题源于openclaw.json配置错误或缺失

  3. 描述要“傻”一点:用最直白的语言告诉AI什么时候该调用技能

  4. 善用重启openclaw gateway restart能解决大部分加载问题

  5. 查看日志:日志信息比任何文档都更能告诉你真相

结语

从“打个招呼”到技能成功执行,这段经历让我深刻体会到:AI技能开发不是魔法,而是精确的工程实践。每一个看似简单的功能背后,都需要对系统机制的深入理解和细致的技术实现。

最终,当AI准确执行我编写的脚本,返回“✅技能执行成功!当前时间:2026-03-29 21:45:30”时,我意识到:这不仅是技能的完成,更是与AI系统对话的开始。

技术不是障碍,理解才是起点。 希望这份记录能帮助更多开发者在OpenClaw的世界里,创造属于自己的AI技能。