在大模型逐渐成为开发工具核心能力的今天,一个很现实的问题开始显现:
如何让 AI 在不同场景下稳定地表现出"专业能力"?
简单地堆 prompt 已经不够用了------它难维护、难复用、也无法扩展。
vercel-labs/skills GitHub repository 提供了一种思路:
通过"Skills(技能)"机制,把 AI 的能力进行模块化管理,实现类似插件系统的效果。
一、问题背景:Prompt 工程的瓶颈
在没有 Skills 之前,大多数 AI 应用是这样运作的:
- 所有能力写在一个 prompt 里
- 每个场景都需要单独设计 prompt
- prompt 越来越长,越来越不可控
- 模型表现严重依赖 prompt 写法
这带来几个典型问题:
1. ❌ 难复用
写好的 prompt 很难在其他场景复用
2. ❌ 难维护
修改一个能力,可能影响整个 prompt
3. ❌ 不可扩展
能力一多,prompt 会变得极其臃肿
二、Skills 的核心思想
Skills 的核心理念可以用一句话概括:
把 AI 的能力拆分成独立模块,在需要时动态加载
也就是说:
- 不再把所有能力写死在 prompt 中
- 而是把能力拆成多个"技能包"
- 根据用户问题,选择合适的技能注入给模型
三、Skills 的结构设计
一个 Skill,本质上是一个目录结构,通常包含以下内容:
1. 配置文件(skill.yaml)
用于描述这个技能"是什么"和"什么时候用"。
例如:
name: git-commit
description: Generate commit message from changes
它类似于"能力标签",用于匹配用户意图。
2. Prompt / Instructions
这是 Skill 的核心:
- system prompt
- 使用规则
- 示例(few-shot)
本质上就是:
👉 "教模型如何执行这个能力"
3. 可选执行逻辑
某些 Skill 还会包含:
- CLI 命令
- API 调用
- 自动化脚本
让能力不仅是"说",还能"做"。
四、Skills 的工作机制
整个流程可以分为四步:
Step 1:加载 Skills
系统启动时,会扫描多个来源:
- 本地目录
- npm 包
- 远程仓库
Step 2:匹配用户意图
当用户输入问题:
"帮我写一个 commit message"
系统会分析:
- 哪些 Skill 最相关?
- 是否匹配 git / commit / changelog 等能力
Step 3:动态注入 Prompt
选中的 Skill 会被拼接进最终 prompt:
系统提示 + Skill提示 + 用户输入
Step 4:模型生成结果
模型在增强后的上下文中进行回答,表现出对应能力。
五、本质理解:Skills 到底是什么?
很多人会把 Skills 和插件或 Function Calling 混淆,其实它更接近:
一种 Prompt 的模块化与路由机制
可以类比为:
| 概念 | 对应 |
|---|---|
| Skill | 能力模块 |
| Skill Loader | 插件加载器 |
| Skill Matching | 路由系统 |
| Prompt Injection | 执行机制 |
六、典型应用场景
Skills 非常适合以下场景:
1. 开发工具
- 自动生成 commit message
- 代码重构
- 单元测试生成
2. DevOps
- Dockerfile 生成
- Kubernetes YAML
- CI/CD 配置
3. 数据与分析
- SQL 生成
- 日志解析
- 报表分析
4. 企业内部系统(重点)
例如:
- API 调用关系分析
- 鉴权逻辑解释
- 服务依赖推理
七、优势与价值
相比传统 Prompt 工程,Skills 带来了几个关键提升:
✅ 1. 模块化
能力可以独立开发、测试和复用
✅ 2. 可扩展
可以不断新增 Skill,而不影响已有系统
✅ 3. 更稳定
避免超长 prompt 带来的不确定性
✅ 4. 更接近工程体系
从"写 prompt"升级为"设计能力系统"
八、当前局限
尽管设计很有价值,但 Skills 仍存在一些不足:
❌ 1. 匹配机制较简单
通常依赖关键词,缺乏语义理解
❌ 2. Skill 之间缺乏协作
没有真正的依赖管理或组合机制
❌ 3. 执行能力有限
大多数 Skill 仍停留在 prompt 层
九、演进方向(非常关键)
如果你在做二次开发(比如你现在的 rskills),可以重点考虑以下方向:
1. 引入向量匹配(Embedding)
- 用语义匹配替代关键词匹配
- 提升 Skill 选择准确率
2. 支持 Skill 依赖关系
depends_on:
-
auth-skill
-
user-skill
实现能力组合
3. 接入工具执行(Function / MCP)
让 Skill:
- 不只是"解释"
- 而是可以真正执行任务
4. 自动生成 Skill(高级玩法)
结合代码分析或知识图谱:
- 每个服务 → 一个 Skill
- 每个 API → 一个能力
- 自动构建 AI 能力体系
十、总结
Skills 的核心价值不在于"多一个功能",而在于它改变了 AI 应用的构建方式:
从"写 Prompt",走向"设计能力系统"
它让 AI:
- 可以被结构化管理
- 可以按需扩展
- 可以逐步工程化
如果说 Prompt 是"技巧",
那么 Skills 更像是:
👉 AI 能力工程的基础设施