Skill 到底是什么:用 tech-visual-style-kit 拆解 Discovery / Activation / Execution
摘要:Skill 机制解析 Skill 是一种可被发现、按需加载、带资产与脚本的能力包,通常以文件夹形式存在。其核心流程分为三个阶段: Discovery:客户端仅发送各Skill的简短metadata给模型,告知可用能力而不占用过多token Activation:模型根据问题选择合适Skill后,客户端加载完整SKILL.md内容 Execution:模型在约束下执行脚本、读取文件,生成可直接
Skill 到底是什么:用 tech-visual-style-kit 拆解 Discovery / Activation / Execution
最近两年,新 AI 名词的数量比我老板给我画的饼还要多:从提示词工程到智能体、MCP、A2A,再到 A2UI……而最近又来到了大 Skill 时代。
今天不讲高大上的定义,我只用一个你能复用的例子,把 Skill 讲清楚:用我上文创建的 tech-visual-style-kit,把一篇技术博客自动变成“B 站科技博主风”的横版海报页(HTML)。
摘要(先看结论)
- Skill 本质是“可被发现、可按需加载、可带资产与脚本”的能力包,最常见的载体就是一个文件夹。
- Discovery 只把每个 Skill 的简短介绍发给模型,让模型知道“有哪些能力可用”,但不把全文都塞进上下文。
- Activation 由模型根据问题选择 Skill,并要求客户端把对应
SKILL.md的完整内容补充进来。 - Execution 让 Skill 从“提示词管理”升级为“可交付的自动化”:模型可以在约束下读文件、跑脚本、生成产物。
0)从“提示词越攒越多”说起
我最早用 AI 的方式很朴素:我写一段提示词,让它按我想要的格式输出。
比如我想做一套“科技风海报”,我会反复强调:
- 画布 16:9 横版;
- 深色高对比;
- 标题/标签/大数字/进度条这些组件要固定风格;
- 输出是能直接打开的 HTML。
一开始我把这些要求写进提示词里,每次用就复制粘贴。但很快就会遇到三个现实问题:
- 提示词越攒越多,自己都忘了写过哪一版。
- 每次把所有提示词都塞给模型,会浪费大量 token。
- 无关提示词太多,会干扰模型理解当前问题。
Skill 机制解决的,就是“别全塞给模型,但又能让它自己挑到该用的那一份”。
1)Skill 的最小定义:一个可复用的能力包
在 Trae 这类工具里,一个 Skill 通常就是一个文件夹,里面至少有一个 SKILL.md,还可以带资源与脚本:
.trae/skills/tech-visual-style-kit/
SKILL.md
assets/
references/
scripts/
你可以把它理解为三件事的组合:
- 提示词:告诉模型“要做什么、怎么做、有哪些约束”。
- 资产:模板、图标、规范文档等(让输出更稳定,不靠模型胡猜)。
- 可执行能力:脚本/工具链(让模型不止会写字,还能产出可用文件)。
1.1)一个 Skill 文件夹里通常有什么?
上面这个目录结构不是“科技风海报”专属,它就是 Skill 变得可复用、可维护的关键:把不同类型的东西分开装,按需加载、按需执行。
以 tech-visual-style-kit 为例,这些子目录各自负责一类东西:
SKILL.md:核心入口文件- 开头是 metadata(例如
name/description),用于 Discovery 阶段做“能力清单”。 - 后面是完整的工作流与约束:告诉模型何时用、怎么用、输出什么,以及“可执行能力”有哪些(比如哪些脚本可跑、输入输出在哪)。
- 开头是 metadata(例如
references/:长文本参考材料- 放“规范/约束/说明书”这类更稳定、可复用、但不必每次都塞进上下文的内容。
- 典型用途:把容易膨胀的说明拆出去,让
SKILL.md保持更清晰的主流程,然后在需要时再按文件名加载。
assets/:静态素材与模板- 放不需要执行、但需要被复用的资源,例如 HTML 模板、SVG 图标、样式片段等。
- 这类东西的价值是“固定结构与表现”,让产出更稳定,减少模型自由发挥导致的漂移。
scripts/:可执行脚本- 放能够被宿主环境调用的程序(例如 Python 脚本),用于把输入变成可交付的文件产物。
- 这是 Skill 升级成 Execution 的关键:模型不是只“建议你怎么做”,而是可以在边界内让宿主去执行它能执行的步骤。
你也可以把它总结成一句话:SKILL.md 管“说明书与总控”,references/ 管“长文档”,assets/ 管“固定素材”,scripts/ 管“可运行工具”。
2)Discovery:只发“简短介绍”,不发全文
Discovery 的目标是:让模型知道“当前环境里有哪些 Skill 可以用”,但不把每个 Skill 的全文都塞进上下文。
这里的 Discovery 更像是一个工程阶段的叫法,而不是“某个大模型内置的标准术语”:
- 术语来源:它来自插件/工具体系里常见的“能力发现”思路(让系统先拿到可用能力目录,再决定用哪个)。在 Trae/Claude 这类带 Skill/Tool 生态的产品里,经常用 Discovery 这个词来描述“把可用能力清单注入给模型”的过程;在别的框架/产品里,它也可能被叫作 tool listing、capability catalog、tool registry、capability injection。
- 是否通用:概念是通用的(先给能力目录,再按需加载),但词不一定通用。大模型本身并不会自动“发现”你机器上有什么能力,发现这一步通常发生在模型外部的宿主环境里。
- 谁来做:做 Discovery 的是客户端/服务端/IDE 这类“宿主侧”。它负责扫描可用的 Skills(例如读取本地目录),抽取每个 Skill 的 metadata(比如
SKILL.md里的name/description),然后把这些短描述拼进 system prompt 发给模型;模型收到后再基于用户问题做选择。
所以每个 Skill 都需要一个尽可能短的介绍(metadata)。在 tech-visual-style-kit 里,这个介绍就在 SKILL.md 的开头:
name: "tech-visual-style-kit"
description: "提供B站科技博主风格的视觉规范与可复用模板(HTML海报页、数据可视化组件、SVG图标)。当用户需要'科技风海报/数据可视化页面/深色科技UI/技术视频配图'时调用。"
客户端把所有 Skill 的这类 metadata 汇总起来,作为系统提示词的一部分发给模型。这样即使你有几十个 Skill,占用的 token 也可控。
3)Activation:模型先选中 Skill,再按需加载全文
有了 Discovery,模型就知道“环境里存在 tech-visual-style-kit 这种能力”。
当用户提出问题,比如:
- “把这篇技术博客做成 B 站科技风封面 + 内容页海报”
- “输出 6-12 页 16:9 横版 HTML,方便视频取帧”
模型会先做一件事:不急着直接输出 HTML,而是先触发 Activation,让客户端把 tech-visual-style-kit/SKILL.md 的完整内容补充进上下文。
Activation 解决的是“选哪个 Skill”的问题:模型用短描述做匹配,用全文拿到细节约束。
4)Execution:Skill 让模型从“会写”变成“能交付”
很多人把 Skill 只当成提示词管理工具,但真正的分水岭在 Execution:Skill 可以携带脚本,让模型把“生成内容”变成“生成文件产物”。
tech-visual-style-kit 自带了一个脚本,用来把 Markdown 博客生成成一组可直接打开的静态 HTML 页面:
python3 /Users/bytedance/Repo/github/WangZhengyi/.trae/skills/tech-visual-style-kit/scripts/generate_visuals.py \
--markdown /Users/bytedance/Repo/github/WangZhengyi/blog/ai/ai-agent-architecture-from-chat-to-action.md \
--output /Users/bytedance/Repo/github/WangZhengyi/.local/tech-visual/ai-agent-architecture-from-chat-to-action \
--preset agent-architecture
执行完成后,你拿到的不是“模型说它生成了海报”,而是一组真实文件,例如:
index.html(目录页)page-01-cover.html(封面)page-02-*.html(内容页)page-xx-ending.html(结尾)
这就是 Execution 的价值:把模型输出从“文本”升级成“可交付物”。
5)为什么 Skill 要用“文件夹”来组织?
如果 Skill 只有一段提示词,放在一个文本里也能凑合。但当你想要更稳定的产出,它就会不可避免地膨胀:
- 你需要模板(封面/内容/结尾三套)来固定结构;
- 你需要规范(配色/字体/组件)来固定风格;
- 你需要图标库与布局模式来固定表现力;
- 你还需要脚本把输入转换成一组输出文件。
把这些东西放进一个文件夹,Skill 才能从“提示词”变成“带资源、带工具链的能力包”,也才有了可复用性。
6)用 tech-visual-style-kit 复述一遍三段式流程
把上面的机制压缩成一条可复用的 mental model:
- Discovery:客户端把所有 Skill 的 metadata 发给模型,让模型知道“有哪些能力可用”。
- Activation:模型选中
tech-visual-style-kit,让客户端把完整SKILL.md补进来。 - Execution:模型按
SKILL.md的约束调用脚本,产出一组可打开的 HTML 海报页。
7)边界与常见坑
- metadata 不是越长越好:它只负责“让模型知道你能干什么”,细节留给 Activation 后的
SKILL.md。 - Skill 不是越多越强:Skill 越多,越需要保持命名清晰、描述聚焦,否则匹配会变差。
- Execution 不是“放开随便跑”:可执行能力越强,越需要把输入、输出、目录、允许的命令范围写清楚。
结语
如果你把 Skill 只当成“提示词收纳盒”,它最多解决的是“我别忘了那段提示词放哪了”。
但当 Skill 和 Execution 结合起来,它会变成一套可交付的自动化:模型不仅知道要怎么做海报,还能在边界内把海报真正生成出来。
更多推荐

所有评论(0)