转载:Agent Skills深度解析,让智能体从“会连接”到“会做事”的核心引擎
前言🔖


在智能体 技术飞速迭代的今天,从Function Call到Tool Call,再到MCP协议的普及,我们似乎已经解决了智能体与外部世界交互的“连接问题”。但实际应用中,很多开发者都会陷入这样的困境:给智能体开通了数据库、GitHub、文件系统等所有工具的访问权限,它却依然做不好一件需要专业判断的事。比如让它分析公司内部谁的话语权最高,它能调用数据库查询薪资和层级数据,却不知道该从哪些维度综合评估,更不懂如何结合公司业务规范解读数据。
这一困境的核心,在于我们混淆了“连接能力”与“执行能力”的边界。2025年初,Anthropic在推出MCP(Model Context Protocol)之后,进一步提出的Agent Skills(智能体技能)概念,正是为了填补这一空白。它不是对现有技术的替代,而是让智能体真正具备“专业素养”的关键突破。今天,我们就从本质出发,全面拆解Agent Skills,看看它究竟能为智能体带来什么。
当前大多数 Agent 仍然是通过 Prompt 来注入能力:一次性描述目标、流程和规则。 但随着Prompt 越来越长,能力越来越难复用,很快就会遇到 能力难复用、上下文膨胀、维护成本高 等问题。
Anthropic 推出的 Agent Skills,以及 LangChain 对其的支持,正是在工程层面尝试解决这个问题:
让 Agent 的能力从 Prompt,升级为可管理的模块。
什么是 Skill🔖
一个 Skill 是一个目录,包含一个 SKILL.md 文件,文件中组织了指令、脚本和资源,用于赋予 Agent 额外能力。

每个 Skill 的核心文件是 SKILL.md,用于结构化描述该能力,包括:
- 名称(name):Skill 的标识
- 能力说明(description):Skill 可以完成的任务
- 使用场景(usage):适合调用的情况
- 操作流程(instructions):如何使用或调用 Skill
- 依赖信息(dependencies,可选):Skill 可能依赖的工具或资源
官方示例中,例如 PDF 处理 Skill (document-skills/pdf/SKILL.md),通过 SKILL.md 说明了如何让 Agent 读取、编辑和填写 PDF 文件,并附带所需资源和操作说明。这个示例清楚地表明:Skill 是一个可调用、可管理、可复用的能力单元。
注意:官方并未规定 Skill 目录必须包含特定文件,除 SKILL.md 外的脚本、文档、配置或示例文件都是可选的,目的是辅助 Skill 的执行和管理。
🔹1. Skill 与 Prompt 的关系
从工程角度看:
- Prompt:负责描述当前任务目标、上下文意图和临时约束
- Skill:封装稳定能力、固定流程和可复用操作
也就是说:Prompt 负责“调度”,Skill 负责“执行能力”。
比如,Prompt 就像你在家里对吸尘器说:“嘿,打扫下客厅”,而Skill 就是吸尘器实际完成扫地、避障、充电的动作:

这种设计让 Agent 的能力不再绑定于单次对话,而是成为可重复调用的模块化单元。

🔹2. Skill 的加载机制
Skills 并不会在 Agent 启动时全部加载,而是采用 索引 → 选择 → 按需加载 的模式:
- 索引阶段:加载 Skill 元信息(name、description、usage)作为“能力索引表”
- 规划阶段:Agent 根据索引判断是否需要某个 Skill
- 执行阶段:当 Skill 被选中时,完整内容和资源才会加载到上下文
这种延迟加载机制在工程上解决了上下文膨胀、Token 消耗过高和规划执行耦合等问题。

