AI Skill 技术详解:从起源发展到实战编写指南
AI Skill 的起源与发展
从 2023 年到 2026 年,AI 大模型调用外部工具和执行任务的能力经历了四次关键跃迁,最终形成了今天广泛采用的 Agent Skills 开放标准。

- 2023 年 6 月:OpenAI 推出 Function Calling,首次让大模型能主动请求调用外部函数,奠定了工具调用的基础。
- 2024 年 11 月:Anthropic 发布 MCP(Model Context Protocol),将工具调用升级为标准化开放协议,统一了 AI 连接数据库、API 和本地文件的方式。
- 2025 年 10 月:Anthropic 正式提出 Agent Skills 概念,通过“SKILL.md + 文件夹”的形式将任务流程、专业知识和脚本工具打包成可复用的技能单元。
- 2025 年 12 月:Agent Skills 成为开放标准,GitHub Copilot 和 OpenAI Codex 相继支持,标志着该规范获得主流开发工具认可。
- 2026 年初:Cursor、GitHub 等平台深度整合 Skills 与 Hooks,AI 编码生态从单模型工具迈入多代理协同新阶段。

如今,Agent Skills 已成为绝大多数 AI Agent 开发框架和 IDE 兼容的扩展规范,官网 agentskills.io 提供完整的技术规格和使用指南。

什么是 AI Skill?

简单来说,Skill 是给 AI Agent 加装的专项能力模块。Agent 原生只具备对话能力,但通过加载不同的 Skill,就能获得专业功能:天气查询、文件管理、代码生成等。

一个 Skill 本质上是一个包含 SKILL.md 的文件夹,结构如下:

- SKILL.md(必备):存放技能元数据(名称、描述)和执行指令;
- scripts/(可选):可运行的工具脚本(Python、Bash 等);
- references/(可选):技术文档、API 手册、FAQ 等参考资料;
- assets/(可选):模板、配置文件、示例数据等静态资源。

这种设计把完整的工作流程、经验方案和工具脚本打包成一套可复用的能力包,既避免了将所有知识硬编码在提示词中,又保证了专业性和灵活性。

Skill 的文件结构详解

SKILL.md:技能的核心说明书

SKILL.md 是每个 Skill 必须包含的主文件,定义了技能的基本信息和执行逻辑。其字段包括:

- name(必填):技能名称,仅允许小写字母、数字和连字符,最长 64 字符;
- description(必填):功能与使用场景说明,最长 1024 字符,不能为空;
- license(可选):许可证名称或指向 LICENSE 文件的路径;
- compatibility(可选):环境依赖说明(如所需系统包、网络权限等);
- metadata(可选):自定义键值对,可用于记录作者、版本号等;
- allowed-tools(可选):允许调用的工具列表(实验性功能)。

其中,description 至关重要——它决定了 AI 在什么情况下会触发该技能。写得太模糊,该触发时不触发;写得太宽泛,不该触发时乱触发。例如:

好的描述:"从 PDF 文件中提取文本和表格、填充表单、合并文档。在处理 PDF 文件或用户提及 PDF、表单或文档提取时使用。"
差的描述:"帮助处理 PDF 文档"

scripts/:自动化脚本目录

当某些任务通过纯提示词难以稳定实现(如复杂计算、文件处理),Agent 可直接运行 scripts/ 中的脚本。这些脚本通常是 Python、Bash 或 Node.js 编写的可执行程序。

例如,官方 Word 处理技能中的 scripts/ 目录包含多个 Python 脚本,用于批注处理、文本合并、Office 格式转换等底层操作。

references/:专业参考资料

该目录存放领域知识文档,如 API 手册、技术标准、常见问题解答等。Agent 在需要时按需读取,既能保证专业性,又避免上下文膨胀。

assets/:静态资源库

assets/ 存放任务所需的“原材料”,如配置模板、JSON Schema、示例图像等。这些资源为 Agent 提供了执行任务的基础素材。

渐进式披露:Skill 的核心机制

在真实业务场景中,一个 Agent 往往配备数十甚至上百个技能。如果一次性将所有技能的完整内容加载到上下文中,会导致:

- Token 成本爆炸:每次对话消耗数万 Token;
- 注意力分散:AI 被大量无关规则干扰,输出质量下降。

为解决这一问题,Agent Skills 采用了 渐进式披露(Progressive Disclosure) 机制,分三层按需加载:

第一层:元数据(Metadata)

Agent 启动时仅扫描所有 SKILL.md 的头部元数据(name、description 等),构建轻量级“技能索引表”。即使有 50 个技能,也仅消耗约 5000 Token。

第二层:指令(Instructions)

当用户提出具体任务时,Agent 根据意图匹配技能索引,仅加载命中技能的完整 SKILL.md 内容(约 1000–5000 Token)。

第三层:脚本与参考(Scripts & References)

执行过程中,Agent 仅在真正需要时才加载 scripts/ 和 references/ 中的资源,真正做到“用多少拿多少”。

对比传统 MCP 方案

- 传统 MCP:启动时一次性加载所有技能的完整内容,50 个技能需 155,000 Token,成本高且易混乱;
- Skill 三层架构:全程仅用约 10,000 Token,节省 90% 以上成本,且避免无关信息干扰。

Skill 的编写原则

1. 只写 AI 不知道的东西

