Agent Skills 听起来很高深?其实大可不必为此感到焦虑。AI 领域并非每秒都在诞生颠覆性的新概念,很多时候只是对现有能力进行更优雅的封装和标准化。Agent Skills 就是一个典型的例子,它不是用来取代 RAG (检索增强生成) 或 Function Calling 的,而是旨在 将已有的 RAG、Function Calling 等能力模块化、标准化、可复用化。
对于广大 AI 开发者和算法工程师而言,目前主流的开发框架(如 LangChain)在业务编码层面并未广泛支持这套规范。因此,如果在面试或技术讨论中遇到,不了解或没使用过是完全正常的。不过,我们不妨对其建立一个基本的认知。

一、Agent Skills 是什么?
简单来说,Agent Skills 是一组包含指令、脚本和资源的文件夹,用于帮助大型语言模型(LLM)以一致且可重复的方式完成特定任务。你可以将其理解为一种 “任务封装”。
这个概念由 Anthropic(Claude 背后的公司)在 2025 年首次提出。一个标准的 Skill 文件夹结构通常如下:
skill名称/
├── SKILL.md # 必需:指令 + 元数据,相当于详细的操作指南(目标、步骤、注意事项)
├── scripts/ # 可选:可执行代码
├── references/# 可选:参考文档
└── assets/ # 可选:模板、资源文件
二、Skill 的执行流程
Skill 的执行遵循一个清晰的、多步骤的决策与执行循环。其核心在于 “按需加载” 任务指南,而非一次性灌输所有信息。

