Agent Skill,什么把它推到了前方
01 背景
从上一篇介绍MCP的内容我们可以了解到,MCP让智能体与外部工具的连接更加标准化,智能体能够更加高效、广泛地连接外部数据信息。
但是有几个核心问题很难避免。
其一,上下文爆炸。为了智能体查询的灵活性,MCP服务器通常会提供丰富的调用工具,其json schema会被载入系统提示词中,在每轮问答都会成为沉重的token负担,导致模型计算成本飙升、推理能力下降。
其二,通用智能体领域能力不足,能力复用与扩展难。模型通过工具拿到数据后,还需要知道如何使用以正确回应用户的需求。虽然可以通过写智能体的提示词来实现特定领域、特定场景的需求,但一方面智能体零碎分散在各个场景中,难以推进建立一套统一的提示词内容规范,另一方面,正因为难以形成规范,也就更加难以进行复用,对于不同场景的相似部分只能重写,也难以快速进行功能扩展迭代。
为此,Anthropic 于2025 年 10 月 16 日推出Agent Skills;同年 12 月 18 日将其定为开放标准,支持跨平台复用。
备注:本文标记引用的部分来源是文末的参考资料。
02 基本概念
Agent Skills 是一种标准化的程序性知识封装格式。
为了解决上述两个问题,agent skills做了什么。
2.1 渐进式披露机制(除了分层,应该还有其他优化?)
首先,为了缓解上下文爆炸问题,提出渐进式披露的方案,这是agent skills最核心的创新(过去的方法会把信息一次性提供给模型)。

第一层:元数据(Metadata)
在 Skills 的设计中,每个技能都存放在一个独立的文件夹中,核心是一个名为
SKILL.md的 Markdown 文件。这个文件必须以 YAML 格式的 Frontmatter 开头,定义技能的基本信息。当智能体启动时,它会扫描所有已安装的技能文件夹,仅读取每个
SKILL.md的 Frontmatter 部分,将这些元数据加载到系统提示词中。
例如:会读取SKILL.md的下方部分
第二层:技能主体(Instructions)
当智能体通过分析用户请求,判断某个技能与当前任务高度相关时,它会进入第二层加载。此时,智能体会读取该技能的完整
SKILL.md文件内容,将详细的指令、注意事项、示例等加载到上下文中。此时,智能体获得了完成任务所需的全部上下文:数据库结构、查询模式、注意事项等。这部分内容的 token 消耗取决于指令的复杂度,通常在 1,000 到 5,000 个 token 之间。
在上一层筛选到合适的SKILL之后,会读取完整的SKILL.md的内容
第三层:附加资源(Scripts & References)
对于更复杂的技能,
SKILL.md可以引用同一文件夹下的其他文件:脚本、配置文件、参考文档等。智能体仅在需要时才加载这些资源。
附加资源是SKILL.md之外的其他文件(如果在md中提及到)
一个例子:
整体的流程链路:
放在一个真实链路里,大概是这样:
用户提出任务。
宿主把可用 Skills 的简短描述放进上下文。
模型判断当前任务命中了某个 Skill。
宿主再把完整
SKILL.md加载进来。模型按照 Skill 里的流程去调工具、读资料、写结果。
2.2 agent skills的常规格式
(1)文件夹怎么放
例子:https://github.com/sanyuan0704/sanyuan-skills
会把所有的技能按文件夹存放
每个技能一般包含以下内容,其中最核心的是SKILL.md

