Agent Skill深度拆解:原理+各大主流Agent实现,一篇看懂

发布时间:2026/5/20 1:42:35

Agent Skill深度拆解:原理+各大主流Agent实现,一篇看懂 什么是Agent SKILL最近似乎无论走到哪里都能听到一个词——“Skill”。随着“龙虾”的火爆出圈这个早在去年10月就备受讨论的“新概念”再度冲上热搜。其实早在2025年4月谷歌推出A2AAgent-to-Agent协议时“Agent Skill”的雏形便已出现但真正让它从概念走向行业规范是在25年10月Claude Code发布“Agents Skill”功能之后。如今它已演变为各大Agent开发厂商共同遵守的标准协议。优点一次构建多个产品使用目前已经作为事实标准被各个Agent产品使用例如cursor、codex等可用于企业内部专业知识沉淀知识转化成的skill文件夹具备版本控制和多平台移植能力。开箱即用通过技能扩展机制用户可即时为智能体拓展新功能。工作流标准化将多步骤任务转化为可重复执行、可审计的标准化工作流。文件夹结构核心结构简单直接每个技能本质上是一个包含SKILL.md文件的文件夹。该文件至少包含技能元数据名称与描述和执行指导用于告知智能体如何完成特定任务。技能文件夹还可集成配套的脚本、模板和参考资料形成完整的能力封装包。my-skill/ ├── SKILL.md # 必须: instructions metadata ├── scripts/ # 可选: executable code ├── references/ # 可选: documentation └── assets/ # 可选: templates, resources等静态文件工作机制技能采用渐进式上下文加载机制以实现高效的上下文管理发现启动时智能体仅加载每个可用技能的元数据名称与描述初步建立任务匹配索引。激活当任务需求与技能描述匹配时智能体将完整SKILL.md执行指令载入上下文环境。执行智能体遵循指令执行任务并可根据需要加载引用的资源文件或运行内置代码。SKILL.md详细规范--- name: pdf-processing description: Extract text and tables from PDF files, fill forms, merge documents. license: Apache-2.0 metadata: author: example-org version: 1.0 --- ......字段名必填约束条件name是最多64个字符仅允许小写字母、数字、-服务。不得以连字符开头或结尾。description是最多1024个字符不可为空。描述该技能的功能及适用场景。license否证书类型。compatibility否最多500个字符。声明环境要求目标产品、系统依赖包、网络访问权限等。metadata否用于存储附加元数据的任意键值对映射。allowed-tools否以空格分隔的预批准工具列表表示该技能允许调用的工具。实验性功能命名规范✅notion-project-setup❌Notion_Project_SetupSKILL架构这张图揭示了 SKILL 架构最关键的一点元数据在上下文内容在文件系统。Agent 上下文 → 只有 skill 的 name description轻量Agent 虚拟机文件系统 → 完整的 SKILL.md 参考文档 脚本按需读取开源Agent框架实现这里参考了几个开源的Agent项目中如何支持agentskill协议DeepAgents基于 LangGraph 的 Agent Builder 项目通过AgentMiddleware支持 SKILL利用文件工具、代码执行工具加载 SKILL 内容并执行脚本。工作流程核心组件Loader负责加载本地 Agent SKILL 文件。SkillsMiddleware基于 LangChain 的AgentMiddleware实现提供钩子能力before_agent将 SKILL 列表注入 Agent 状态字典wrap_model_call在system_prompt中注入所有 SKILL 描述和本地路径Agent基于create_agent创建封装中间件FilesystemMiddleware注入文件处理、Shell 指令等工具SkillsMiddleware配合 FilesystemMiddleware 实现 SKILL 加载特点支持项目目录与 Agent 目录两级 SKILL 优先级加载通过元工具文件读取、命令执行处理资源读取和脚本执行不做额外封装agent-framework微软开源的 Python Agent 框架通过SkillsProvider继承自 Context Provider在模型调用前后添加钩子函数。工作流程1. 接入SKILL# 先创建provider skills_provider SkillsProvider( skill_pathsPath(__file__).parent / skills ) # 创建agent, 将skills provider传入 agent AzureOpenAIChatClient(credentialAzureCliCredential()).as_agent( nameSkillsAgent, instructionsYou are a helpful assistant., context_providers[skills_provider], )2. 模型调用前注入SKILL相关元数据在before_run中将 SKILL 选择提示词注入system_prompt并新增两个工具SKILL 选择提示词DEFAULT_SKILLS_INSTRUCTION_PROMPT \ You have access to skills containing domain-specific knowledge and capabilities. Each skill provides specialized instructions, reference documents, and assets for specific tasks. available_skills {skills} /available_skills When a task aligns with a skills domain, follow these steps in exact order: 1. Use load_skill to retrieve the skills instructions. 2. Follow the provided guidance. 3. Use read_skill_resource to read any referenced resources, using the name exactly as listed (e.g. style-guide not style-guide.md, references/FAQ.md not FAQ.md). Only load what is needed, when it is needed.工具load_skill加载指定 SKILLread_skill_resource加载 SKILL 关联的资源文件特点支持通过代码自定义SKILL对象不局限于 SKILL 目录将SKILL.md外的文件称为resource可自动注入利用 Function Calling 分别加载SKILL.md和指定资源不支持脚本执行AgnoAgno项目在Agent中扩展了skills属性使用上需要传入skill load对象工作方式from agno.skills import SKILLs, LocalSKILLs # 1. 创建 SKILLs 协调器指定加载器 skills SKILLs( loaders[ LocalSKILLs(/path/to/shared-skills), LocalSKILLs(/path/to/project-skills), ] ) agent Agent( modelOpenAIChat(idgpt-4o), skillsskills )新定义的SKILLs对象中提供了系统提示词的注入以及读取skill的多个工具get_skill_instructions加载skill.mdget_skill_reference除skill.md外其他关联文件get_skill_script执行script文件特点只支持本地目录下的skill加载在合并的pr里有一段基于db方式加载skill的实现但没进主分支。将目录下SKILL.md以外的其他文件读取以及script执行。pydantic-ai-skills基于pydantic-ai开发的skills支持扩展包pydantic官方认可出于架构考虑没有合并到主仓库而是以可选依赖方式提供。实现方式还是将skill的元数据加载、详情加载等方式作为Agent的工具集。工作方式在pydantic-aiAgen通过导入SKILLsToolset创建基于SKILL的工具集使用方式如下from pydantic_ai import Agent, SKILLsToolset # Default: uses ./skills directory agent Agent( modelopenai:gpt-5.2, instructionsYou are a helpful assistant., toolsets[SKILLsToolset()] )将 SKILL 分为三类对象元数据来自SKILL.mdresourceSKILL 目录下其他可解析文件scriptscripts/下的 Python 脚本SKILLsToolset提供四个工具list_skills获取所有 SKILL 元数据load_skill获取 SKILL 详情read_skill_resource读取资源文件run_skill_script执行 Python 脚本本地执行无沙箱特点支持本地目录和代码自定义 SKILL、Resource、Script利用 Tool Calling 分别加载SKILL资源和执行Script支持 Python 脚本执行但无沙箱环境开源实现总结1. SKILL加载方式多种当前开源实现中SKILL加载方式呈现多样化趋势基本都支持本地文件加载部分框架已实现基于代码定义、DB查询等方式的SKILL加载能力。2. SKILL注入机制SKILL注入普遍采用各自框架的Hook机制在模型调用前将全部SKILL元数据注入系统提示词中实现动态加载与上下文增强。3. SKILL文件处理方式SKILL相关文件的读取与执行主流做法是封装为独立的Tool Call工具进行处理。少数实现采用“元工具”形式直接提供文件读取、脚本执行等基础工具支持为SKILL运行提供底层能力。SKILL 实践规范SKILL 辅助生成Anthropic 官方提供 SKILL 生成工具支持通过自然语言创建完整的 SKILL 项目并具备技能审查、对话式改进等功能。下载地址实践指南1. 何时使用 SKILL使用 SKILL 的前提是“离开 SKILL当前模型不知道该怎么做”。适用场景包括模型未知的领域知识内部流程、私有术语、行业判断标准复杂工作流指导多步骤决策逻辑需复用增强工具调用能力指导如何组合使用工具2. 明确技能价值编写 SKILL 前先确定 2-3 个具体用例清晰描述完整流程。优秀示例项目 Sprint 规划触发条件“帮我规划这个 sprint” 或 “创建 sprint 任务”执行步骤从 Linear 获取当前项目状态通过 MCP评估团队交付能力和可用资源提供任务优先级建议在 Linear 中创建带标签和估时的任务最终结果完成 sprint 规划并创建任务关键思考用户目标是什么需要哪些多步骤工作流需要哪些工具支持应嵌入哪些领域知识和最佳实践3. 编写原则原子化设计一个 SKILL 只做一件事避免万能工具主文件精简SKILL.md保持简洁建议 500 行以内详细文档放在references/按需加载有效的技能说明采用[功能说明] [使用时机] [关键能力]结构明确能力边界,示例description: 分析 Figma 设计文件并生成开发者交接文档。当用户上传 .fig 文件、询问设计规格或设计转代码交接时使用。从简入手先用 Markdown 指令跑通骨架再逐步引入脚本与复杂逻辑自动化优先避免在流程中嵌入复杂人机交互以免干扰 Agent 交互控制4. 定义 SKILL 评估标准触发率SKILL 加载触发频率工具调用效率在 n 次工具调用内完成工作流稳定性多次运行同一任务结果一致性SKILL 现状与问题现状Agent Skill 从2025年10月正式发布到12月成为跨平台开放标准不到5个月内完成了从Claude专属功能到行业基础设施的跨越微软、OpenAI等主流平台相继跟进当前生态扩散势头强劲。截至2026年3月单统计一个网站 Agent Skill 数量已突破42万来源https://skillsmp.com/。但数量爆炸的背后安全治理严重滞后——仅 ClawHub 一个平台就发现7.1%的 Skill 存在 API 密钥泄露风险治理体系的缺失已成为生态最大隐患。当前存在的问题安全审核SKILL越复杂带来的安全风险越大公开的SKILL存在着prompt注入风险缺乏版本管理更新 SKILL 需手动保留旧版快照无内置版本控制资源文件加载不稳定渐进式披露设计下资源加载依赖 Agent 自行判断多轮交互增加风险脚本执行需隔离依赖基础设施提供沙箱环境隔离执行可优化方向1. 服务加载 SKILL遵循标准 SKILL 规范既支持本地 SKILL 目录加载以便调试也支持远程调用获取 SKILL并在服务启动时加载至内存。2. Agent 加载 SKILLSKILL 选择机制参考 DeepAgents采用中间件方式将技能集成至 Agent。SKILL 脚本扩展Tool Calling开源 SKILL 中的脚本通常为 Python 脚本需沙箱执行支持通过Restful API 或 MCP 协议调用三方服务。要求SKILL 中明确声明所依赖的外部工具并提供JSON Schema格式声明文件Agent 自动加载转换为大模型Tool Calling格式供模型决策。优势将脚本执行转化为工具调用形式提升决策与执行稳定性。**SKILL 工具封装**参考多数项目设计对 SKILL 文件进行独立工具封装以 Tool Calling 形式提供读取主文件SKILL.md读取资源文件符合规范中支持的类型学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

相关新闻