What Is Skills?
从热潮到反思
2025 年底,Anthropic 提出了 Skills 这个新概念,AI 应用领域随即掀起了新一波开发浪潮。各家厂商纷纷宣传自己支持 Skills 的能力,开发者们也在积极尝试。
然而,在无脑跟风实践了一段时间后,我开始向自己提问:Skills 到底是什么?如果让我来定义 Skills,我会如何定义它?
Skills 的本质
核心问题:Token 效率
要理解 Skills,首先要理解它解决的核心问题——如何用最少的 Token 办最多的事。
在传统的 Prompt 工程中,我们往往需要在每次对话中携带大量的上下文信息、指令和示例。这不仅消耗大量 Token,还会导致:
- 响应速度下降
- 成本增加
- 上下文窗口被快速占满
解决方案:动态提示词构建
Skills 的本质是按照能力范围拆解提示词进行打包,对不同的 Skills 互相保留指针,然后实时按需导入,实现动态提示词构建。
这种按需导入的方式,让 Skills 成为一个可组合的模块,方便在不同的场景下灵活使用。
┌─────────────┐
│ 用户请求 │
└──────┬──────┘
▼
┌─────────────┐
│ 意图识别 │
└──────┬──────┘
▼
┌─────────────────────────────┐
│ Skills 索引表 │
│ ┌───┐ ┌───┐ ┌───┐ ┌───┐ │
│ │ A │ │ B │ │ C │ │ D │ │
│ └───┘ └───┘ └───┘ └───┘ │
└─────────────────────────────┘
▼ (按需加载 A, C)
┌─────────────────────────────┐
│ 动态构建的 Prompt │
│ [基础指令] + [Skill A] + │
│ [Skill C] + [用户输入] │
└─────────────────────────────┘
▼
┌─────────────┐
│ LLM 执行 │
└─────────────┘
绘制指导:
- 类型:流程图
- 工具推荐:draw.io / Excalidraw / Mermaid
- 要点:突出"按需加载"的动态特性
软件工程的既视感
Skills 的出现,让 Prompt Engineering 成为一件和传统软件工程一样可以"搭积木"的事情。
这让我想起了最初学习编程时的场景:当代码量增长到一定程度,我们开始学习如何将代码拆分到多个源文件中,通过 import、include、require 等方式按需引入。
一些编程语言支持"调用时才导入"的特性(如 Python 的延迟导入),这与 Skills 的按需加载理念不谋而合。软件工程中积累的模块化、解耦、复用等理念,在 Skills 时代将更加发挥作用。
正如一个 Python 项目中可以混合前端代码、Shell 脚本一样,PE 作为一种新的"编程范式",同样可以与其他语言无缝协作,共同构建完整的应用。
传统软件工程 Skills 工程
┌────────────────────┐ ┌────────────────────┐
│ main.py │ │ Agent Prompt │
│ ┌──────────────┐ │ │ ┌──────────────┐ │
│ │ import utils │──┼──→ │ │ @code_review │──┼──→ code_review.skill
│ │ import db │──┼──→ │ │ @debugging │──┼──→ debugging.skill
│ │ import api │──┼──→ │ │ @refactor │──┼──→ refactor.skill
│ └──────────────┘ │ │ └──────────────┘ │
│ 业务逻辑... │ │ 基础指令... │
└────────────────────┘ └────────────────────┘
相同的模块化思想,不同的载体
绘制指导:
- 类型:对比图(左右并列)
- 工具推荐:draw.io / Figma
- 要点:强调两者的相似性,用箭头表示导入关系
Skills 生态的未来
既然 Skills 本质上是可复用的能力模块,那么自然会催生出 Skills 管理框架的需求。
想想我们熟悉的包管理工具:
- Python 的
pip/uv - JavaScript 的
npm/yarn - Rust 的
cargo
这些工具帮助我们发布和分享代码包、管理依赖关系、进行版本控制、避免重复造轮子。
也许某天,也许就是现在,Skills 管理框架正在应运而生。它将帮助我们管理不同的 Skills,避免重复开发,共享最佳实践,提高开发效率。
┌─────────────────────────────────────────┐
│ Skills Registry │
│ (类似 npm registry / PyPI) │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │skill│ │skill│ │skill│ │skill│ ... │
│ └─────┘ └─────┘ └─────┘ └─────┘ │
└───────────────────┬─────────────────────┘
│
┌───────────┼───────────┐
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ skills │ │ skills │ │ skills │
│ install │ │ update │ │ publish │
└───────────┘ └───────────┘ └───────────┘
│ │ │
└───────────┼───────────┘
▼
┌─────────────────────┐
│ Local Skills │
│ Management │
│ ┌───┐ ┌───┐ ┌───┐ │
│ │ A │ │ B │ │ C │ │
│ └───┘ └───┘ └───┘ │
└─────────────────────┘
│
▼
┌─────────────────────┐
│ Your AI Agent │
└─────────────────────┘
绘制指导:
- 类型:架构图
- 工具推荐:draw.io / Excalidraw
- 要点:展示从云端 Registry 到本地管理再到 Agent 的完整链路
总结
Skills 不是一个全新的概念,而是软件工程模块化思想在 AI 时代的延续和进化。它的核心价值在于:
- 效率:用最少的 Token 完成最多的任务
- 复用:将能力封装成可复用的模块
- 协作:让 PE 工程可以像软件开发一样分工协作
当我们理解了 Skills 的本质,就能更好地设计、开发和管理我们的 AI 应用。