什么是Skills技能?把它一层一层剥开看看长啥样

什么是Skills技能?把它一层一层剥开看看长啥样

什么是Skills技能?把它一层一层剥开看看长啥样 什么是Skills技能?把它一层一层剥开看看长啥样 Modified January 20 再说 reference.md。 这里放那些详细的参考资料。比如完整的 API 文档、代码规范的细节、边缘情况的处理方式。 这些 内容如果都塞进 SKILL.md,每次激活都会占用大量 token。分离出来之后,AI 只在需要深入了解的时候才会去读。 然后是 examples.md。 这里放具体的示例。 与其用文字描述"组件应该长什么样",不如直接放一个写好的组件让 AI 参考。AI 看一眼就知道格式该是什么样,比文字描述有效得多。 最后是 scripts 目录。 这里放可执行的脚本。 有些事情你教 AI 十遍它也可能出错,比如"检查代码格式是否符合规范"。与其用文字描述规则让它判断,不如写一个脚本直接执行检查。 AI 运行脚本,只看输出结果。逻辑是固定的,不会出现理解偏差。 而且执行脚本不需要读源码,零 token 成本。 了解了四个部分,现在说最重要的问题:它们是怎么配合的? 答案很简单: 都要在 SKILL.md 里面说明。 AI 不会自动发现那些文件。 你放了 reference.md、examples.md,如果 SKILL.md 里没提到它们,AI 根本不知道有这些东西存在。它们就只是静静地躺在目录里,永远不会被用到。 配合的方式是这样的: 你在 SKILL.md 的正文里写"详细的命名规范见 reference.md"。AI 执行任务时看到这句话,如果它觉得需要了解命名规范,就会主动去读那个文件。 你写"组件示例见 examples.md"。AI 需要参考的时候,就会去读那个示例。 你写"完成后运行 scripts/validate.sh 检查代码"。AI 做完任务后,就会执行那个脚本。 但如果你什么都不写,这些文件永远不会被用到。 这里有个重要的细节: 引用最好保持一层深度。 什么意思?就是 SKILL.md 直接链接到 reference.md,这样没问题。但如果 reference.md 里又链接到另一个文件,那个文件里又链接到下一个文件,这种层层嵌套的引用方式,AI 可能会读不完整。 所以保持简单:SKILL.md 作为中心,直接指向其他所有资源,不要套娃。 整个加载过程是分层的。 第一层是发现。 AI 启动时会扫描所有 Skill,但只读取每个 SKILL.md 的头部元数据,也就是名称和描述。 这样它知道有哪些技能可用,但不会占用太多上下文。 第二层是激活。 当用户的请求和某个技能的描述匹配时,AI 才会加载这个 SKILL.md 的完整内容。 这时候它拿到了具体指令,知道该怎么做,也知道有哪些资源可以用。 第三层是按需读取。执行过程中,AI 看到 SKILL.md 里提到的那些引用,会根据需要决定是否去读取。 需要看规范就读 reference.md,需要看示例就读 examples.md,需要验证就执行 scripts 里的脚本。 不需要的文件,始终不会被读取。 这就是渐进式加载。省 token,也让 AI 更专注。 写 Skill 不是在"教 AI 所有事情"。 而是在搭一个按需取用的知识架构。 SKILL.md 是入口和导航,控制在 500 行以内,告诉 AI 怎么做,也告诉它资源在哪。 reference.md 是深度资料库,放详细文档。 examples.md 是可以抄的作业,放具体示例。 scripts 是确定性的执行力,放可运行的脚本。 记住两个核心原则: 第一,这些文件不会自动生效,都要在 SKILL.md 里引用才行。 第二,引用保持一层深度,不要套娃。 AI 足够聪明,知道什么时候需要什么。 你要做的,是把东西放对位置,然后告诉它去哪找。 再说 reference.md。 这里放那些详细的参考资料。比如完整的 API 文档、代码规范的细节、边缘情况的处理方式。 这些 内容如果都塞进 SKILL.md,每次激活都会占用大量 token。分离出来之后,AI 只在需要深入了解的时候才会去读。 然后是 examples.md。 这里放具体的示例。 与其用文字描述"组件应该长什么样",不如直接放一个写好的组件让 AI 参考。AI 看一眼就知道格式该是什么样,比文字描述有效得多。 最后是 scripts 目录。 这里放可执行的脚本。 有些事情你教 AI 十遍它也可能出错,比如"检查代码格式是否符合规范"。与其用文字描述规则让它判断,不如写一个脚本直接执行检查。 AI 运行脚本,只看输出结果。逻辑是固定的,不会出现理解偏差。 而且执行脚本不需要读源码,零 token 成本。 了解了四个部分,现在说最重要的问题:它们是怎么配合的? 答案很简单: 都要在 SKILL.md 里面说明。 AI 不会自动发现那些文件。 你放了 reference.md、examples.md,如果 SKILL.md 里没提到它们,AI 根本不知道有这些东西存在。它们就只是静静地躺在目录里,永远不会被用到。 配合的方式是这样的: 你在 SKILL.md 的正文里写"详细的命名规范见 reference.md"。AI 执行任务时看到这句话,如果它觉得需要了解命名规范,就会主动去读那个文件。 你写"组件示例见 examples.md"。AI 需要参考的时候,就会去读那个示例。 你写"完成后运行 scripts/validate.sh 检查代码"。AI 做完任务后,就会执行那个脚本。 但如果你什么都不写,这些文件永远不会被用到。 这里有个重要的细节: 引用最好保持一层深度。 什么意思?就是 SKILL.md 直接链接到 reference.md,这样没问题。但如果 reference.md 里又链接到另一个文件,那个文件里又链接到下一个文件,这种层层嵌套的引用方式,AI 可能会读不完整。 所以保持简单:SKILL.md 作为中心,直接指向其他所有资源,不要套娃。 整个加载过程是分层的。 第一层是发现。 AI 启动时会扫描所有 Skill,但只读取每个 SKILL.md 的头部元数据,也就是名称和描述。 这样它知道有哪些技能可用,但不会占用太多上下文。 第二层是激活。 当用户的请求和某个技能的描述匹配时,AI 才会加载这个 SKILL.md 的完整内容。 这时候它拿到了具体指令,知道该怎么做,也知道有哪些资源可以用。 第三层是按需读取。执行过程中,AI 看到 SKILL.md 里提到的那些引用,会根据需要决定是否去读取。 需要看规范就读 reference.md,需要看示例就读 examples.md,需要验证就执行 scripts 里的脚本。 不需要的文件,始终不会被读取。 这就是渐进式加载。省 token,也让 AI 更专注。 写 Skill 不是在"教 AI 所有事情"。 而是在搭一个按需取用的知识架构。 SKILL.md 是入口和导航,控制在 500 行以内,告诉 AI 怎么做,也告诉它资源在哪。 reference.md 是深度资料库,放详细文档。 examples.md 是可以抄的作业,放具体示例。 scripts 是确定性的执行力,放可运行的脚本。 记住两个核心原则: 第一,这些文件不会自动生效,都要在 SKILL.md 里引用才行。 第二,引用保持一层深度,不要套娃。 AI 足够聪明,知道什么时候需要什么。 你要做的,是把东西放对位置,然后告诉它去哪找。 🔗 原文链接: https://mp.weixin.qq.com/s/8iCkn J4... https://mp.weixin.qq.com/s/8iCkn J4... 原创 CY CHENYUE CY CHENYUE AI街溜子2026年1月19日 23:55 广东 Skills 是什么? 简单说是 一份"教 AI 怎么做事"的说明书。 就是你可以把某个领域的专业知识打包成一个"技能包",让 AI 在合适的时候自动调用。 比如你团队有一套代码规范,以前每次都要在对话里重复提醒。现在你可以把这些规范写成一个 Skill,AI 会在需要的时候自动加载。 在我开始了解到skill时候, 觉得这个真不错。于是动手写第一个skill。结果不出意外的出意外了。 我把能想到的全塞进了一个文件。然后我试着用了一下。响应慢得像在拨号上网。更离谱的是,它经常"选择性失忆",明明写了的规则,它就是不遵守。 后来发现一个关键的设计理念: 渐进式加载 。让AI在需要的时候才去读。 每次激活都被完整塞进上下文,消耗了不少token,反而把模型给整迷糊了。这就像你问朋友"附近有什么好吃的",他甩给你一本《米其林全球指南》。 所以我们有必要了解一些一个skill的结构和相关的设计 一个 Skill 应该拆成四个部分: SKILL.md 是入口文件,必需的。 reference.md 放参考文档,按需读取。 examples.md 放示例文件,按需读取。 scripts 目录放可执行脚本,只需要结果。 先说 SKILL.md。 这是唯一必需的文件,也是整个技能的大脑。 它由两部分组成。 头部是元数据,用特定格式标记技能的名称和描述。 正文是具体指令,告诉 AI 拿到这个任务后该怎么一步步执行。 名称是技能的唯一标识。 描述是最关键的部分,AI 通过这段话来判断什么时候该激活这个技能。写得越具体越好,要说清楚这个技能能做什么、什么场景下该用。 建议 SKILL.md 控制在 500 行以内。超过这个长度,就应该把详细内容拆分到其他文件里。

在 小宇宙note 阅读完整内容