如何写好一个 Skill
LINUX DO 社区里看到一篇关于 Skill 写作的深入分享,来自用户「woji_666」。文章很长,但核心骨架其实很清晰。
三句话就能概括全文:
- 结构服务于内容,不要为了结构而结构
- 激活优于存储,让 Agent 在需要时才读到对应的东西,而不是一次全塞进去
- 结构可复用,内容禁止预制
Skill 最初就是一个 Markdown 文件加几条行为准则,像 Karpathy 总结的编码反模式项目那样,67 行的 SKILL.md 就够用了。后来使用变复杂了,才裂变成文件夹式:SKILL.md 负责路由和入口,rules/ 放约束,workflows/ 放流程,references/ 放背景资料。
文章对「Agent 过度自信」这个问题的分析特别到位——不是模型笨,是缺少强制重读的钩子。同一个会话里,第一轮按规则走,第三轮就开始凭记忆写,规则全忘了。作者给出的解法是三层冗余:系统提示、Context 文件、底层默认行为各放一层,每一层都可能在上下文压缩时被丢弃,但最坏情况下至少还有兜底。
这个思路和我们在实践中遇到的情况很吻合。Skill 写得再好,命中不了就没有意义;命中了读不到正确内容也没有意义;读到了但不按规则执行也没有意义。这三个问题各自对应:Description、Context、Harness。
原文来自 LINUX DO 社区,作者 woji_666,感兴趣的可以直接去读完整版。