OpenClaw 自定义技能怎么写:从 SKILL.md 骨架到装进自己的 Agent

编程狮(w3cschool.cn) 2026-10-22 07:07:18 浏览数 (27)
反馈

先给结论:OpenClaw 的自定义技能不用从空白写起。最省事的路径是照着官方技能库里的同类技能改:复制它的目录结构,保留 SKILL.md 的写法,只替换触发说明和步骤,然后用 openclaw skill install 装进来、在对话里用"加载技能:XXX"触发。

OpenClaw 自定义技能从骨架到安装的三步

OpenClaw 是 Peter Steinberger 开发的一款面向个人与轻量团队的 AI 自动化代理工具,前身是 Clawdbot 与 Moltbot,2026 年统一以 OpenClaw 作为官方名称。它的定位是用自然语言指令替代人工完成流程化、重复性的工作,技能(skill)就是把一类重复工作固化下来的方式。

本文按"照抄同类 → 改写内容 → 安装验证"三步走,给出 SKILL.md 的骨架、安装与加载的具体命令,以及三个高频失败分支的处理办法。文中关于产品定位与安装命令的内容来自官方技能库使用说明(证据类型:官方文档),SKILL.md 的具体字段结构为编辑推断,请以你安装版本中的示例为准。

先看结论

  • 先抄再改:官方技能库里已有天气、GitHub 命令行、内容总结、多引擎搜索等成体系技能,找一个最接近的当骨架。
  • SKILL.md 只写三件事:这个技能什么时候该被用、用的时候按什么步骤做、做完给什么结果。
  • 装完必须验证:用一条真实指令触发一次,确认它按你写的步骤执行,而不是靠模型自由发挥。

技能的分类清单,OpenClaw 中文教程 里有按领域分组的说明。

一、最小场景与预期行为

任务定死:你每周都要把一批会议记录整理成固定格式的工作日报。想让 OpenClaw 学会这件事,而不是每次都把格式要求重新说一遍。

输入是一个技能目录加一份说明文件。预期行为是:安装之后,只要说"整理这份会议记录",Agent 就按你规定的格式输出,不再需要重复交代。

## 从官方库安装一个现成技能作为参考
openclaw skill install https://clawdhub.com/skills/summarize

这条命令做的是从 OpenClaw 官方技能库拉下一个现成技能。先看它的目录里有什么文件、说明文件是怎么写的,比自己凭空设计可靠得多。

预期结果(未在本机执行):技能出现在已安装列表里,对话中输入"加载技能:summarize"可以启用它。这两步走通,说明你的安装通道是好的,接下来只是换内容。

二、第一步:照着现成技能改

官方技能库按领域把技能分成了若干类,包括 AI 与搜索、API 与集成、监控与日志、云平台管理、社交媒体、金融与交易、健康与生活、娱乐与游戏等。先在这些类别里找一个动作形态最接近的。

判断"接近"看两点:

  • 输入输出形态接近:你要做的是"读一段文本、输出一段整理后的文本",那 summarize 这类总结技能就比 weather 这类查询技能更像。
  • 副作用范围接近:只是生成文本的技能,和会去调用外部接口、会写文件的技能,写法差别很大。前者可以放心让 Agent 自动跑,后者要写明确认步骤。

找到之后,把它的目录整个复制一份,改目录名,再逐个文件替换内容。保留它的文件组织方式,这一步能省掉大量试错。

从现成技能到自定义技能的三步路径

三、第二步:SKILL.md 写什么

技能的核心是那份说明文件。不管目录里还有什么,说明文件要回答清楚三件事。

---
name: meeting-digest
description: 把会议记录整理成固定格式的工作日报,
  适合在用户提供会议记录并要求整理、总结、生成日报时使用
---

# 会议记录整理

## 什么时候用
用户提供一段会议记录,并希望得到结构化的日报时使用。
不要用它做会议录音转写,也不要用它生成邮件正文。

## 步骤
1. 先通读全文,列出出现的议题,不要遗漏时间点。
2. 按"议题 / 结论 / 负责人 / 截止时间"四列输出表格。
3. 表格之后补一段不超过 100 字的整体进展。
4. 信息缺失的地方写"待确认",不要自行补充。

## 输出要求
只输出表格与进展两段,不要复述原始记录。

