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 阶段做“能力清单”。
    • 后面是完整的工作流与约束:告诉模型何时用、怎么用、输出什么,以及“可执行能力”有哪些(比如哪些脚本可跑、输入输出在哪)。
  • 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 结合起来,它会变成一套可交付的自动化:模型不仅知道要怎么做海报,还能在边界内把海报真正生成出来。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