具体流程可以分解为以下步骤:
- 用户输入:用户向智能体(Agent)提出问题或指令。
- 初始决策:Agent 将系统基础提示词、它所拥有的技能列表(仅名称和简短描述)以及用户输入,一同提交给 LLM。
- 技能选择:LLM 分析后,判断当前任务需要使用哪个技能,并以结构化方式返回技能名称。
- 加载指南:Agent 根据 LLM 的选择,找到对应技能文件夹中的
SKILL.md 文件,将其内容(即详细的任务指南)作为新的上下文提示词。
- 制定计划:Agent 将
SKILL.md 指南与用户的具体输入结合,再次提交给 LLM。LLM 根据指南分析任务,判断是否需要调用外部工具、API 或运行本地脚本,并返回具体的调用信息。
- 执行动作:Agent(而非 LLM)执行上一步决定的动作,例如调用 API 或运行
scripts/ 下的脚本,并获取执行结果。这一步不消耗 LLM 的 Token。
- 循环与整合:Agent 将最新的执行结果、
SKILL.md 指南和原始问题再次提交给 LLM,由 LLM 判断任务是否完成。若未完成,则重复步骤 5-7,制定下一步计划;若已完成,则进入最终步骤。
- 生成最终回复:LLM 综合所有步骤的结果,生成面向用户的自然语言回答。
关键机制:上述流程的核心是 动态加载当前任务所需的信息。在 Agent Skills 的语境下,这被称为 渐进式披露(Progressive Disclosure)。
为了更直观地理解,我们来看一个示例:
- 用户提问:“请帮我从这份 PDF 中提取关键内容。”
- LLM 决策:判断需要使用“PDF 解析”这个 Skill。
- Agent 加载指南:读取“PDF解析”技能下的
SKILL.md,获取如“先调用 OCR 工具识别文字,再提取文本结构,最后生成摘要”等操作指南。
- Agent 执行脚本:运行
scripts/parse_pdf.py,处理 PDF 文件并返回结构化的文本和元数据。
- LLM 生成回答:Agent 将脚本运行的结果传给 LLM,LLM 根据这些信息生成最终的自然语言回复。
因为 SKILL.md 是由开发者编写的、融合了专业经验的任务指南,它具备可读性强、易于维护、可跨项目复用的优点。在处理复杂、多步骤的任务时,这种渐进式披露的方式,通常比“一次性将所有可能的工具描述塞进提示词”的传统方法更高效、更精准。
三、Agent Skills 与 RAG、Function Calling、MCP 的区别与联系
理解一个新概念,最好的方式之一是厘清它与现有技术的边界。
- RAG (检索增强生成):主要用于从静态知识库(如产品手册、FAQ、条款文档)中检索相关信息来增强LLM的回答。它的核心是“查”。例如:从海量产品条款文档中查找关于“保修期限”的具体段落。
- Function Calling:指 LLM 根据需求调用外部 API 或服务的功能。它的核心是“调”,通常是一个单一的操作。例如:调用
get_weather(city=“Beijing”) 函数获取北京的天气数据。
- MCP (模型上下文协议):这是一个标准化协议,可以看作是 Function Calling 的上层协议。它标准化了“函数(或工具)在哪里、如何被发现、如何调用”的问题,使得不同来源的工具能以一种统一的方式被 LLM 使用。
- Agent Skill:它的核心是“封装和组织一个完整的工作流”。一个 Skill 可以包含多个步骤,其中某一步可能是调用 RAG 来检索信息,另一步可能是通过 Function Calling(或 MCP 协议)来执行某个操作。例如,一个“客户投诉处理”Skill,可能先通过 RAG 查找相关条款,再调用“创建工单”的 API,最后结合所有信息生成安抚客户的回复。
请注意:Agent Skills 并非为了取代 RAG、Function Calling 或 MCP,而是将它们作为“乐高积木”,组织成更高阶、可复用的“任务模块”。
四、在 LangChain 中如何使用 Agent Skills?
目前,LangChain 并未原生支持 Anthropic 提出的这套 Agent Skills 文件规范。
但这并不意味着无法实现类似的思想。开发者可以通过以下方式在 LangChain 生态中模拟相似的效果:
- 自定义
Tool:将每个 Skill 封装成一个 LangChain 的 Tool 对象。
- 实现多轮决策:使用
ReActAgent 或 LangGraph 等模块来构建支持多步推理和执行的智能体。
- 手动加载指南:将
SKILL.md 的内容作为对应 Tool 的详细描述(description)。
本质上,这是在利用 LangChain 的现有能力 手动实现一套 Skill 管理和调度系统。对于希望深入理解 Agent 工作原理的开发者,这本身就是一个很好的实践。你可以在 云栈社区 的人工智能板块找到更多关于 LangChain 和智能体开发的讨论与实战案例。
五、Agent Skills 会更耗费 Token 吗?
恰恰相反,Agent Skills 的设计初衷之一就是为了节省 Token,尤其是在工具(Skill)数量很多的情况下。
- 传统工具调用方式:在对话开始时,需要将 所有可用工具的描述 一次性加载到 LLM 的上下文窗口中。工具越多,消耗的 Token 就越多,成本越高,并且可能影响模型性能。
- Agent Skills 方式:采用 渐进式披露。初始阶段只告诉 LLM 有哪些技能(仅名称和简短描述)。只有当 LLM 决定使用某个特定技能时,该技能的详细指南(
SKILL.md)才会被加载到上下文中。这样就做到了 按需加载,避免上下文浪费。
结论:Agent Skills 的渐进式加载机制通常比传统方式更省 Token,在工具库庞大时优势尤为明显。
总结
总而言之,Agent Skills 是一种 模块化的任务封装机制。它将解决一个复杂任务所需的所有细节(步骤、脚本、资源)都编写在 SKILL.md 等文件中,并由智能体在运行时 按需动态加载。
理解 “渐进式披露” 这个核心机制,就掌握了 Agent Skills 的一大半精髓。所以,Agent Skills 并不神秘——它就像一本技能手册,智能体只有在需要干某项具体工作时,才会翻开对应的那一页仔细阅读。
希望这篇文章能帮你驱散对新技术概念的焦虑,更扎实地理解其背后的设计思想。技术的演进常常是组合与优化,而非彻底的颠覆。在 云栈社区 的 技术文档 板块,你可以持续追踪这类技术概念的落地实践与深度解析。