这份骨架做的是:用前置元数据告诉 Agent 这个技能叫什么、什么时候该被想起;用正文告诉它按什么步骤做、做到什么程度算完成。

三个写法要点:

  1. description 写触发场景,不写功能列表。它决定 Agent 什么时候会想起这个技能,写"用于整理会议记录"比写"支持表格输出"有用。
  2. 步骤写动作,不写原则。"按四列输出表格"是可执行的,"要专业严谨"不是。
  3. 明确写不要做什么。反例清单能显著减少跑偏,上面的"不要自行补充"就是这一条。

四、第三步:安装、加载与常见失败分支

4.1 安装与加载

本地写好的技能用同一条命令安装,从官方库拉和从本地路径装走的是同一套流程:

openclaw skill install https://clawdhub.com/skills/[技能]

装好之后在对话里触发:

加载技能:会议记录整理

这两步做的是:先把技能注册进当前环境,再在会话里显式启用。OpenClaw 官方技能库使用说明中给出的加载方式就是这一句"加载技能:XX"。

4.2 三个高频失败分支

  • 技能装了但从不触发:description 写得太抽象,Agent 判断不出这个场景该用它。修复办法是把触发词写进 description,比如"要求整理、总结、生成日报时"。
  • 触发了但不按步骤做:步骤写成了原则而不是动作。修复办法是每条步骤都以动词开头,并给出可检查的产出。
  • 能力超出预期范围:说明文件里没写"不要做什么"。修复办法是补一段反例清单,明确排除相近但不该做的场景。

4.3 验证清单

  • 检查:技能出现在已安装列表,description 能被完整读到
  • 运行:用一条真实指令触发,提供一段包含三个议题的会议记录
  • 预期:输出四列表格加一段进展,缺失项写"待确认"
  • 失败:输出了大段复述 → 输出要求没生效
  • 修复:在输出要求里明确写"只输出表格与进展两段,不复述原文"
  • 验证:换一段信息不全的记录再跑一次,确认缺失处写的是"待确认"而不是编造内容

上面这些步骤做的是确认安装、触发真实用例、检查反例行为。预期结果(未在本机执行)是两次输出格式一致;若第二次编造了内容,说明"不要自行补充"这条约束需要写得更靠前、更硬。

技能该不该自己写的判断路径

总结

OpenClaw 自定义技能的正确起点不是空白文件,而是官方库里最接近的那个现成技能。复制它的结构,把 description 写成触发场景、把步骤写成动作、把边界写成反例清单,再用一条真实指令验证两次,一个能稳定复用的技能就成了。

三条要点带走:

  • description 决定技能会不会被想起,要写场景而不是功能列表;
  • 步骤以动词开头、给出可检查的产出,原则性描述不产生约束力;
  • 反例清单和正例步骤一样重要,它决定技能会不会越界。

下一步建议把每周重复三次以上的任务列出来,按"输入输出形态"归个类,先给最像的那一类写一个技能。需要多步协作的场景,可以看 OpenClaw 子代理 编排多个步骤。

常见问题

Q:自定义技能必须写成独立目录吗?

A:官方技能库里的技能都是按目录组织的,说明文件加可选的辅助文件放在同一个目录里。照抄这个结构最省事,具体字段以你安装版本中的示例为准。

Q:技能装上了为什么从来不触发?

A:先看 description。它决定 Agent 什么时候想起这个技能,只写功能名称、不写触发场景是最常见的原因。

Q:能不能让技能自己去调外部接口?

A:可以,但要在步骤里写明确认环节。会写文件、会发请求的能力要显式标注边界,否则容易越界执行。

Q:SKILL.md 里的字段是固定的吗?

A:不同版本可能有差异。建议以你安装版本里官方技能的写法为准,本文骨架给出的是通用结构与写法原则。

Q:一个技能能干多件事吗?

A:不建议。一个技能对应一类输入输出形态最好,做多件事会让 description 变得模糊,反而降低触发准确率。

延伸学习

想把自定义技能写顺,可以按这个顺序来:

  1. 读一篇相关笔记 Agent Skills 笔记,先看清技能的基本构成;
  2. 想系统补 AI 编程能力,AI 编程技能教程 可以跟一遍;
  3. 想看技能与工具的挂载方式,OpenClaw 工具插件 里有对应说明。

0 人点赞