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.md2每个文件用来做什么主要讲下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 emailexample.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.md1、精准的description2、模块化与单一职责一个 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单个数据接口调用不建议skillskill有额外系统开销skill可以支持调mcp2.5 它与提示词有什么区别https://javaguide.cn/ai/agent/skills.html真放到 Agent 工程里看它们解决的问题不一样。Prompt 更像一次性的意图表达你让模型“帮我 Review 这段代码”这句话说完就进入当前会话后面换个项目、换个上下文很难稳定复用2.6 社区化Agent Skills 的另一个重要特性是社区化。Anthropic 建立了官方的 Skills 仓库官方技能库https://github.com/anthropics/skills03 一些落地场景探究例如金融领域常见问题对于多个场景下如何设计skill能够不太原子合适的设计理念是什么现有应用分析。可以参考学习妙想Skills妙想claw skill使用指南04 参考资料可以参考几个开源 Skillhttps://github.com/sanyuan0704/sanyuan-skills以代码审查为主覆盖架构设计、SOLID、安全、性能、异常和边界条件参考链接https://claude.com/blog/equipping-agents-for-the-real-world-with-agent-skillshttps://platform.claude.com/docs/en/agents-and-tools/agent-skills/overviewhttps://agentskills.io/homehttps://javaguide.cn/ai/agent/skills.htmlhttps://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra05-AgentSkills%E8%A7%A3%E8%AF%BB.md 重点参考