
这篇是OpenClaw skill系列的第三讲。前两讲我们把skill的基本概念、配置文件结构、触发机制都聊了一遍这一讲不谈具体领域只讲怎么写。为什么用OpenClaw写skill能在5分钟内完成很多人第一反应是“你得会写代码”但实际用过几次你就会发现写skill真正的门槛根本不在代码而在拆任务的思路。思路对了哪怕你只会写最基础的YAML也能源源不断地把身边重复性的事变成skill思路不对就算你代码功底再深做出来的skill也是又脆又难维护。这讲的内容适配所有OpenClaw用户不管是刚装好OpenClaw还没跑通第一个skill的新手还是已经在Windows、Ubuntu、安卓Termux上折腾过部署的进阶玩家只要你打算把日常任务沉淀成可复用的skill这套7步法都可以直接照搬。我会把每一步的思考逻辑、常见翻车点、以及我在实际调试中踩过的坑都交代清楚尽量做到你看完就能动手动手就能写出自己的第一个实用skill。1. skill不是脚本是给AI看的“操作流程图”1.1 skill的本质把模糊需求翻译成可执行步骤我见过很多人写skill失败不是输在不会写配置而是输在把skill当成了普通脚本。普通脚本是你把每一步都写死计算机照着跑就行skill不一样skill的底层是一个大模型代理它收到你的指令后需要自己判断“现在做到哪一步了”“下一步该调用哪个工具”“结果怎么输出最合理”。所以你可以把skill理解成一张给AI看的操作流程图输入什么、经过哪几个环节、每个环节做什么决策、遇到异常怎么处理、最终输出什么格式。这张图画得越清晰AI的执行就越精准图上留的空白越多AI自由发挥的空间就越大结果飘的概率也就越高。我习惯用一个类比来解释这件事skill就像你给实习生写的一份SOP。你不会告诉实习生“把客户投诉处理一下”就甩手不管你一定会写明第一步先回复什么、第二步查哪个系统、第三步升级到什么级别、第四步怎么归档。skill面对的情况完全一样只不过执行者是AI。想清楚这层你再看skill的结构——system提示词、工具配置、输入输出规范——它们本质上就是在写这份SOP。1.2 好skill的三个判断标准稳定、容错、可复用既然skill是流程图那我们评判一个skill好坏就有了明确标准。我经历了从“能跑”到“好用”的过程之后总结出三条标准你可以拿来自检稳定同一个输入连续跑5次结果差异不大。如果AI每次输出的风格、结构、详略都完全不同说明你的流程图里少了约束。容错输入的内容缺胳膊少腿时它不会崩溃而是会追问、补全或明确告诉你缺什么。好的skill会自己设一道“输入检查关”。可复用换一个数据、换一个主题、换一批素材skill照样能用。如果你发现skill只能服务某一个特定案例那说明你把不该写死的东西写死了。这三条标准不是同时达成的。多数人第一个版本只能做到“能跑”也就是从0到1稳定和容错是在测试环节里磨出来的可复用性则取决于你一开始定义场景时的抽象程度。所以7个步骤的顺序很关键前面每一步都在为后面的稳定性铺路。2. 5分钟写出一个skill的7个步骤2.1 第1步定义触发场景一句话说清边界很多人动手写skill时犯的第一个错是想做一个“万能skill”。比如有人跟我说想做一个“写文案的skill”这个范围就太大了。文字风格、目标人群、发布平台、篇幅长度、SEO要求这些东西混在一起AI根本不知道该按哪个优先级执行结果必然是每个任务都套同一个模板写出来四不像。正确做法是给skill画一条清晰的边界线。用一句话说清楚“什么时候用这个skill、什么时候不该用”。比如“当用户给出一段口语化素材时用这个skill整理成结构化会议纪要输出待办事项和责任人”这句话就同时定义了适用场景、输入类型和输出目标。边界越清楚AI的决策路径就越短。我在写skill时习惯把这句话直接写进skill描述文件的前三行既方便自己日后检索也能在OpenClaw的运行日志里快速确认它是否被正确触发。这一步大概花30秒值得。2.2 第2步把任务拆成流程节点每个节点只做一件事定了边界接下来就是把从输入到输出的过程切成若干个节点。切节点的原则是每个节点只做一件事节点与节点之间有明确的输入和输出接口。拿“把口语化素材整理成会议纪要”这个例子来说我通常会拆成四段第一段识别素材里出现的参会人员和核心议题第二段提取讨论内容、结论和分歧点第三段归类待办事项明确责任人和截止时间第四段按固定格式输出纪要和待办清单。注意这四个节点之间是有顺序依赖的。你不先识别议题后面就没法判断哪些内容是核心结论。这种依赖关系就是你在skill里要写的“流程控制”。OpenClaw的skill不一定需要复杂的流程图语法很多时候你只要在system提示词里用编号步骤写清楚“第一步做什么、第二步做什么”AI就会按顺序执行。关键是你的节点划分要符合人对这项任务的认知习惯AI才能顺着你的思路走。这一步是整个7步里最花脑力的但也是决定skill质量的核心。如果时间紧我宁可在这一步多花2分钟也不愿意在后面反复返工。2.3 第3步给每个节点写约束条件减少自由发挥节点只是骨架约束条件才是让skill稳定的血肉。AI的真实执行场景里它面对的是千奇百怪的真实输入如果节点描述太开放它就会在边界处自由发挥结果自然飘。约束条件通常有三种类型。第一种是内容约束比如“只提取与议题直接相关的内容不展开背景”第二种是格式约束比如“输出采用Markdown列表每条待办不超过20字”第三种是行为约束比如“如果素材中未出现明确责任人或截止时间标注为待确认不要自行编造”。这三种约束千万别混在一起写最好逐条列出。我见过很多新手把约束全部塞进一句话里AI根本分不清哪些是硬规则、哪些是软建议。我的习惯是每条约束独立成一行前面加上“必须”或“禁止”这样的强指令词让AI明确知道边界在哪。还有一个小技巧约束条件里尽量写“做什么”而不是“不做什么”。AI对否定句的理解通常不如肯定句“不要在结论里加入主观判断”就不如“每个结论后必须附上素材中的原话作为依据”来得有效。2.4 第4步定义输入输出格式让接口保持简单流程和约束都写好了接下来要定义这个skill对外可见的输入输出格式。这一步直接决定了skill的通用性和后续维护成本。输入格式的核心是明确“这个skill接收什么”。我倾向把输入设计成一个结构化的信息包而不是一段自由文本。比如一个做视频脚本的skill它的输入应该包括主题、目标观众、时长、语气四个字段而不是丢一句“帮我写个脚本”。这样设计的好处是你在调试时能清楚地知道是哪个字段出了问题AI也不会因为缺少信息而胡编。输出格式的核心是“用户拿到什么结果”。先用什么标题、正文分几节、有没有附录、是否附上使用的素材清单都要在skill里定死。我在这一步通常会把预期输出样例直接写好放进提示词里让AI照着样例的样子输出。这招比你说一百遍“请保持格式一致”都管用。接口设计有一个通用原则对外简单对内详细。用户只需要提供最小限度的信息而AI内部要做哪些处理、调用哪些工具那是skill内部的事不用暴露给用户。这样梳理下来skill的复用性自然就高了。2.5 第5步写最小可运行版本先跑通再优化到这一步才开始碰配置文件。很多人会犯一个毛病一上来就想把skill做到完美流程写了十几步工具配了五六个结果第一次运行就报错调试了一晚上也没找到问题在哪。我的建议是先写最小可运行版本。所谓最小就是只保留必需的核心流程节点工具先不接或只接一个输出格式先用最简单的纯文本哪怕丑一点也没关系目标是让这个skill能从头到尾跑通一次。跑通了你就确认了“思路本身可行”跑不通你也方便定位问题因为变量少原因无外乎就是那么几个。这一步我给自己定的时间上限就是3分钟。别小看这个“跑通一次”它能给你后续优化提供真实的反馈基线。你后面做的每一次改动都要对比这个基线来看是有改善还是有退化。2.6 第6步准备两组测试一正一反测试是最容易被省略、却又最有价值的一步。很多人写完skill拿一个“标准输入”试了试觉得没问题就发布了。等到真实使用时面对的是含糊的、带噪音的、缺信息的输入skill立刻露馅。所以我建议大家准备两组测试用例一组正向用例一组反向用例。正向用例就是你预期中最典型的输入比如“一段完整的会议发言记录主题明确人物清晰”用来确认skill能完成主流程。反向用例是故意制造问题的输入比如“素材里没有明确结论”“人物姓名缺失”“内容与skill主题完全无关”用来确认skill在异常情况下不会崩溃或胡诌。反向测试的结果不一定要完美但至少要符合预期该追问的追问该标注待确认的标注该拒绝处理的拒绝。这一步通常要来回调整约束条件你会发现第3步写的那些约束在反向用例里会大批量失效补一轮之后skill的容错能力会有质的提升。2.7 第7步归档发布写清用途和依赖最后一步是归档。别以为skill能跑了就万事大吉我见过太多人过了两个月翻回自己的skill列表看着一堆文件名根本想不起来哪个是干吗的。归档的核心是写清楚三样东西用途、依赖、改动记录。用途一句话说清“这个skill解决什么问题、什么时候不该用”依赖写清“运行这个skill需要哪些工具、哪个模型、哪个API”改动记录记录你迭代了哪些版本、为什么要改。这三样直接写进skill的描述文件里或者单独放一个README文件。这一步还有个容易被忽略的点命名规范。我建议每个skill的目录名和触发关键词保持高度一致这样在OpenClaw里调用时能快速匹配日志排查时也更直观。很多人在这一步偷懒后面定位问题要多花好几倍时间。3. 用一个“读书笔记skill”把7步完整走一遍3.1 场景拆解从一段摘抄到结构化知识卡片讲完了7步的框架我拿一个最近实际在用的skill完整演示一遍。这个skill的功能是输入一段书里的摘抄原文输出一张包含出处、核心观点、个人思考、行动清单的结构化知识卡片。我为什么选这个例子因为它的流程足够典型既包含信息提取又包含观点生成还包含输出格式化几乎覆盖了大多数内容处理类skill的共通结构。你有小说写作skill、GIS空间分析skill、AI备课skill底层思路都跟它一致。按第1步定边界这个skill只接收书籍摘抄不接收视频文稿或口语记录输出的核心是结构化知识卡片不是长篇读后感。一句话摘抄进来卡片出去。按第2步拆节点第一个节点提取出处信息和原文中的核心观点第二个节点对核心观点做解释和延伸补充背景知识第三个节点生成个人思考包括认同点与质疑点第四个节点把值得执行的行动转化成语境明确的行动清单。3.2 关键配置约束条件和输出模板怎么写这个skill的配置核心在system提示词部分。按第3步的约束条件写法我在每个节点下面都加了硬规则比如提取核心观点时“必须使用原文中出现的词句不得改写”生成个人思考时“必须区分事实与观点对观点的评述要用‘我认为’开头”行动清单里“每条行动必须包含动作执行场景预期结果三要素”。输出格式我用了一个内置模板相当于第4步里说的样例驱动。模板长这样开头一行是书名和原文页码接着是核心观点区每一条观点下面挂“原文依据”和“我的理解”两个子项最后是行动清单区。这个模板一旦固定下来无论你读的是什么主题的书输出的卡片风格都保持统一这就是可复用性的来源。第5步最小版本我只保留了提取观点和输出卡片两个节点跑通之后再补上个人思考里调用外部搜索工具的部分。第6步测试时正向用例我拿了一段《穷查理宝典》里的经典摘抄反向用例我故意丢进去一段没有出处、没有页码的碎碎念结果发现它还是强行输出了卡片但没有标注出处缺失于是我在约束里加了一条“输入中未出现页码时在卡片顶部用红字标记【出处待补】”。这一轮改完后skill才真正算是稳定了。3.3 实测记录与迭代方向实际跑下来这个skill给我最大的收获不是“它能帮我做笔记”而是我发现迭代是永无止境的。第一版用时大约5分钟能用加了反向用例修正后稳定性和容错性都有了明显提升大概用了2分钟后来我又给它加了一个“批量模式”支持一次输入五段摘抄、输出五张卡片这是第2步里说的流程节点复用的典型案例——批量模式并没有新增逻辑只是把原来对单段摘抄的处理流程循环了五次。这就是skill有意思的地方核心流程一旦写对扩展功能往往只是对既有节点的重新组合。你不需要重新发明流程只需要把节点按新需求重新编排。4. 常见问题与排查技巧实录4.1 Windows环境下安装、加载skill的典型报错这一节专门送给在Windows上折腾OpenClaw的朋友。我收到了大量类似的搜索最典型的一个是命令行里出现类似“OpenClaw无法安全验证、请在PowerShell中运行wsl --status”的提示。这个事儿的根源通常不是你的skill配置问题而是WSL子系统状态异常——要么内核版本太旧要么没有默认发行版。遇到这种提示第一步永远是在PowerShell里执行wsl --status查看WSL的当前状态再执行wsl --update把内核更新到最新。执行完这两步再启动OpenClaw大多数环境类报错都能解决。如果wsl --status本身也报错那就回到“启用Windows功能”的层面检查确认“适用于Linux的Windows子系统”和“虚拟机平台”两项都已勾选然后重启系统。还有一类高频报错是和编码相关的。Windows的PowerShell默认编码与中国大陆环境下的中文内容经常不对付技能里含中文时容易触发编码类错误表现成乱码或无法识别。这不是OpenClaw本身的bug而是终端编码问题。简单有效的处理方式是在启动OpenClaw之前先执行chcp 65001切到UTF-8代码页或者在PowerShell里把默认输出编码设为UTF-8。遇到这类问题先别急着怀疑skill代码优先排查环境能省大量时间。4.2 skill加载了却一直不生效问题出在哪很多时候你确认配置没问题key也填了目录也放对了但skill就是不触发。我从自己的调试经验里总结出三个排查方向按优先级排列第一触发关键词没有对准。OpenClaw的skill触发机制高度依赖描述文件里的触发词和意图描述如果触发词和你实际输入的语言、表述风格不一致它就不会激活。比如你写的是“生成会议纪要”但实际输入是“帮我整理一下刚才开会说的东西”措辞差距过大就会识别不到。解决方法是多写几个同义触发词把口语说法和书面说法都放进去。第二skill目录没有正确加载。很多人在Windows上把skill文件夹放到了错误的位置或者目录层级不符合规范。建议启动OpenClaw后先执行一次列出已加载skill的命令看看你的skill是否在列表中。如果不在优先检查目录路径是否为绝对路径、是否有权限访问以及子目录结构是否正确。第三模型上下文太长导致流程中断。复杂skill会有多个步骤如果输入素材很长AI在跑到后半程时可能会因为上下文超限而丢掉前面的指令导致结果看起来像“skill没生效”。这种情况通常会把长输入拆成多段处理或者在skill里加上“每处理完一个节点先输出一次中间结果”的机制这样即使中断你也能知道卡在哪一步。4.3 从“能用”到“好用”我反复踩过的迭代坑最后一个经验是关于“什么时候该停下迭代”。我见过几个朋友写skill第一版能用然后开始无限加功能、加约束最后把skill改得又长又笨响应变慢错误率反而上升。这里的基本原则是每加一个功能或约束都要回到第6步重跑正反用例确认改动没有破坏原有的稳定性。如果一次改动同时影响了流程节点和输出格式宁可拆成两次提交也别一起改。另外一个经验是永远保留上一个能用版本。我在OpenClaw的skill目录里习惯给每个文件夹加一个版本后缀比如book-note-v2。调试时如果新版跑挂了我可以秒回滚到v1不至于连能用的版本都被覆盖掉。这种习惯在迭代频率高的时候特别救命。5. 把同一套思路搬到更多场景里5.1 从工作流到专业领域的迁移方法讲到这里我想你应该已经意识到这套7步法的通用性远超OpenClaw本身。它的核心是“把模糊任务变成结构化流程”这个能力在任何领域都吃得开。比如做GIS空间分析的人完全可以用它来沉淀一套“矢量数据质量检查skill”。流程节点可以是读取属性表、检查坐标系、跑拓扑检查、输出问题清单。每个节点配好约束和工具调用跟你写读书笔记skill的步骤一模一样。再比如做AI备课的教师可以把“课程导入”拆成“定位教学目标、搜集素材、设计互动环节、生成教案”四个节点每一步的约束条件就是“必须对应课标要求”。表面上看场景差异极大但骨架完全同构定边界、拆节点、加约束、定接口、跑测试。5.2 思路通用的关键先有边界再有细节每次我教别人用OpenClaw写skill都会发现一个共同规律绝大多数人不是缺技术而是缺“先想清楚再动手”的习惯。你让AI替你写一份小说大纲你至少要能告诉它“这个故事的读者是谁、你希望的节奏是快还是慢、有没有必须要出现的核心设定”——这些信息不给足它就只能在套话里打转。所以这一讲我想留下的并不是某种特定语法或配置文件模板而是一个思维习惯设计任何自动化流程之前先问自己三个问题。第一这件事什么时候该做、什么时候不该做第二完成这件事需要哪几个必经环节顺序能不能颠倒第三每个环节的输出长什么样才算合格。这三个问题想清楚了写skill的动作就是填空。我个人在实际使用OpenClaw这么久以来的一个最深体会是skill的价值不在于你一次写了多少行配置而在于你把自己头脑里那些重复劳动的操作路径完整、准确地外置成了一个AI能理解和执行的载体。这个过程本身会逼迫你把任务想得比平时更细致而一旦你习惯了这种思考方式你会发现不仅是OpenClaw你在工作里拆解问题的能力也在同步提高。最后分享一个我现在还在用的操作习惯每写完一个skill我都会随手把这次迭代里“最意外的反例”记录下来放在skill目录的CHANGELOG文件里。等到下一次写类似功能时先翻一遍这个文件很多坑就不需要再踩第二遍了。这个习惯很小但长期积累下来你的skill质量和迭代速度会远超那些只会从零开始写的新手。