(2)每个文件用来做什么
主要讲下SKILL.md,一般该文件里会写什么呢?引用一下https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra05-AgentSkills%E8%A7%A3%E8%AF%BB.md
---
# === 必需字段 ===
name: skill-name
# 技能的唯一标识符,使用 kebab-case 命名
description: >
简洁但精确的描述,说明:
1. 这个技能做什么
2. 什么时候应该使用它
3. 它的核心价值是什么
# 注意:description 是智能体选择技能的唯一依据,必须写清楚!
# === 可选字段 ===
version: 1.0.0
# 语义化版本号
allowed_tools: [tool1, tool2]
# 此技能可以调用的工具列表(白名单)
required_context: [context_item1]
# 此技能需要的上下文信息
license: MIT
# 许可协议
author: Your Name <email@example.com>
# 作者信息
tags: [database, analysis, sql]
# 便于分类和搜索的标签
---
# 技能标题
## 概述
(对技能的详细介绍,包括使用场景、技术背景等)
## 前置条件
(使用此技能需要的环境配置、依赖项等)
## 工作流程
(详细的步骤说明,告诉智能体如何执行任务)
## 最佳实践
(经验总结、注意事项、常见陷阱等)
## 示例
(具体的使用案例,帮助智能体理解)
## 故障排查
(常见问题和解决方案)
一个例子:
预览模式下还是挺清晰的
2.3 agent skills的撰写经验技巧
skills的使用方法是一个非常非常重要的部分,也有很多经验积累,可以重点总结,以及加上案例分析
可以看看有什么写skills的工具
优秀的skill应该是什么样的
参考https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra05-AgentSkills%E8%A7%A3%E8%AF%BB.md
1、精准的description

2、模块化与单一职责
一个 Skill 应该专注于一个明确的领域或任务类型。
3、确定性优先原则
对于复杂的、需要精确执行的任务,优先使用脚本而不是依赖 LLM 生成。例如,在数据导出场景中,与其让 LLM 生成 Excel 二进制内容(容易出错),不如编写一个专门的脚本来处理这个任务,SKILL.md 中只需要指导智能体何时调用这个脚本即可
4、合理利用三层结构,将信息按重要性和使用频率分层:
-
SKILL.md 主体:放置核心工作流、常用模式
-
附加文档(如
advanced.md):放置高级用法、边缘情况 -
数据文件:放置大型参考数据,通过脚本按需查询
2.4 它与mcp和Function Calling关系是什么
综合各方观点,我们认为:Skills 和 MCP 代表了智能体架构中两个必然分离的层级。随着智能体系统的复杂度增加,这种分层是不可避免的:
这与传统软件架构的演进路径完全一致(从单体到分层到微服务),只是在 AI 领域重新演绎了一遍。
应用层(Application Layer)
↓ Agent Skills
↓ 领域知识、工作流、最佳实践
传输层(Transport Layer)
↓ MCP
↓ 标准化接口、工具调用、资源访问
基础设施层(Infrastructure Layer)
↓ 数据库、API、文件系统、外部服务
使用mcp:只涉及数据调用,没有复杂的多步骤逻辑加工
使用skill:具有业务流程SOP(单个数据接口调用不建议skill,skill有额外系统开销),skill可以支持调mcp
2.5 它与提示词有什么区别
https://javaguide.cn/ai/agent/skills.html
真放到 Agent 工程里看,它们解决的问题不一样。Prompt 更像一次性的意图表达,你让模型“帮我 Review 这段代码”,这句话说完就进入当前会话,后面换个项目、换个上下文,很难稳定复用
2.6 社区化
Agent Skills 的另一个重要特性是社区化。Anthropic 建立了官方的 Skills 仓库
官方技能库:https://github.com/anthropics/skills
03 一些落地场景探究(例如金融领域)
常见问题:对于多个场景下,如何设计skill,能够不太原子,合适的设计理念是什么,现有应用分析。可以参考学习妙想Skills
04 参考资料
可以参考几个开源 Skill:
https://github.com/sanyuan0704/sanyuan-skills
以代码审查为主,覆盖架构设计、SOLID、安全、性能、异常和边界条件
参考链接:
-
https://claude.com/blog/equipping-agents-for-the-real-world-with-agent-skills
-
https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview
-
https://agentskills.io/home
-
https://javaguide.cn/ai/agent/skills.html
-
https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra05-AgentSkills%E8%A7%A3%E8%AF%BB.md (重点参考)
更多推荐


所有评论(0)