〇、大纲
这篇文章做为 Skill 的个人实践记录,有几个目的:一、记录自己学习的过程;二、记录自己的关键思考。文章侧重在个人理解,基本的信息网上汗牛充栋,不做为重点。主要包括:Skill 是什么及构成元素、如何构建 Skill、Skill 是如何运行的(尤其是和 Agent、MCP、tools 等交互),最后讲解一下 Skill 的时间线,这对我们深刻的理解 Skill 有很大的帮助。
一、Skill 是什么
当听到 Skill 这个名词的时候,我的脑海第一个反应是,大模型真是一天一个概念。第二个问题就是什么是 Skill?「理解并记忆一个概念最好的方式是联想」,Skill 像一个工厂的流水线,按照已经定义好的步骤,就可以生产出定制化的产品出来。简单来说,Skill = 自定义流水线 + 基础工具(这个表述并不贴切)。「在理解一个事物时,可以使用公式表述,会简洁并抓住关键信息」
二、Skill 的构成
Skill 的基本结构:一个文件夹 + 一个 SKILL.md 文件。如此简单,是的。形如:
my-skill(自定义名字)/└── SKILL.md # 必需:指令 + 元数据├── scripts/ # 可选:可执行代码├── references/ # 可选:文档资料└── assets/ # 可选:模板、资源
参考自:Skills 教程(runoob):www.runoob.com/ai-agent/sk…
拉进镜头,进一步查看 SKILL.md。有 YAML 信息,包括了 name、description、trigger_keywords。其中这些关键信息是为了让大模型理解当前 Skill 是做什么用的,以便于决策在什么时候需要调用这个 Skill。这就很像互联网时代的 meta 信息以及 SEO,便于搜索引擎快速的路由和检索到,由此可见万事万物都是相通的。
为什么这么涉及呢?因为大模型的上下文限制,Skill 只会加载 YAML 头信息,当大模型开始使用 Skill 时才会加载更详细信息的,这里还有所谓的概念:渐进式披露。所以,Skill 就像一本书的目录,通过目录就知道对应章节的主要信息,如果需要查看更详细的,则可以按图索骥,通过目录快速定位到对应章节,进行阅读。
meta和trigger_keywords还是有很大的区别的。
1、meta是是不知道关键词的语义的,采用的精确匹配,命中关键词,所以在meta中一般提供相似的语义,比如:机票、飞机票、航空票、买机票2、trigger_keywords则有所不同,由于大模型是有自然语言的理解能力的,通过场景的语义重心触发的。需要提供不同语义,比如:订机票、退机票、改签、升舱、查航班动态
三、如何构建 Skill
「纸上得来终觉浅,绝知此事要躬行。翻了几百篇文章,不如自己实践一把来的深刻」,说干就干,现在适配 Skill 的大模型很多,选一个试一下。这里就不赘述过程了,概要几个关键步骤:
首先,要自己想一个要做的小工具,不用过于复杂,可以从惯例的工作中提取出来的一个,比如写周报工具
其次,直接用自然语言跟大模型的工具说创建一个周报工具(前提是加载了 claude 提供的 skill-creator)。ps:这里补充一个点,skill-creator 是创建 Skill 的 Skill,即元技能。这里有个很有意思的模型,把相同或相似功能的近一步抽象,就得到我们所说的元技能或者模版,这就是元概念。
ok,稍等片刻,恭喜,你现在已经创建了你的第一个 Skill。So easy 对不对!当然,你可以还处在迷糊中。没关系,你可以先看看周报 Skill 的效果,显然第一版不能让你满意,你可以把你想需要 skill 调整或添加的功能,用自然语言继续跟大模型交互。重复「构建-校验-迭代」思维模型这个过程。
如果这个周报的 Skill 已经满足了你的诉求,接下来我们继续重复创建 3~5 个 Skill,先不用了解其他的,先使用起来。
四、Skill 如何运行
好的,我假设你已经多次锤炼了你创建的 3~5 个 Skill 了,也许你像我一样,想知道这其中的过程以及与其他几个关键概念的关系:
1、Agent 是整个架构的大脑与指挥中心,Agent 的主要职责是接收高层任务目标,将其拆解为可执行的子任务,协调 SubAgent,几个 SubAgent 相互独立。
2、Skill 是一个专业的技能,带有了领域经验+通用的动手能力,一般是一个单一职责的。
3、MCP 服务器层是系统的外部连接关键,主要用于接入外部数据。
4、Tools 是基础的能力(如操作文件等)。
可以做个类比,Agent = 店长(指挥大脑),Sub Agent = 负责一个区域的厨师长,Skill = 食谱(完整流程),Tool = 厨具(原子动作),MCP = 食材(数据来源)。那技术视角来说,MCP / 外部接口:数据源、RPC、DB;Tool 就是底层的原子操作,比如连接 TCP 端口之类的,Skill 是业务编排层,使用 MCP 的数据、Tools 原子操作。
五、演进时间线
最后,我尝试从个人视角说下 Skill 的是怎么演进来的。
1、初级形态:对话,像 GPT、Deepseek 一样,用户输入一段提示词,大模型回复一段,以这种一来一往的聊天方式,叫 prompt
2、复用形态:经过多次聊天后,都要输入相同的背景信息。很是复杂,人又是一个极其懒惰的动物,于是这部分背景信息抽取出来,写到系统提示词中,后续每次使用是都带上,使用的简单了,这种方式叫 system_prompt
3、复用形态(指令版本),在复用形态中,有一群聪明而懒惰的程序员,觉得使用系统提示词后,还是需要发一段文字,也很麻烦,于是就简化成一个命令,通过发送一个命令的方式,再次简化,这叫 commands
4、多指令形态:一个指令解决不了问题,让 AI 自己调用,所以又衍生出多 SubAgents
5、MCP 形态:准备了一堆工具,写清楚干啥用,让 AI 生成参数调用,从此有了 MCP 标准
6、Skills 形态:有了 MCP 形态,每次发一堆工具废话,实际也不一定使用那么多,所以就有了 Skills