Agent Skill 设计与实践

什么是 Skill

一种简单且开放的标准,旨在赋予智能体新的能力和专业知识。

“Agent Skill”这一概念由 Anthropic 在 2025 年首次系统性提出,在其将 Skill 定义为“开放标准”后,多家厂商跟进, 其中包括 OpenAIGoogle等行业巨头,业界对 Skill 的定义和理解逐渐趋于统一,各种工具链开始支持并迅速演化为 Agent 时代的事实标准。

Skill 的出现原因很简单,尽管大模型的能力越来越强,但真实世界的工作,需要依赖流程经验与组织语境, 而这些是大模型在训练阶段很难学到的。于是 Anthropic 设计出一种机制,动态地把具体工作的经验、流程、规则和上下文在任务执行过程中补给 Agent。

Skill 定义

根据官方定义:Agent Skill 是一种轻量级的开放格式,用于将专业知识、工作流程等信息注入到 Agent 的上下文中。

你也可以理解为:供 Agent使用,面向特定任务的、可复用的行动策略单元。

技能的核心是一个包含 SKILL.md 文件的文件夹。该文件包含元数据(至少包括名称和描述)以及指示 Agent 如何执行特定任务的指令。Skill 还可以包含脚本、模板和参考资料。

SKILL.md
generate_contract.js
00-合同框架.md
01-立场策略.md
02-合同类型适配.md
03-质量标准.md
报告模板.docx
风格参考图片.png

一份标准的 SKILL.md 长得像下面这样

SKILL.md
---
name: gmail
description: "读取、发送和管理 Email、标签和草稿。当用户想要与 Gmail 交互时,可以使用此功能。"
---

# Gmail 

使用身份验证访问 Gmail API。读取、发送和管理电子邮件、标签和草稿。

## 快速开始

```python
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.example.com/google/gmail/v1/users/me/messages?maxResults=10')
req.add_header('Authorization', f'Bearer {os.environ["API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
```

...

其中 namedescription 是 Skill 的元数据,Agent 会根据它们来识别和选择技能;后面的内容则是操作手册,告诉 Agent 该怎么做。

SKILL.md 就是一份操作手册,告诉 Agent 该怎么做;scripts 是工具箱,提供了可以直接使用的工具;references 是资料库,提供了相关的背景知识和信息; assets 是资源库,提供了模板、图片等各种资源,比如生成报告的模板,或者设计风格参考图片。

与Prompt、Tool、 MCP 的关系

  • Prompt: 提示词
  • Tool: 工具
  • MCP: 模型上下文协议(Model Context Protocol)

你可能经常听到这些概念,有时候不太能完全区分它们之间的差异。 这里我们做一个简单的对比,帮助你捋清它们之间的关系。

概念比喻核心特点适用场景
可复用提示词微波炉上的“指定按钮”(如:/解冻、/爆米花)由用户主动触发的、固定的、单一功能的指令作为主动复用 prompt 的快捷方式
MCP 或 Tool厨房里的“单一厨具”(如:一把刀、微波炉、燃气灶)为 AI 提供调用外部 API 或脚本的基础能力需要使用外部工具获取信息或完成任务
Skill一本完整的“菜谱”(包含食材、步骤和技巧)由模型根据任务自动匹配和驱动。它定义了制作这道菜(完成这个任务)需要用到哪些厨具(工具)、遵循哪些步骤,是流程化、场景化的。由模型驱动意图理解,通过渐进式加载补充上下文,并根据指令完成任务

模型上下文协议(Model Context Protocol,MCP)是一套标准协议,定义了模型如何调用外部工具,主要解决的是工具调用的问题;而 Skill 则是一个更高层次的概念,解决的是能力构建和复用的问题。Skill 可以包含 MCP 定义的工具调用,但它还包括了更多内容,如操作手册、参考资料和资源等。

Skill 的特点

🧩 可组合(Composable)

多个 Skill 可以灵活叠加使用。Agent 会自动判断所需 Skill,并协调它们协同完成任务。

♻️ 可迁移(Portable):

Skill 采用统一格式,一次构建,可在不同的 Agent 中使用,比如 Claude、Claude Code、Codex、 Gemini Cli、 扣子、 WorkBuddy 等。

🚀 高效(Efficient):

启动时 Agent 只会加载每项可用技能的名称和描述,仅在需要时加载所需 Skill的 SKILL.md,避免不必要的开销。

💪 强大(Powerful):

Skill 可包含可执行代码,在一些传统编程更可靠的场景中,提供更稳定的执行能力。

示例

这里是几个 Skill 的示例, 你可以在 技能包 上找到更多的 Skill。

On this page