说实话,在写这篇文章之前,我完全不知道技能是怎么工作的。
作为一个普通的 AI 助手用户,我一直觉得这些"技能"就像是神秘的黑盒子——装上去就能用,特别厉害。但具体怎么实现的?不知道,也没想过要去搞清楚。
直到那天,我需要给 OpenClaw 写一个自定义技能来解决工作中反复遇到的问题。
结果发现:原来这么简单。
技能到底是什么?
先把概念搞清楚。
OpenClaw 的技能(Skill)其实就是一个文件夹,里面装了一个 SKILL.md 文件,外加一些可选的脚本和资源文件。
my-skill/ ├── SKILL.md ← 核心文件,定义技能的名字、触发条件和使用方法 ├── scripts/ ← 可选,放需要执行的代码 ├── references/ ← 可选,放参考资料 └── assets/ ← 可选,放图片、模板等资源就这些。没有复杂的配置,没有烦人的依赖,一个 Markdown 文件走天下。
写技能的基本流程
我总结了一下,大概分这几步:
1. 搞清楚这个技能要做什么
说起来简单,但这一步其实最重要。你要解决什么问题?什么时候应该触发这个技能?用户会怎么说?
2. 写 SKILL.md
这是核心。格式是这样的:
--- name: my-skill description: 技能的描述,告诉 AI 什么时候该用这个技能 --- # 技能名称 ## 使用方法 具体的操作步骤...3. 测试和优化
写完一定要实测。我一开始写的版本触发不了,后来发现是 description 写得太模糊了。改成更具体的描述之后,一用就灵。
一个真实的例子
光说理论没意思,给你看看我写的第一个技能长什么样。
这是帮我处理日报的一个技能(已脱敏):
--- name: daily-report-helper description: 日报助手,帮助我整理和格式化每日工作汇报。当我说"写日报"、"整理一下今天的工作"、"日报怎么写"时触发。 --- # 日报助手 ## 核心功能 - 接收今天做的事情的原始记录 - 按照标准格式整理成简洁的日报 - 输出 markdown 格式,可以直接复制 ## 输出格式 ```markdown ## 📅 日期 ### 主要工作 1. xxx 2. xxx ### 遇到的问题 - xxx ### 明天计划 1. xxx使用场景
当我输入一堆杂乱的文字记录时,帮我提炼成结构化的日报。
就这些。写完之后,我只需要说"帮我写日报",剩下的全都不用管了。 --- ## 我踩过的坑 **1. description 一定要写清楚触发场景** 一开始我写的是"帮助处理日报",结果 AI 根本不用这个技能,因为它觉得它自己就能搞定。后来改成"当用户说写日报、整理今天工作时触发",立竿见影。 **2. 不是越详细越好** 我之前犯过一个错误:把 SKILL.md 写成了万字长文,结果上下文爆炸,AI 光读这个技能就读半天。实际上,只保留 AI 不知道的信息就够了,通用知识不用重复写。 **3. 脚本不是必须的** 我本来觉得技能里必须放脚本,其实不是。纯文本的技能完全没问题,脚本只是用来处理那些确定性要求高的重复任务。 --- ## 写完之后怎么用? 把写好的技能放到 OpenClaw 的 skills 目录里就好了。具体路径要看你的安装方式,一般在:~/.openclaw/skills/ ```
放进去之后,重新加载一下,技能就生效了。整个过程不超过 5 分钟。
现在回头看
说实话,写技能比我想象中简单太多了。
之前总觉得这东西很专业、很复杂,但实际上就是一个 Markdown 文件加上一点点结构化的思路。真正难的不是写,而是想清楚你要解决什么问题。
一旦问题想清楚了,写起来就是顺水推舟的事。
如果你也遇到反复出现的繁琐任务,真的建议试试自己写一个技能。不需要会编程,只要能把需求说清楚,就能做出来。
你的第一个技能想做什么? 留言告诉我,说不定下一个火起来的技能就是你的 idea。
夜雨聆风