Prompt与Skill的本质区别:模型输入 vs 工程化能力封装
Skill 不是 Prompt 的升级版,也不是 Prompt 的替代品。
最近,当你在探索 AI Agent 或 AI 编程工具时,可能经常遇到一个关键词——Skill。例如:Claude 引入了 Skill,Kiro 也支持 Skill,很多 Agent 框架也开始强调 Skill。这自然会让很多人产生困惑:Prompt 和 Skill 到底有什么区别?
网上大部分文章都会告诉你:Prompt 是一句话,Skill 是很多 Prompt。或者:Skill = Prompt + Workflow + Tool。这些说法不能算错,但都没有说到本质。真正的问题其实是:Prompt 和 Skill,本来就不是同一个层级的概念。
我们先不要谈 Prompt。
假设我要开发一个功能:上传一个 PDF,AI 自动生成摘要。从用户眼里,它是这样的:
上传 PDF → AI 总结 → 得到结果
但真正的执行过程可能更像这样:
读取 PDF → 提取文本 → 构造 Prompt → 发送给大语言模型(LLM)→ 整理输出 → 生成 Markdown
请注意。真正发送给大语言模型的,其实只有中间那一步:构造 Prompt。而整个“PDF 自动总结”这项能力,很多平台会把它封装成一个:PDF Summary Skill。这里其实已经能看出两者的区别:Prompt 负责和模型交流,Skill 负责完成一项任务。它们关注的问题完全不同。
Prompt 的本质是什么?
Prompt 常被译作“提示词”,但我一直觉得这个翻译并不准确,因为 Prompt 并不仅仅是一句提示。从模型的角度看,Prompt 就是最终发送给大语言模型的输入。
例如: 请阅读下面的文章,要求:提炼核心观点、不超过200字、使用 Markdown 输出。这就是 Prompt。
它的职责只有一个:告诉模型,这一次应该如何思考、如何回答。Prompt 直接面对的是大语言模型(LLM)。模型并不知道你的项目叫什么,也不知道你的业务逻辑是什么,它只会根据收到的 Prompt 来生成下一段文本。换句话说:Prompt 是模型能够理解的语言。
Skill 的本质是什么?
相比之下,Skill 就没有一个统一的官方定义了。不同平台对 Skill 的实现方式都不一样。有的 Skill 很简单,只包含一个 Prompt;有的 Skill 会包含:Prompt、示例(Examples)、配置(Config)、输入输出规范(Schema)、工具(Tool)、文档(README),甚至有的平台还会加入 Workflow、权限控制等内容。
虽然实现方式不同,但它们都有一个共同特点:Skill 的目标不是和模型交流,而是把一项能力组织起来,方便开发者重复使用。如果继续用刚才的例子,一个 PDF Summary Skill 可能长这样:
PDF Summary
├── prompt.md
├── examples/
├── schema.json
├── config.yaml
└── README.md
以后,无论哪个项目需要“总结 PDF”,都可以直接复用这个 Skill。你不需要重新写 Prompt,也不需要重新组织输入输出。所以:Skill 更像一个能力包(Capability Package),它服务的是开发者,而不是模型。
Prompt 和 Skill,最大的区别到底是什么?
很多文章会从组成上比较:Prompt 包含什么,Skill 包含什么。但我认为,这不是最关键的区别。真正的区别在于:它们服务的对象不同。
Prompt 服务的是模型(LLM);Skill 服务的是开发者。Prompt 的目标是让模型理解当前这一次任务,而 Skill 的目标是让开发者能够复用这一类任务。一个关注的是“这一次怎么做?”,另一个关注的是“以后怎么反复做?”。这是两个完全不同的问题。
为什么很多人会觉得 Skill 更高级?
因为大家看到的 Skill,通常都会包含很多东西。例如:
Skill
├── Prompt
├── Tool
├── Example
├── Config
└── Schema
于是就会觉得:Prompt 很简单,Skill 很复杂。但这里有一个容易忽略的事实:复杂,不代表层级更高。Skill 之所以看起来复杂,是因为它需要管理一项完整的能力,而 Prompt 只需要负责和模型沟通。两者承担的职责本来就不同。就像一个函数负责完成一次计算,一个类负责组织多个函数——它们不是谁替代谁,而是解决不同层面的问题。
Skill 最终会不会还是变成 Prompt?
答案是:会。这一点非常重要。因为大语言模型并不认识 Skill。模型真正接收到的,永远只有 Prompt。Skill 无论设计得多复杂,最终都会经过框架处理,整理成模型能够理解的 Prompt,再发送给大语言模型。
也就是说:Skill → 框架处理 → Prompt → LLM
从模型的视角来看,Skill 根本不存在,它只看见 Prompt。所以,Skill 是工程抽象,Prompt 是模型输入。这是两个不同层次的概念。
为什么越来越多的平台开始引入 Skill?
随着 AI 应用越来越复杂,一个 Prompt 往往已经不能解决所有问题。开发者开始需要:复用 Prompt、管理版本、保存示例、配置参数、编写文档、团队协作。于是,一个新的抽象自然出现了。它把完成某项任务需要的资源组织在一起。这个抽象,在很多平台里被称为:Skill。
因此,Skill 的出现,本质上不是因为模型发生了变化,而是因为:AI 应用越来越工程化,开发者需要一种更好的方式来组织和复用 AI 能力。
总结
如果只能记住一句话,我希望是下面这句:
Prompt 是模型执行任务时需要的输入。
Skill 是开发者为了复用一项能力,对 Prompt 及相关资源进行的一层工程化封装。
Prompt 解决的是:模型如何理解这一次任务。
Skill 解决的是:开发者如何持续管理这一类任务。
它们不是竞争关系,也不是升级关系。Prompt 不会因为 Skill 的出现而消失。恰恰相反,几乎所有 Skill 的核心,最终仍然是 Prompt。