目录前言一、skills背景二、什么是skills三、Skill的核心特征四、Skill如何工作—— 渐进式披露的三层架构五、何时使用Agent Skill六、Skill 与其他模式的对比前言最近这半年skills这个名词非常火——无论是Claude Code Skills的爆火还是skills.sh平台的快速迭代都在说明这个东西貌似在agent领域是一个比较好用的东西我打算用两篇博客讲清楚什么是skills以及实际开发中我们如何开发一个基于skills范式的智能体这篇博客主要讲明白什么是skills让大家对skills有一个深刻的了解下一篇博客我们上实战一、skills背景在构建基于大模型LLM的Agent应用时我们常常面临一个核心矛盾如何让一个通用的Agent具备处理众多高度专业化、甚至相互独立的任务的能力传统的做法是将所有的知识、规则和工具一股脑地塞进Agent的系统提示词中。但这会带来几个致命问题上下文过载当你有几十个甚至上百个专业技能如财务分析、库存管理、法律审查时单个模型的上下文窗口根本装不下。能力冲突不同专业领域的指令如“SQL语法”与“法律条文格式”混在一起可能相互干扰降低Agent在单一任务上的表现。协作困难在大型组织中不同团队如销售部、法务部无法独立、高效地维护和更新属于自己领域的Agent知识。为了解决这个问题一种名为 Agent Skill 的架构模式应运而生。它借鉴了人类“在需要时学习”的理念成为构建可扩展、专业化Agent的关键技术。二、什么是skillsAgent Skill 是一种将专业能力封装为可被Agent按需“调用”的模块化单元。它本质上是一套基于提示词的专业化指令和上下文知识Agent在需要处理特定领域的任务时才动态地将其加载到自己的上下文窗口中。你可以把Agent Skill理解为对于Agent它是一个可以随时“翻看”的专业手册。当接到一个销售数据分析的任务时Agent会先去“书架”上取下《销售分析手册》翻开阅读里面的表结构、业务逻辑和示例查询然后再动手写SQL。对于开发者它是一个可以独立开发、测试和部署的能力插件。销售团队可以维护《销售分析Skill》库存团队维护《库存管理Skill》彼此解耦互不干扰。三、Skill的核心特征Skill的核心特征概括为以下几点特征描述带来的价值提示词驱动Skill的核心是专门编写的提示词包含特定领域的知识、规则、业务逻辑和示例。相比于用代码实现的复杂工具提示词驱动的Skill更轻量、更易编写和维护。渐进式披露Agent在初始时只知道Skill的名称和一句话描述其详细内容只有在被调用时才加载到上下文中。这是解决上下文过载的关键让Agent可以拥有无限的知识储备。团队自治不同的团队可以独立地为自己的业务领域开发和维护Skill。消除了跨团队协作的瓶颈实现了企业级Agent能力的规模化构建。轻量组合Skill相比于一个完整的、拥有自己对话历史的子Agent更为简单。Agent通过组合调用不同的Skill可以快速适应复杂多变的任务。资源感知Skill的提示词可以指向外部文件如脚本、模板、数据字典Agent在需要时会进一步读取这些资源。实现了更深层次的渐进式披露确保Agent只在必要时加载最详细的信息。四、Skill如何工作—— 渐进式披露的三层架构Skill的精髓在于其加载方式这种模式被称为“渐进式披露”Progressive Disclosure。它通常遵循一个三层架构第一层元数据轻量级内容每个Skill的名称和一句话描述例如“sales_analytics: 用于销售数据分析包含客户、订单和收入的表结构及业务逻辑”。时机这些信息被常驻在Agent的系统提示词中占用极少的上下文。作用让Agent知道它拥有哪些能力但暂不加载细节。第二层核心内容按需加载内容Skill的详细提示词包括具体的业务规则、表结构、操作流程等。时机当用户的问题明确指向某个领域时例如用户问“帮我写个SQL查一下上个月的销售冠军”Agent会识别出需要“销售分析”技能并通过调用一个特定的工具如load_skill来获取这个Skill的详细内容。作用此时Agent的上下文中才真正充满了处理当前任务所需的具体专业知识。第三层详细资源深度按需加载内容Skill中引用的更庞大的资源例如完整的数据库Schema文件、代码模板、或上百页的PDF文档。时机Agent在阅读了Skill的核心内容后如果发现还需要更底层的细节比如需要查看某个表的全部字段它可以再次通过工具调用来读取指定的文件或资源。作用确保Agent永远只加载“刚刚好”那么多的信息实现极致的上下文效率。五、何时使用Agent SkillSkill模式并非万能它最适合以下场景单一Agent多领域专家你希望用一个对话式Agent处理来自财务、销售、人力等不同部门的问题且各部门的知识体系相对独立。企业级知识库你需要为Agent接入大量文档如产品手册、合规政策这些文档可以按主题拆分为不同的Skill。需要团队协作不同的业务团队需要独立维护Agent在自己领域的知识。当你开始思考“如何添加下一个能力而不撑爆上下文”时这是采用Skill模式最明显的信号。六、Skill 与其他模式的对比为了更精准地理解Skill我们可以将其与另外两种常见模式进行对比Skill vs. 普通工具普通工具通常是一个函数用于执行一个动作如send_email calculate。Skill主要是一段提示词用于提供知识和上下文。它也可以关联工具但核心是“告诉Agent如何思考和理解”。例如sales_analytics Skill本身不执行SQL但它教会了Agent如何正确地写SQL。Skill vs. 子Agent子Agent拥有独立的模型调用、对话历史和工具集是一个完整的“下属”。Skill是依附于主Agent的“记忆卡”没有独立的推理循环更轻量、响应更快。
大模型开发手记(十二):langchain skills(上):讲清楚什么是skills,优势是什么
目录前言一、skills背景二、什么是skills三、Skill的核心特征四、Skill如何工作—— 渐进式披露的三层架构五、何时使用Agent Skill六、Skill 与其他模式的对比前言最近这半年skills这个名词非常火——无论是Claude Code Skills的爆火还是skills.sh平台的快速迭代都在说明这个东西貌似在agent领域是一个比较好用的东西我打算用两篇博客讲清楚什么是skills以及实际开发中我们如何开发一个基于skills范式的智能体这篇博客主要讲明白什么是skills让大家对skills有一个深刻的了解下一篇博客我们上实战一、skills背景在构建基于大模型LLM的Agent应用时我们常常面临一个核心矛盾如何让一个通用的Agent具备处理众多高度专业化、甚至相互独立的任务的能力传统的做法是将所有的知识、规则和工具一股脑地塞进Agent的系统提示词中。但这会带来几个致命问题上下文过载当你有几十个甚至上百个专业技能如财务分析、库存管理、法律审查时单个模型的上下文窗口根本装不下。能力冲突不同专业领域的指令如“SQL语法”与“法律条文格式”混在一起可能相互干扰降低Agent在单一任务上的表现。协作困难在大型组织中不同团队如销售部、法务部无法独立、高效地维护和更新属于自己领域的Agent知识。为了解决这个问题一种名为 Agent Skill 的架构模式应运而生。它借鉴了人类“在需要时学习”的理念成为构建可扩展、专业化Agent的关键技术。二、什么是skillsAgent Skill 是一种将专业能力封装为可被Agent按需“调用”的模块化单元。它本质上是一套基于提示词的专业化指令和上下文知识Agent在需要处理特定领域的任务时才动态地将其加载到自己的上下文窗口中。你可以把Agent Skill理解为对于Agent它是一个可以随时“翻看”的专业手册。当接到一个销售数据分析的任务时Agent会先去“书架”上取下《销售分析手册》翻开阅读里面的表结构、业务逻辑和示例查询然后再动手写SQL。对于开发者它是一个可以独立开发、测试和部署的能力插件。销售团队可以维护《销售分析Skill》库存团队维护《库存管理Skill》彼此解耦互不干扰。三、Skill的核心特征Skill的核心特征概括为以下几点特征描述带来的价值提示词驱动Skill的核心是专门编写的提示词包含特定领域的知识、规则、业务逻辑和示例。相比于用代码实现的复杂工具提示词驱动的Skill更轻量、更易编写和维护。渐进式披露Agent在初始时只知道Skill的名称和一句话描述其详细内容只有在被调用时才加载到上下文中。这是解决上下文过载的关键让Agent可以拥有无限的知识储备。团队自治不同的团队可以独立地为自己的业务领域开发和维护Skill。消除了跨团队协作的瓶颈实现了企业级Agent能力的规模化构建。轻量组合Skill相比于一个完整的、拥有自己对话历史的子Agent更为简单。Agent通过组合调用不同的Skill可以快速适应复杂多变的任务。资源感知Skill的提示词可以指向外部文件如脚本、模板、数据字典Agent在需要时会进一步读取这些资源。实现了更深层次的渐进式披露确保Agent只在必要时加载最详细的信息。四、Skill如何工作—— 渐进式披露的三层架构Skill的精髓在于其加载方式这种模式被称为“渐进式披露”Progressive Disclosure。它通常遵循一个三层架构第一层元数据轻量级内容每个Skill的名称和一句话描述例如“sales_analytics: 用于销售数据分析包含客户、订单和收入的表结构及业务逻辑”。时机这些信息被常驻在Agent的系统提示词中占用极少的上下文。作用让Agent知道它拥有哪些能力但暂不加载细节。第二层核心内容按需加载内容Skill的详细提示词包括具体的业务规则、表结构、操作流程等。时机当用户的问题明确指向某个领域时例如用户问“帮我写个SQL查一下上个月的销售冠军”Agent会识别出需要“销售分析”技能并通过调用一个特定的工具如load_skill来获取这个Skill的详细内容。作用此时Agent的上下文中才真正充满了处理当前任务所需的具体专业知识。第三层详细资源深度按需加载内容Skill中引用的更庞大的资源例如完整的数据库Schema文件、代码模板、或上百页的PDF文档。时机Agent在阅读了Skill的核心内容后如果发现还需要更底层的细节比如需要查看某个表的全部字段它可以再次通过工具调用来读取指定的文件或资源。作用确保Agent永远只加载“刚刚好”那么多的信息实现极致的上下文效率。五、何时使用Agent SkillSkill模式并非万能它最适合以下场景单一Agent多领域专家你希望用一个对话式Agent处理来自财务、销售、人力等不同部门的问题且各部门的知识体系相对独立。企业级知识库你需要为Agent接入大量文档如产品手册、合规政策这些文档可以按主题拆分为不同的Skill。需要团队协作不同的业务团队需要独立维护Agent在自己领域的知识。当你开始思考“如何添加下一个能力而不撑爆上下文”时这是采用Skill模式最明显的信号。六、Skill 与其他模式的对比为了更精准地理解Skill我们可以将其与另外两种常见模式进行对比Skill vs. 普通工具普通工具通常是一个函数用于执行一个动作如send_email calculate。Skill主要是一段提示词用于提供知识和上下文。它也可以关联工具但核心是“告诉Agent如何思考和理解”。例如sales_analytics Skill本身不执行SQL但它教会了Agent如何正确地写SQL。Skill vs. 子Agent子Agent拥有独立的模型调用、对话历史和工具集是一个完整的“下属”。Skill是依附于主Agent的“记忆卡”没有独立的推理循环更轻量、响应更快。