零 前言
一 Agent Skills 简介
Agent Skills 是一种轻量级、开放的格式,用于扩展 AI 代理能力,结合专业知识和工作流程。它是由 Anthropic 最初开发并作为开放标准发布的,现已被越来越多的代理产品采用。
介绍 Agent Skills,一种用于扩展 AI 代理能力的开放格式。核心包含元数据、指令、示例和工具。采用三层渐进式加载机制(索引层、指令层、执行层)平衡 Token 效率与信息完备性。对比了 Function Calling、MCP 与 Agent Skills 的差异,指出 Skills 在业务逻辑封装上的优势。通过 docx 技能示例展示了复杂工作流的设计原则,如厚工具薄指令。最后探讨了专业垂直 Agent 与通用 Agent+Skills 的选型建议及未来融合趋势,为构建企业级 AI 代理系统提供架构指导。
Agent Skills 是一种轻量级、开放的格式,用于扩展 AI 代理能力,结合专业知识和工作流程。它是由 Anthropic 最初开发并作为开放标准发布的,现已被越来越多的代理产品采用。
能力扩展
效率提升
生态系统优势
Agent Skills 已被领先的 AI 开发工具和平台支持,包括:Anthropic 的 Claude 系列模型、各种开源 AI 代理框架、商业 AI 助手产品。随着标准的不断完善和生态的持续发展,Agent Skills 正成为 AI 代理能力扩展的事实标准。
Agent Skills 是一种标准化的能力扩展格式,它通过结构化的文件组织和内容定义,使 AI 代理能够获得特定领域的专业知识和工作流程执行能力。一个标准的 Skill 必须包含以下核心要素,可以用一个公式来表示: Skill = Metadata + Instructions (SOP) + Examples + Tools
Metadata (元数据)
name:技能唯一标识符,建议使用 snake_case 格式,确保全局唯一性。description:技能功能的简明描述,是路由匹配的关键语义信息。version:版本控制,便于技能的迭代和兼容性管理。tags:可选的标签,用于更精细的分类和检索。Instructions (指令)
Examples (示例)
Tools (依赖)
技能的核心是一个包含文件的文件夹。该文件夹包含元数据、指令以及支持技能运行的各种资源。标准的技能文件结构如下:
my-skill/ # 技能根目录
├── SKILL.md # Required: 核心文件,包含元数据和指令
├── scripts/ # Optional: 可执行代码,如辅助脚本、工具函数
├── references/ # Optional: 参考资料,如 API 文档、技术规范
└── assets/ # Optional: 资源文件,如模板、配置文件、示例数据
SKILL.md 是承载业务逻辑的核心载体,是技能的'心脏'。它采用 Markdown + YAML Frontmatter 的混合格式,兼顾了结构化数据和自然语言表达的优势。
---
name: skill_name_id # [必填] 技能唯一标识符,建议使用 snake_case
description: A concise description of what this skill does. # [必填] 用于路由匹配的关键语义信息
version: 1.0.0 # [选填] 版本控制
tags:
- data-analysis
- report-generation
# [选填] 技能标签
---
# [技能名称]
## Usage (使用场景)
明确描述在什么情况下应该激活此技能。这有助于模型进行自我反思和意图确认。
例如:当用户需要生成数据分析报告、处理 Excel 文件或创建可视化图表时,激活此技能。
## Steps (执行步骤)
这是 Skill 的灵魂。使用自然语言编写的算法逻辑(SOP)。
1. **输入分析**:解析用户请求,确定需要分析的数据类型和目标。
2. **数据获取**:使用文件读取工具加载数据文件,或通过 API 获取数据。
3. **数据处理**:运行脚本对数据进行清洗、转换和分析。
4. **结果生成**:根据分析结果创建可视化图表和报告。
5. **输出呈现**:将生成的报告和图表返回给用户。
## Examples (示例)
### 示例 1:生成销售数据分析报告
User: 请帮我分析上个月的销售数据,生成一份详细报告。
Assistant: 我将使用数据分析技能来处理这个请求。首先需要获取销售数据文件。
System:[文件选择器工具返回销售数据 Excel 文件]
Assistant: 现在我将运行数据分析脚本处理这些数据。
System:[脚本执行完成,返回分析结果]
Assistant: 分析完成!以下是上个月的销售数据分析报告:
- 总销售额:XXX 万元
- 销售增长率:XX%
- 热销产品 TOP5:...
- 区域销售分布:...
### 示例 2:处理异常数据
User: 我的数据文件中有一些异常值,帮我处理一下。
Assistant: 我将使用数据分析技能来处理异常值问题。首先需要查看数据文件。
System:[文件读取工具返回数据文件内容]
Assistant: 发现数据中存在异常值,我将运行异常值处理脚本。
System:[脚本执行完成,返回处理后的数据]
Assistant: 异常值已处理完成。处理方法:使用 IQR 方法识别并移除异常值,同时保留原始数据备份。
## Considerations (注意事项)
- **数据安全**:处理敏感数据时,确保遵循相关隐私保护法规。
- **错误处理**:当数据格式不正确或分析失败时,提供清晰的错误信息和解决方案。
- **性能优化**:对于大型数据集,考虑使用增量分析或采样分析以提高速度。
- **结果解释**:确保分析结果的解释通俗易懂,避免使用过于专业的术语。
## Tools Required (所需工具)
- file_reader:读取本地数据文件
- code_interpreter:执行数据分析脚本
- visualization:生成数据可视化图表
- network_client:获取在线数据或 API 调用
为了在有限的 Token 预算内实现无限的能力扩展,Anthropic 提出了一套'渐进式披露'(Progressive Disclosure) 的加载机制。这是一种精密的上下文工程 (Context Engineering) 方案,旨在平衡 Token 效率与信息完备性。
| 属性 | 详情 |
|---|---|
| 触发时机 | System Init (系统初始化时) |
| 加载内容 | Skill 元数据 (Metadata: name, description, tags) |
| 存储位置 | 常驻 System Prompt (系统提示词) |
| 核心作用 | 建立'能力目录',让 Agent 知道'能做什么'但不知道'怎么做' |
| Token 消耗 | 极低(每个 Skill 约 20-50 Tokens) |
| 实现方式 | 将所有技能的元数据压缩为简洁的索引条目,注入系统提示词 |
| 属性 | 详情 |
|---|---|
| 触发时机 | On Demand (路由系统命中时) |
| 加载内容 | SKILL.md 完整正文(SOP + Examples + Considerations) |
| 存储位置 | 动态注入 Current Context (当前上下文) |
| 核心作用 | JIT (Just-In-Time) 知识注入,让 Agent 真正'学会'业务逻辑 |
| Token 消耗 | 按需加载,仅在需要时占用 Token |
| 实现方式 | 通过 Function Calling (如 read_file) 读取并注入完整技能内容 |
| 属性 | 详情 |
|---|---|
| 触发时机 | Execution (执行阶段) |
| 加载内容 | 原子工具调用参数、外部资源、脚本执行结果 |
| 存储位置 | 物理执行环境 |
| 核心作用 | 调用 API、运行脚本、查询数据库,获取最终结果 |
| Token 消耗 | 取决于具体调用,执行完成后释放 |
| 实现方式 | 通过 Agent 内置的工具接口执行具体操作 |
Token 效率最大化
能力扩展无边界
系统稳定性保障
挑战 1: 路由准确性
挑战 2: 上下文切换成本
挑战 3: 跨技能协作
| 维度 | Function Calling (函数调用) | MCP (模型上下文协议) | Agent Skills (智能体技能) |
|---|---|---|---|
| 核心定义 | 代码级接口,定义 AI 可调用的函数及其参数 | 通讯协议标准,规范 Agent 与外部系统的交互 | 业务逻辑封装 (SOP),将专业知识和工作流程标准化 |
| 开发语言 | JSON Schema + Python/Node.js | TypeScript/Python SDK | Markdown / 自然语言 |
| 实现难度 | 高 (需编写复杂的 Schema 定义和后端接手逻辑) | 中 (需搭建 Server 和配置 Client 连接) | 极低 (仅需编写文本文件) |
| 灵活性 | 僵化 (参数必须严格匹配) | 较强 (标准化连接) | 极强 (容错率高,大模型自动补全逻辑) |
| 适用人群 | 后端工程师 | 全栈工程师 | 所有人 (含非技术人员) |
| 主要价值 | 扩展 AI 代理的操作能力 | 实现 Agent 与外部系统的标准化集成 | 将专业知识和工作流程转化为可复用的技能 |
| 学习曲线 | 陡峭,需要编程和 API 设计知识 | 中等,需要了解网络协议和系统集成 | 平缓,只需了解业务逻辑和 Markdown 语法 |
| 维护成本 | 高,需要同步更新前端和后端 | 中,需要维护服务器和客户端 | 低,只需更新文本文件 |
Function Calling:底层的'零件'
MCP:连接的'管道'
Agent Skills:智能的'说明书'
| 层级 | 技术 | 作用 | 示例 |
|---|---|---|---|
| 应用层 | Agent Skills | 业务逻辑编排与专业知识注入 | 数据分析技能、法律审查技能 |
| 连接层 | MCP | 标准化系统集成与数据传输 | Agent 与企业 CRM 系统的连接 |
| 执行层 | Function Calling | 具体操作执行与工具调用 | 调用天气 API、执行 Python 脚本 |
| 基础设施层 | 底层工具与服务 | 提供基础能力支持 | 网络服务、计算资源、存储服务 |
选择 Function Calling 时机
选择 MCP 时机
选择 Agent Skills 时机
在实际应用中,最佳实践是将三者结合使用:使用 Function Calling 作为底层操作引,使用 MCP 作为系统集成桥梁,使用 Agent Skills 作为业务逻辑大脑。
本章节将通过详细分析 Anthropic 官方仓库中的 docx 技能案例,展示如何构建复杂的 Agent Skills,包括技能设计、文件结构、核心指令和技术亮点,帮助您掌握高级技能开发的实践技巧。
Anthropic 官方仓库中的 skills/docx 案例展示了如何让 Agent 操控 Word 文档的创建、读取、编辑和渲染。这不仅是一个功能演示,更是一个全栈开发的范例,展示了 Agent Skills 的强大潜力。
技能特点
| 维度 | 说明 |
|---|---|
| 技能目标 | 创建专业格式的 Word 文档(含表格、目录、页眉)、提取带修订模式的内容、将文档转换为 PDF/图片 |
| 多语言混合 | 同时使用了 Python(文件解包/打包)、Node.js(文档生成)、Bash(工具调用) |
| 外部依赖 | 集成了 Pandoc(文档转换)、LibreOffice(渲染)、docx-js(JS 库) |
| 状态管理 | 引入了'解压 → 编辑 XML → 重打包'的复杂工作流 |
| 技术深度 | 不仅调用工具,还指导 Agent 编写和执行代码来完成复杂任务 |
设计洞察:这里体现了复杂 Skill 的重要原则——'厚工具,薄指令'。为了避免在 System Prompt 中塞入冗长的 Python 代码,开发者将复杂的文件操作封装成独立的
.py脚本(原子工具),放在scripts/目录下。SKILL.md只需要告诉 Agent '运行unpack.py',而不需要解释'如何解压 ZIP 文件'。
skills/docx/ # 技能根目录
├── SKILL.md # 核心大脑:SOP 与知识库
└── scripts/ # 肢体动作:原子工具脚本库
└── office/
├── unpack.py # 工具:将 .docx 解压为 XML 目录
├── pack.py # 工具:将 XML 目录重打包为 .docx
└── soffice.py # 工具:调用 LibreOffice 转换 PDF
name: docx
description: Create, read, edit, and manipulate Word documents (.docx). Use when user mentions "Word doc","report", or needs professional formatting.
docx。文档中定义了两套截然不同的 SOP,分别对应**'创建'和'编辑'**模式,展示了技能设计的灵活性。
模式一:从零创建 (Creation Mode)
| 要素 | 详情 |
|---|---|
| 核心逻辑 | 编写并执行 Node.js 脚本,使用 docx 库生成文档 |
| 技术价值 | Agent 不再简单调用 create_doc(text),而是编写完整的 JavaScript 代码,利用 docx-js 库的强大能力进行排版编程 |
| 实现方式 | 提供代码模板,Agent 根据用户需求修改:使用 Document、Paragraph、Table 等类构建文档结构 |
| 优势 | 灵活性高,可实现复杂的文档格式和布局 |
模式二:手术刀式编辑 (Surgical Editing Mode)
| 步骤 | 操作 | 技术价值 |
|---|---|---|
| Step 1 | 运行 python scripts/office/unpack.py doc.docx output_dir 解压 XML | 将封闭的 .docx 转换为开放的文件夹结构 |
| Step 2 | 直接读取并修改 word/document.xml | **'外科手术'**般的编辑能力——直接修改底层 XML,实现 API 无法做到的精细修改(如保留修订痕迹、修改特定样式) |
| Step 3 | 运行 python scripts/office/pack.py output_dir new_doc.docx 重打包 | 还原为 .docx 格式 |
| 优势 | 精度高,可实现对现有文档的精细修改 |
SKILL.md 中包含了丰富的示例,展示了如何处理不同场景:
为了支撑上述复杂逻辑,docx 技能挂载了几个关键的**'硬原子'**工具:
| 工具 | 功能 | 使用场景 | 实现方式 |
|---|---|---|---|
| Pandoc | 文档格式转换 | 读取:pandoc -t markdown doc.docx 将 Word 转译为 Markdown,方便 Agent 理解 | 外部命令调用 |
| Unpack/Pack 脚本 | ZIP 解包/打包 | 状态转换:.docx ↔ XML 文件夹的互转 | Python 脚本封装 |
| LibreOffice (Headless) | 文档渲染 | 转换:后台启动无界面 LibreOffice,将 .docx 转为 PDF | Python 脚本调用 |
| Code Interpreter | 代码执行 | 生成:编写并执行 Node.js 代码生成文档 | Agent 内置工具 |
| File Operations | 文件操作 | 管理:读写文件、创建目录、移动文件 | Agent 内置工具 |
代码生成能力
docx-js 库的强大功能进行文档排版多层工具链
状态管理
.docx 与 XML 格式的无缝转换docx 技能向我们展示了 Agent Skills 的上限,其设计原则包括:
| 核心原则 | 说明 | 应用价值 |
|---|---|---|
| 代码生成 > 工具调用 | 对于复杂任务,直接让 Agent 编写并运行临时脚本,比预定义大量 API 函数更灵活 | 大幅提高技能的适应性和扩展性 |
| 工具链编排 | Agent 成为指挥官,指挥多个工具协同工作,形成完整的自动化流水线 | 实现复杂任务的端到端自动化 |
| 知识封装 | 将专业知识(如 XML 操作、docx-js 使用)封装在 SKILL.md 中 | 减少 Agent 的认知负担,提高执行准确性 |
| 分层设计 | 将业务逻辑(SKILL.md)与执行代码(scripts)分离 | 提高代码的可维护性和可扩展性 |
| 渐进式复杂度 | 从简单的文档创建到复杂的外科手术式编辑,提供不同层次的能力 | 满足不同场景的需求,提高技能的适用范围 |
docx 技能的案例展示了 Agent Skills 不仅是简单的工具调用集合,更是一种强大的业务逻辑编排框架,能够指导 AI 代理完成复杂的专业任务。
本章节将从系统工程的角度,探讨 Agent Skills 系统的设计核心要素,包括架构依赖、动态上下文加载、能力分层和协议对齐等关键技术,帮助理解如何构建一个企业级可用的 Agent Skills 系统。
从工程视角来看,Agent Skills 并非简单的文档堆砌,而是一种'高内聚、低耦合'的系统架构设计。要构建一个企业级可用的 Agent Skills 系统,需要从系统工程的角度,重新审视 Agent(宿主环境)与 Skill(业务逻辑)之间的交互协议。
本质区别
设计核心 构建一个能够标准化解析、加载并执行这些静态逻辑的'Agent Runtime',实现:
技术实现
技术挑战:在 Skill 系统设计中,最关键的技术挑战在于 Token 效率与信息完备性的平衡。这本质上是一项精密的上下文工程 (Context Engineering)。
解决方案:索引 - 按需加载策略
| 组件 | 功能 | 实现方式 |
|---|---|---|
| 索引层 | 在 System Message 中仅保留极简的元数据索引(Name + Description + Tags) | 将所有技能的元数据压缩为简洁的索引条目 |
| 加载机制 | 利用 Function Calling (read_file) 作为触发器,实现 Skill 内容的 Just-in-Time (JIT) 注入 | 当路由系统匹配到合适的技能时,动态读取并注入 |
| 生命周期管理 | 在任务结束后,及时清理上下文,防止 Token 堆积 | 实现上下文的创建、使用和销毁的完整生命周期管理 |
优势
边界定义
职责分离
| 层级 | 职责 | 能力要求 |
|---|---|---|
| 编排层 | - 定义业务逻辑和工作流程 - 提供决策树和分支处理 - 指导工具使用顺序和方式 | 业务领域知识、流程设计能力 |
| 执行层 | - 提供原子工具接口 - 执行具体操作 - 处理工具调用结果 - 管理执行环境 | 系统集成能力、安全控制能力、错误处理能力 |
协作模式
Agent 端规范
Skills 端规范
接口对齐策略
+------------------------+
| User Interface |
+------------------------+
↑
+------------------------+
| Agent Runtime |
| +--------------------+ |
| | 路由系统 | |
| +--------------------+ |
| +--------------------+ |
| | 上下文管理 | |
| +--------------------+ |
| +--------------------+ |
| | 执行引擎 | |
| +--------------------+ |
+------------------------+
↑
+------------------------+
| Skill Repository |
| +--------------------+ |
| | 技能索引 | |
| +--------------------+ |
| +--------------------+ |
| | 技能存储 | |
| +--------------------+ |
+------------------------+
↑
+------------------------+
| Tool Registry |
| +--------------------+ |
| | 内置工具 | |
| +--------------------+ |
| +--------------------+ |
| | 外部工具 | |
| +--------------------+ |
+------------------------+
问题:如何确保 Agent 能在众多技能中准确找到最合适的那一个?
解决方案:
问题:当多个技能都可能适用于当前任务时,如何确定执行顺序?
解决方案:
问题:如何确保技能执行的安全性,防止恶意操作?
解决方案:
通过合理的系统设计,可以构建一个既强大又灵活的 Agent Skills 系统,为 AI 代理赋予无限的能力扩展空间。
本章节将对比专业垂直 Agent 与通用 Agent + Skills 两种技术路线,分析它们的优缺点、适用场景和技术架构,探讨未来的融合趋势和选型建议,帮助您在实际项目中做出明智的技术决策。
解决垂直领域的 AI 应用问题,主要有两种技术路线:
| 路线 | 特点 | 代表方案 |
|---|---|---|
| 重型路线 | 构建高度专业化的垂直领域 Agent,针对特定领域进行深度优化 | 专业医疗 AI、金融分析 AI、法律助手 AI、网络安全领域 AI |
| 轻量路线 | 基于通用大模型(Base Model),通过添加特定技能包(Agent Skills)来适配垂直领域 | 通用 AI + 专业技能包 |
| 维度 | 专业垂直 Agent | 通用 Agent + Skills |
|---|---|---|
| 开发成本 | 高,需要大量领域数据和专业知识 | 低,主要成本在于技能包开发 |
| 开发周期 | 长,通常需要数月甚至数年 | 短,技能包开发周期以周计算 |
| 迭代速度 | 慢,每次更新需要重新训练模型 | 快,技能包可以独立迭代 |
| 维护成本 | 高,需要持续收集和标注领域数据 | 低,主要维护技能包内容 |
| 维度 | 专业垂直 Agent | 通用 Agent + Skills |
|---|---|---|
| 领域深度 | 深,能够处理复杂的专业问题 | 中等,适合标准化的专业任务 |
| 通用性 | 差,仅限于特定领域 | 强,可快速适配多个领域 |
| 创新能力 | 有限,主要基于训练数据 | 强,可结合通用知识和专业技能 |
| 适用场景 | 高度专业、逻辑深度极深的领域 | 标准化、中等复杂度的领域任务 |
| 维度 | 专业垂直 Agent | 通用 Agent + Skills |
|---|---|---|
| 模型架构 | 通常基于特定领域数据微调的专用模型 | 基于通用大模型,无需领域微调 |
| 知识获取 | 通过模型训练注入领域知识 | 通过技能包动态注入领域知识 |
| 能力扩展 | 需要重新训练或模型融合 | 通过添加新技能包实现扩展 |
| 系统复杂度 | 高,需要完整的训练和部署 pipeline | 低,主要依赖通用模型能力 |
未来的发展趋势是将两种路线融合,形成混合架构:
专业垂直 Agent 和通用 Agent + Skills 并非互斥关系,而是互补关系。在实际应用中,应根据具体需求和资源情况,选择合适的技术路线,或采用混合架构,以达到最佳的应用效果。
未来的 AI 生态系统,将是两者共存、相互补充的格局,共同推动 AI 在各行业的深度应用。
通过本文的学习,我们可以总结出以下核心要点:
Agent Skills 作为一种新兴的 AI 能力扩展技术,具有广阔的发展前景:
Agent Skills 是 AI 技术发展的重要方向,它通过将专业知识和工作流程标准化,为 AI 代理赋予了无限的能力扩展空间。无论是个人开发者还是企业组织,都可以通过 Agent Skills 技术,快速构建和部署专业的 AI 应用,推动 AI 在各行业的深度应用。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online