🔹3. Skill 的工程价值
在 Skill 体系下,Agent 的能力首次具备了 软件工程属性:
- 可复用:同一 Skill 可被多个 Agent 调用
- 可维护:Skill 独立更新,无需修改原 Prompt
- 可共享:团队或组织内部可建立 Skill 仓库
- 可版本化:支持升级、回滚或灰度发布
通过 Skill,Agent 的能力从一次性文本升级为 可管理、可演化的工程单元。
从工程角度看,Skill 模块化 AI 能力,解耦 Prompt 与执行,使 Agent 可复用、可维护、可扩展。
就像软件插件化一样,AI Agent 的能力越来越需要工程化管理,这也提醒我们,在 AI 发展时代,工程能力同样不能丢。
Agent Skills?不止是“高级提示词”🔖
很多人初次接触Agent Skills时,会将其简单理解为“更复杂的提示词”,但实际上它是一套标准化的程序性知识封装格式,是将领域专家经验、操作流程、最佳实践打包成的“可加载模块”。如果说MCP为智能体提供了“双手”,让它能够触达外部工具和数据,那么Agent Skills就相当于为智能体配备了“操作手册”和“专业大脑”,教会它如何正确、高效地使用这些“双手”完成特定任务。
从结构来看,每个Agent Skill都是一个独立的文件夹,核心是一份名为SKILL.md 的Markdown文件,同时可包含脚本、配置文件、参考文档等附加资源。这份SKILL.md文件有着严格的规范,开头必须用YAML格式的Frontmatter定义技能元数据,包括技能名称、描述、版本、可调用工具列表等关键信息,后续则详细阐述技能的使用场景、工作流程、最佳实践、示例及故障排查方法。这种结构化设计,让技能能够被智能体快速识别、解析和调用,同时也便于开发者维护和复用。
Anthropic对Agent Skills的定位非常清晰,它的核心设计理念是“连接性与能力分离”。MCP专注于解决“如何连接外部工具”的问题,而Agent Skills专注于解决“如何用好这些工具”的问题。就像我们买了一台打印机,MCP相当于打印机的USB驱动,确保电脑能识别并连接打印机,而Agent Skills就相当于打印机的使用指南,告诉我们如何设置页边距、如何双面打印、如何解决卡纸问题。没有驱动,打印机无法工作;没有使用指南,即使打印机能连接,我们也难以高效完成打印任务。
值得一提的是,Agent Skills并非Anthropic的独家概念,而是智能体技术发展的必然产物。OpenAI在2025年3月的更新中,为ChatGPT引入了增强版Custom Instructions和Context Profiles功能,允许用户保存特定领域的知识和多步骤指令;Google则在Gemini模型中推出了“Function Packages”,将函数定义与使用指南、示例打包在一起。这些功能本质上都是Agent Skills理念的不同实现形式,足以说明其在行业内的认可度。
Agent Skills主要做什么?让通用智能体秒变“领域专家”🔖
Agent Skills的核心作用,是为通用智能体注入领域知识和操作规范,让它能够快速适配特定场景,完成复杂任务。具体来说,它的作用主要体现在以下四个方面:
🔹1. 拆解复杂任务,明确执行路径
面对需要多步骤完成的复杂任务,通用智能体往往会陷入“不知道从哪下手”的困境,而Agent Skills会为其提供清晰的工作流程。以代码审查任务为例,一个名为code-review-workflow的技能会明确规定审查步骤:首先调用GitHub 的MCP工具获取PR信息和变更文件列表,然后逐文件进行风格检查(如Python文件需符合PEP 8规范,JS/TS文件需检查未处理的Promise),接着进行安全检查(如是否硬编码敏感信息、是否存在SQL注入风险),最后根据问题严重程度选择直接评论或在总结中提出改进建议。这种 step-by-step 的指引,让智能体能够有条不紊地推进任务,避免遗漏关键环节。
🔹2. 注入领域知识,规避专业盲区
通用智能体虽然具备强大的语言理解能力,但在特定领域往往存在知识盲区。Agent Skills会将领域专家的经验和规范封装其中,让智能体快速具备专业素养。比如在数据分析场景中,mysql-employees-analysis技能会告知智能体:衡量“员工话语权”需要综合管理层级、下属数量、薪资水平、涨薪幅度、任职时长、跨部门影响力等维度,且查询数据库时必须使用参数化查询以避免SQL注入风险,新功能的测试覆盖率需超过80%。这些领域知识和规范,是通用智能体无法通过自身训练获得的,也是确保任务质量的关键。
🔹3. 规范工具使用,提升执行效率
MCP虽然实现了工具的标准化连接,但智能体可能不知道在什么场景下使用什么工具,更不知道如何高效使用工具。Agent Skills会明确工具的使用场景和最佳实践,避免无效调用。例如在PDF处理场景中,pdf-processing技能会规定:解析PDF内容时调用parse_pdf.py脚本,填写PDF表单时加载forms.md指南,生成特定格式文档时使用templates文件夹中的模板文件。这种明确的指引,不仅能提升智能体的工具使用效率,还能避免因错误调用工具导致的任务失败。
🔹4. 降低上下文消耗,控制成本支出
传统MCP方式会在连接工具时一次性加载所有工具的完整JSON Schema,往往占用数万个token,导致上下文爆炸和成本飙升。而Agent Skills采用“按需加载”机制,仅在需要时才加载相关技能的详细内容,大幅降低token消耗。社区开发者的实践案例显示,一个包含大量工具定义的MCP服务器,传统方式初始加载需消耗16000个token,而通过Agent Skills包装后,初始仅加载技能元数据,消耗降至500个token,降幅超过90%。这种成本优化,对于长对话和多工具场景尤为重要。
Agent Skills有哪些开源 框架?快速上手的核心资源🔖
目前,Agent Skills的开源生态正在快速发展,其中最具代表性的是Anthropic官方推出的Skills知识库,同时社区也在积极构建相关工具和框架,以下是几个核心开源资源:
1🔹. Anthropic Skills 官方知识库
Anthropic在GitHub上开源了名为“agent-skills”的知识库(仓库地址:https://github.com/anthropics/skills),包含16个公共示例技能,涵盖文档处理、创意设计、开发技术和企业通信等多个领域。这些技能均经过实际场景验证,其中文档处理技能(如docx和pdf文件处理)已在Claude 的生产环境中得到有效应用。开发者可以直接下载这些技能,根据自身需求修改后使用,也可以参考其规范和模板创建自定义技能。该知识库还提供了详细的开发指南,包括SKILL.md文件的编写规范、技能的打包与部署方法等,是新手入门的最佳资源。
🔹2. LangChain Skill 集成框架
作为知名的大模型应用开发框架,LangChain在2025年中期推出了Skill集成模块,支持将Anthropic格式的Agent Skills加载到LangChain智能体中。该模块提供了技能扫描、元数据解析、按需加载等核心功能,开发者可以通过简单的代码调用,将现成的Skills与LangChain的工具链、记忆系统结合,快速构建具备专业能力的智能体。例如,通过LangChain的SkillLoader类,只需一行代码即可加载mysql-employees-analysis技能,让智能体立即具备员工数据分析能力。
🔹3. Agent Skill Hub 社区仓库
由Datawhale等开源组织牵头构建的Agent Skill Hub,是一个社区驱动的技能共享平台。该仓库收录了来自全球开发者贡献的数百个技能,涵盖金融分析、医疗咨询、教育辅导、自动化运维等多个垂直领域。开发者可以免费下载这些技能,也可以上传自己编写的技能与社区共享。仓库还提供了技能评分和评论机制,帮助开发者筛选高质量的技能资源。此外,社区还会定期举办技能开发挑战赛,推动Agent Skills生态的完善。
🔹4. Claude Skills SDK
Anthropic为Claude模型提供了官方Skills SDK,支持开发者快速创建、测试和部署自定义技能。该SDK包含技能模板生成器、语法检查工具、模拟运行环境等功能,开发者可以通过SDK生成符合规范的SKILL.md文件,在本地模拟技能的执行流程,排查潜在问题。同时,SDK还支持将技能发布到Claude的插件市场,供其他用户使用。目前,该SDK支持Python、JavaScript等多种编程语言,兼容Claude.ai、Claude Code及其API,适配多种开发场景。
如何结合智能体使用Agent Skills?从搭建到落地的完整流程🔖
将Agent Skills与智能体结合,核心是遵循“技能加载-任务匹配-分步执行-结果优化”的流程,以下是具体的实现步骤和注意事项:
🔹1. 技能搭建:遵循规范编写SKILL.md
编写技能是基础,需严格遵循Anthropic定义的SKILL.md规范。首先是元数据部分,必须包含name(技能唯一标识,采用kebab-case命名)和description(技能描述,需明确技能用途、适用场景和核心价值),这是智能体识别技能的关键。例如,一个优质的description应该是“将中文业务问题转换为SQL查询并分析MySQL employees示例数据库,适用于员工信息查询、薪资统计、部门分析、职位变动历史等场景,当用户询问关于员工、薪资、部门的数据时使用此技能”,而非简单的“处理数据库查询”。
技能主体部分需包含概述、前置条件、工作流程、最佳实践、示例和故障排查六个模块。其中,工作流程需尽可能详细,明确每个步骤的操作内容、调用工具和判断条件;示例部分需提供真实的任务案例和执行结果,帮助智能体更好地理解技能的使用方式。此外,对于复杂技能,可在附加资源中添加脚本和参考文档,通过SKILL.md中的引用语句,指导智能体在需要时加载这些资源。
🔹2. 技能加载:将技能集成到智能体
技能编写完成后,需将其加载到智能体中。以Claude智能体为例,只需将技能文件夹放置在智能体的skills目录下,智能体启动时会自动扫描并加载所有技能的元数据。对于LangChain智能体,可通过SkillLoader类加载技能,代码示例如下:
from langchain.agents import initialize_agent
from langchain_anthropic import ClaudeLLM
from langchain.skills import SkillLoader
# 初始化Claude LLM
llm = ClaudeLLM(model="claude-3-opus", api_key="your-api-key")
# 加载数据分析技能
skill_loader = SkillLoader()
data_analysis_skill = skill_loader.load("mysql-employees-analysis")
# 初始化智能体并添加技能
agent = initialize_agent(
tools=[],
llm=llm,
agent="react-chat-zero-shot-react-description",
skills=[data_analysis_skill]
)
# 运行智能体
response = agent.run("分析公司内部谁的话语权最高")
print(response)
加载技能后,智能体将拥有该技能的元数据信息,能够在接收到用户请求时,判断是否需要调用该技能。
🔹3. 任务匹配:智能体筛选合适技能
当用户提出任务请求时,智能体会首先分析任务意图,结合已加载技能的元数据,筛选出最匹配的技能。例如,用户请求“生成一份员工薪资分析报告”,智能体会对比所有技能的description,发现mysql-employees-analysis技能的适用场景包含薪资统计,因此确定加载该技能的主体内容。这一过程的关键,是技能description的精准性,开发者需在描述中包含核心关键词,便于智能体快速匹配。
🔹4. 分步执行:结合MCP工具完成任务
技能加载完成后,智能体会按照技能定义的工作流程,分步执行任务。以员工话语权分析为例,执行流程如下:第一步,根据技能指令,调用MCP的数据库查询工具,查询员工的管理层级、下属数量等数据;第二步,调用薪资查询工具,获取员工薪资水平和涨薪幅度;第三步,结合技能中的领域知识,对数据进行加权分析(如管理层级权重0.3、薪资水平权重0.25、任职时长权重0.2等);第四步,生成结构化的分析报告,明确指出话语权最高的员工及核心依据。在执行过程中,智能体会根据每一步的结果,调整后续操作,确保任务顺利推进。
🔹5. 结果优化:持续迭代技能内容
任务完成后,需根据执行结果优化技能。例如,若智能体在分析过程中遗漏了跨部门影响力这一维度,需在技能的工作流程中补充该步骤;若生成的SQL查询存在效率问题,需在最佳实践中添加高效查询的技巧。此外,还可以通过用户反馈,调整技能的参数设置和权重分配,提升任务完成质量。定期的技能迭代,是确保智能体持续具备专业能力的关键。
Agent Skills与MCP的核心不同:互补而非竞争🔖
很多人会将Agent Skills与MCP混淆,认为两者是竞争关系,但实际上它们是智能体技术栈中两个不同层级的核心组件,有着本质区别,同时又能相互互补,构建更高效的智能体架构。
🔹1. 设计理念不同:能力聚焦 vs 连接聚焦
MCP的核心设计理念是“标准化连接”,旨在解决智能体与外部工具/资源的通信问题。它通过定义统一的协议规范,让智能体能够以相同的方式访问数据库、API、文件系统等各种服务,避免了为每个服务编写专门适配器的繁琐。MCP的关注点是“连接性”,确保智能体能够“够得着”外部世界。
而Agent Skills的设计理念是“标准化能力”,旨在为智能体注入领域知识和操作规范。它的关注点是“执行能力”,确保智能体知道“如何做”。两者的核心差异,就像交通系统中的“道路”与“驾驶规则”,MCP是道路,负责连接各个目的地;Agent Skills是驾驶规则,指导智能体如何安全、高效地到达目的地。
🔹2. 上下文管理不同:急切加载 vs 惰性加载
上下文管理策略的差异,是两者最直观的区别。MCP采用“急切加载”机制,当智能体连接到MCP服务器时,会一次性加载所有可用工具的完整JSON Schema,往往占用数万个token,导致上下文爆炸。例如,仅加载一个Playwright MCP服务器,就会占用200k上下文窗口的8%。
Agent Skills则采用“惰性加载”机制,通过渐进式披露实现上下文的精准管理。智能体启动时仅加载技能元数据,仅在需要时才加载技能主体和附加资源,大幅降低token消耗。实测数据显示,Agent Skills的上下文消耗仅为MCP的10%以下,在多轮对话和多工具场景中,这种优势更为明显。
🔹3. 职责分工不同:基础设施 vs 业务逻辑
从架构层级来看,MCP属于传输层,负责智能体与外部工具的通信,是智能体的“基础设施”。它不涉及具体的业务逻辑,仅提供标准化的接口,确保数据传输的顺畅和稳定。同一个MCP服务器可以被多个技能复用,例如GitHub的MCP服务器,既可以被代码审查技能调用,也可以被代码合并技能调用。
Agent Skills属于应用层,负责封装业务逻辑和领域知识,是智能体的“业务核心”。它基于MCP提供的接口,定义具体的任务执行流程,适配特定的业务场景。不同的技能可以调用同一个MCP服务器,实现不同的业务功能。这种职责分工,实现了业务逻辑与基础设施的解耦,提升了智能体的可维护性和复用性。
🔹4. 协作关系:Skills + MCP 构建分层架构
最佳实践是将Agent Skills与MCP结合,构建“应用层-传输层-基础设施层”的分层架构。应用层由Agent Skills组成,负责业务逻辑和任务规划;传输层由MCP组成,负责标准化的工具调用和数据传输;基础设施层则是数据库、API、文件系统等外部资源。
典型的协作流程的是:用户提出“分析公司内部谁的话语权最高”的需求;Agent Skills层识别出这是数据分析任务,加载mysql-employees-analysis技能;技能层将任务分解为查询管理关系、薪资对比、任职时长统计等子步骤,向MCP层发送工具调用请求;MCP层执行具体的SQL查询,将结果返回给技能层;技能层根据领域知识解读数据,生成综合分析报告;最后将结构化答案返回给用户。这种协作模式,既发挥了MCP的连接优势,又体现了Agent Skills的专业能力,是企业级智能体的最佳实现方式。
总结:Agent Skills开启智能体“专业化”时代🔖
从Function Call到MCP,再到Agent Skills,智能体技术的演进,本质上是从“能做事”到“会做事”再到“做好事”的过程。Agent Skills的出现,填补了智能体领域知识和操作规范的空白,让通用智能体能够快速适配特定场景,具备专业能力,同时大幅降低了开发成本和上下文消耗。
它与MCP的互补关系,构建了清晰的智能体分层架构,为企业级应用落地提供了可靠的技术支撑。随着开源生态的完善和行业规范的统一,未来Agent Skills将成为智能体开发的核心组件,开发者无需再从零构建智能体,只需通过加载不同的技能,就能快速适配金融、医疗、教育、运维等多个垂直领域。
当然,Agent Skills也面临着一些挑战,比如技能格式尚未完全统一、第三方技能的安全性难以保证、上下文污染风险等。但随着技术的不断迭代和社区的共同努力,这些问题终将逐步解决。对于开发者而言,掌握Agent Skills的编写和应用,将成为未来在AI领域立足的核心竞争力。