
一、先说个场景
你打开 Telegram,给 OpenClaw 发了一句”帮我看一下今天有没有需要跟进的邮件”。几秒后,它把未读邮件的主题、发件人和简要摘要列了出来,并建议你下午三点前回复那封来自合作方的合同邮件。随后你又补了一句”顺便把回复草稿写了”。它又咔咔一阵响,给出一封措辞得体的草稿。
这背后不是魔法。OpenClaw 之所以能从”会聊天”变成”能办事”,靠的是一层叫 Skill(技能) 的东西。你可以把它理解为:给这个大模型助手装上一个个小插件,让它知道”收到什么请求时,该调用什么工具、按什么步骤执行”。
所谓”会干活”,落到具体动作上,是指 OpenClaw 能替你做那些原本要你自己点鼠标、敲键盘的事:把一份长篇文档读进来提炼要点、把散落各处的文件归置到对应目录、在日历上新建一件事、给某个人发一条消息。聊天模型本身只会”说”,而技能把”说”接到”做”的管道上。你可以把每个技能想成一根接好的水管:一端是用户的自然语言请求,另一端是某个具体动作,中间怎么流、用什么工具、按什么顺序,都由 SKILL.md 写定。
把 SKILL.md 想成一份给新同事的入职须知会很贴切:你不会只说”去处理邮件”,而是写清”先看哪封、怎么判断重要、回复用什么语气、发之前要不要确认”。模型也是这位新同事,它能力强但什么都不懂你的环境,全靠这份须知。须知写得越具体,它越不会自作主张;写得越模糊,它越容易自由发挥。所以写技能本质上是在写”给一个聪明但陌生的人看的作业指导书”,读者是人还是模型,区别没那么大。
二、为什么是这样
OpenClaw 是一个开源、本地优先的个人 AI 助手。它跑在你自己的机器上,数据、会话、API Key 都不交给别人。你可以通过 WhatsApp、Telegram、Discord、Slack、Signal、iMessage、Teams 或 WebChat 跟它说话。它背后是统一的 Gateway 控制面,负责把消息路由给对应的 agent 会话。
但 OpenClaw 真正比聊天机器人多出来的能力,是它能读写文件、跑 shell、发邮件、浏览网页、填表单、定时跑任务。问题是:模型本身不知道”收到邮件”这件事具体该怎么做。它得有人教。Skill 就是这份”教案”。
一个 Skill 在文件系统里其实很简单:一个目录 + 一份 SKILL.md 文件。SKILL.md 分两部分:
- 上面是 YAML frontmatter,写元数据(名字、描述、是否可被用户调用等)。
- 下面是 Markdown 正文,写给 agent 看的”教学说明”——什么时候触发、需要调用哪些工具、参数怎么传。
当 OpenClaw 加载了你的技能,agent 在会话里就认识了这份新能力。你让它查邮件,它不再只是回一句”我不会”,而是会走到对应的 Skill 里,用里面教的步骤去执行。
三、跟着做:分步操作
我们先做一个最迷你的 Skill,跑通”会聊天 → 会干活”的闭环。
1. 创建技能目录
mkdir -p ~/.openclaw/workspace/skills/hello-world
注意:目录可以嵌套,比如 ~/.openclaw/workspace/skills/personal/hello-world,但名字由 SKILL.md 里的 name 决定,不是文件夹路径。
2. 写 SKILL.md
---
name: hello-world
description: A simple skill that prints a greeting.
---
# Hello World
When the user asks for a greeting, use the `exec` tool to run:
```bash
echo "Hello from your custom skill!"
```
3. 验证加载
openclaw skills list
如果没看到,说明当前会话没刷新。可以输入 /new 开新会话,或:
openclaw gateway restart
4. 测试它
openclaw agent --message "give me a greeting"
也可以在聊天里直接说”给我打个招呼”,或者用显式调用 /skill hello-world。
跑通 hello-world 之后,别急着庆祝,先想清楚你验证到了什么:你验证了”目录被识别、技能被加载、agent 愿意调用、工具真的执行了”。这四步里任何一环断了,技能都不会真正生效。很多人卡在”列表有、调用没反应”,多半是 description 没写好,agent 不知道什么时候该用它;或者路径写错,脚本找不到。所以这个迷你例子真正的价值,不是那行问候语,而是让你亲手走完”写—加载—触发—执行”这条最短路,以后排错心里才有底。
四、可以复制的指令
# 查看已加载技能
openclaw skills list
# 测试某个 skill
openclaw agent --message "give me a greeting"
# 显式调用某个 skill
/skill hello-world
# 重启 Gateway 刷新技能快照
openclaw gateway restart
五、实战案例
假设你每天都在晚上十一点半写一个同样的日报总结。你可以做一个 daily-summary skill,里面教 agent:
- 读取
~/notes/下当天修改过的 Markdown 文件。 - 用
exec跑一个脚本,把文件名和关键行抽出来。 - 把结果整理成三段:已完成、阻塞中、明天计划。
- 用
exec把草稿写进~/daily-log.md。
你每天晚上只说一句话”写日报”,它就照着做。这和你每次重复说”读取这个文件夹、总结、写进这个文件”完全不一样:Skill 把固定套路封装起来,模型只负责判断”今天是不是该调用 daily-summary”。
六、常见误区
- 误区 1:Skill 是新的工具本身。不对。Skill 本身不是新工具,它是告诉 agent “何时 + 如何用已有工具”的说明书。
- 误区 2:不写 Skill 也能完成同样的任务。一次性的、随机的请求当然可以。但 Skill 让可重复的工作稳定、可复用、可共享。
- 误区 3:名字随便取。
name只能用小写字母、数字、连字符,目录名最好和 frontmatter 的name一致,否则调试时会晕。 - 误区 4:
description只是给人看的。它是给 agent 和斜杠命令发现机制看的,必须一句话说清楚”这个 skill 解决什么问题”,160 字符以内。 - 误区 5:写完立刻生效。OpenClaw 默认会 watch
SKILL.md,但有些场景需要开新会话或重启 Gateway 才能加载。
七、进阶玩法
当你有多个 Skill 后,可以开始玩组合技。比如:
newsletter-digest先读长文章并提炼要点;todo-tracker把要点转成待办;remind-me给最急的一件设个明天提醒。
一条”帮我整理这周的 AI 文章”就能串起三个 Skill。OpenClaw 的妙处不在单点能力,而在你能像拼乐高一样把它组装成个人工作流。
另一个进阶方向是把自己写的 Skill 发布到 ClawHub,OpenClaw 的公开技能注册表。别人装一个命令就能用上你写的套路。
如果你不想从空目录手搓,可以借 Skill Workshop 起头:它提供 skill_workshop 工具,也能用 openclaw skills workshop propose-create --name --description --proposal 根据一句话描述生成技能骨架,少写不少样板。个人维护的技能还可以在界面里走 Plugins→Skills→My skills 集中管理。骨架只是起点,真正的价值仍在你往 SKILL.md 正文里填的”步骤与判断”。
八、小结
Skill 是 OpenClaw 从”聊天模型”变成”能干活的个人助手”的那一层封装。它教 agent 何时调用工具、怎么调用工具,让可重复任务稳定落地。一个 Skill 就是一个目录加一份 SKILL.md,学会了创建 hello-world,你就已经跨过了最难的那条门槛。下一步,你会想装上别人写好的技能来用——这正是下一篇要讲的事:从哪装、怎么验证它真的生效。