想象你在向经验丰富的同事交接工作:不需要教他 Excel 基础操作,但要告诉他“老板只看柱状图不看饼图”这类私有规则。每写一句都问自己:“AI 会知道这个吗?” 如果会,就删掉。

2. 保持简洁,控制上下文占用

SKILL.md 应尽量简短,核心规则放主文件,参考资料单独存放。好的示例:

# 提取 PDF 文本
使用 pdfplumber 进行文本提取:
```python
import pdfplumber
with pdfplumber.open("file.pdf") as pdf:
text = pdf.pages[0].extract_text()

坏的示例则包含大量冗余解释,浪费 Token。

### 3. 复杂流程加入验证环节

对于多步骤任务,在关键节点设置检查点。例如:“做完这步先检查 XX 是否正确,确认没问题再继续下一步”,避免错误累积到后期才暴露。

### 4. 使用指定步骤或工作流

对于研究类任务,可提供结构化清单:

```markdown
## 研究综合工作流
复制此清单并跟踪进度:
```research-progress
- [ ] 步骤 1:阅读所有源文档
- [ ] 步骤 2:识别关键主题
- [ ] 步骤 3:交叉参考声明
- [ ] 步骤 4:创建结构化摘要
- [ ] 步骤 5:验证引用

### 5. 先跑起来,再迭代优化

Skill 很难一次完美,建议先做最小可行版本,根据实际使用反馈逐步打磨。

## Skill 与其他技术的对比

### Skill vs 传统提示词

| 维度 | 传统提示词 | Skill 机制 |
|------|----------|-----------|
| 核心逻辑 | 临时口头吩咐,每次需重新“教育”AI | 封装好的“岗位说明书+SOP”,AI 自动按章办事 |
| 加载方式 | 全量强塞,持续占用上下文 | 渐进式披露,未触发时仅占 ~50 Token |
| 输出稳定性 | 抽卡模式,结果波动大 | 工业化模式,质量稳定如一 |
| 工程化管理 | 几乎为零,无法版本控制 | 支持 Git 全链路追踪,可协作、可回滚 |
一句话总结:Prompt 是临时吩咐,Skill 是可维护、可复用的标准化工作手册。
### Skill vs MCP
| 维度 | MCP | Skill |
|------|-----|-------|
| 核心定义 | 开放通信协议(类似 USB-C 接口) | 封装好的能力包(含 Prompt、脚本、知识库) |
| 交互方式 | 动态双向调用远程工具 | 静态/半静态注入本地上下文 |
| 开发复杂度 | 高(需实现 JSON-RPC 服务端) | 低(只需写 Markdown 和整理文件夹) |
| 典型用途 | 获取实时天气、操作 GitHub、执行系统命令 | 代码规范审查、财报分析、邮件模板生成 |
简言之:**MCP 用来外接外部系统,Skill 用来沉淀内部固定工作 SOP**,二者可搭配使用。
## 实战:用 OpenCode 创建文档转换技能
### 安装 OpenCode
OpenCode 是一款开源的 AI 编程智能体,支持终端和 GUI 模式。从官网 [opencode.ai](https://opencode.ai/) 下载安装后,即可在聊天界面中直接执行开发任务。
### 安装 skill-creator
首先创建全局技能目录:
```bash
mkdir -p ~/.agents/skills然后安装 Anthropic 官方技能库:
npx skills add https://github.com/anthropics/skills --all重启 OpenCode 后,输入 / 即可看到已加载的技能列表。
创建 doc-to-markdown 技能
使用 skill-creator 指令:
/skill-creator 创建一个名为 `doc-to-markdown` 的技能,技能描述使用中文。技能功能:
- 接收用户上传的 .docx 或 .pdf 文件,或通过 URL 提供文档。
- 使用 Python 库 `markitdown`(微软开源)将文档转换为 Markdown 格式。
- 输出一个同名的 .md 文件(或由用户指定文件名)。
实现要求:
- 依赖:Python 3.7+,以及 `markitdown[all]` 包。
- 封装为一个简单的 Python 脚本,提供命令行调用:`python convert.py <输入文件> [输出文件]`。OpenCode 会自动生成完整的技能文件夹,包含 SKILL.md、scripts/convert.py 等。
测试技能
在聊天中输入:
把这个 Word 文件 E:\code\lessonprj\skillcreate\Tencent WorkBuddy 简介.docx 转换为 mdAgent 会自动调用 doc-to-markdown 技能,执行转换脚本,并返回生成的 Markdown 文件内容。
技能社区与资源
目前已有多个平台提供 Skill 分享和下载:
- Anthropic 官方仓库:github.com/anthropics/skills
- ModelScope 技能中心:modelscope.cn/skills
- Awesome Agent Skills 合集:github.com/voltagent/awesome-agent-skills
- Agent Skills Marketplace:skillsmp.com
- ClawHub(龙虾系列技能库):clawhub.ai/skills
这些社区为开发者提供了丰富的参考案例和即用型技能,大幅降低 Skill 开发门槛。
总结
AI Skill 技术通过标准化的文件结构和渐进式披露机制,解决了 Agent 能力扩展中的三大痛点:上下文膨胀、输出不稳定、工程化困难。它不仅是提示词工程的升级,更是 AI 应用走向工业化、可维护化的关键一步。随着多代理生态的成熟,Skill 将成为连接人类专业知识与 AI 执行力的核心桥梁。