
浙江大学-阿里巴巴集团人工智能安全联合实验室专场
直播回顾
《追AI的人》&浙江大学-阿里巴巴集团人工智能安全联合实验室专场来咯
🌟往期分享:
王 晨 曦
目前就读于浙江大学软件工程专业,硕士二年级,研究方向是Agent、大语言模型、幻觉等。已在ICLR、ACL等顶级会议上发表论文若干。

"Agent"这一概念并非新词。早在人工智能发展初期,学术界就已开始探讨系统能否具备学习、与环境交互以及在任务空间中自主行动的能力。只是在过去,这些能力与普通用户之间存在较大距离。大语言模型出现以后,尤其是ChatGPT问世以来,以语言为内核的智能体变得更加灵活。最初人们熟悉的是聊天机器人,即用户提问、模型作答的模式,可以完成文章撰写、材料总结等个性化辅助任务。随后,以Manus为代表的通用智能体产品出现后,智能体已不仅限于回答问题,而是能够围绕一个目标拆解步骤、访问网页、处理文件、调用工具。再到OpenAI Operator、Hermes等更贴近端侧和生活场景的系统,智能体的能力边界进一步拓展。
这带来了更有意义的问题:如果一个Agent长期部署在用户的环境中,每天与用户交互,它是否会逐渐了解用户的行为模式,是否会越来越理解用户的需求。此时,Agent不再只是一个问答入口,而是开始演变为能够连接环境、执行任务、陪伴用户持续工作的系统。因此,从聊天机器人到通用智能体,再到个人生活助手,背后不仅是产品形态的变化,更体现了Agent从"会说"到"会做",再到"能否持续学习"的演进。

OpenAI Operator等产品的出现带来了一系列现象级效应。许多此前从未接触过智能体的普通用户,在这类产品出现后开始愿意尝试并使用。其之所以能够"出圈",不仅在于能够调用某个工具,更在于它开始具备接近持续学习系统的特征。这些特征可以归纳为三个关键词:主动、连接和记忆。"主动"即边界感知——Agent不只是被动回答,还需要判断何时该行动、何时该确认、何时该停止,一个任务是否在自身能力范围内,是否需要检索、调用代码或向用户确认。这些并非简单的生成问题,而是Agent对自身能力边界的判断,即"懂分寸"。

第二是"连接",即技能编排。Agent需要判断下一步是继续推理,还是调用外部能力。这涉及MCP、函数调用、工具使用,也包括微信、飞书、钉钉、操作系统、图形化界面、文件系统等真实环境中的能力。能否将这些能力有效组织起来,就是技能编排的核心问题。第三是"记忆演化"。这一概念容易被简单理解为保存聊天记录,但在真实任务中更为重要的是:哪些流程走通了、哪些操作有效、用户有哪些偏好、哪些失败经验需要避免。只有这些经验能够沉淀下来,Agent才可能越来越理解用户,而非每次都从零开始。
因此,我们重点关注第二个方向,即Skills。当Agent意识到自身知识不足时,它总是需要寻求外部帮助——可能是求助于人、调用工具,或者调用已有的技能。由此自然产生一组问题:这些技能到底是什么?它们从哪里来?又能否被有效组织起来,真正支撑Agent完成复杂任务?

智能体技能本质上是一种知识表示形式。Anthropic将其定义为包含结构化知识(如文本和可执行代码)的智能体能力模块。Agent需要先感知技能,然后基于技能提供的知识进行决策并执行行动,所得结果可进一步驱动技能的更新。然而,技能数量的增长并不必然带来Agent问题解决能力的提升。自去年以来,围绕Skill的资源和相关工作增长迅速,OpenAI、Anthropic以及众多社区项目都在开展类似工作,互联网上也持续涌现着各种脚本、Prompt工具、说明文档、工作流和技能包。

表面上看,资源日益丰富,Agent理应更容易解决问题。但实际情况并非如此。当Agent遇到一个问题并试图寻找能够帮助其完成任务的技能时,往往仍然找不到合适的技能;即使找到了,也不一定清楚该技能是否适合当前场景,是否能与其他技能组合,以及出现问题后能否追溯。换言之,技能资源虽然在增长,但这些资源尚未得到有效的组织、筛选和连接。

SkillsBench对Agent Skills在不同任务中的实际效果进行了系统分析。研究发现,并非所有技能都能提升模型性能。一个Skill即使看起来写得完整,也不代表它真正能够帮助Agent完成任务。尤其是让大模型临时生成的技能,很多时候并不能稳定带来收益,甚至会产生负向效果。真正有效的技能往往来自人类领域专长——做科研、写代码、分析数据、操作软件,每个领域都有各自的技巧和经验:先检查什么、何时调用哪个工具、哪些输出不可信、失败后如何回退。这些知识很难靠模型凭空生成,但在人类专家的真实项目、GitHub仓库和任务轨迹中大量存在。因此,问题不仅在于能否找到Skill,还在于找到的Skill是否有效、是否来自可靠经验、是否真正能够帮助Agent完成任务。

当Skill数量增多、质量参差不齐时,系统层面会衍生出两个新问题。第一个问题是技能结构的构建。面对一个真实业务问题时,到底应该使用几个技能——一个就够还是需要两三个组合?是每一步单独调用还是打包成一个技能包?技能的粒度应该如何界定?有的技能非常小,只解决一个工具调用;有的技能非常大,几乎将整个任务流程都包含在内。
如果缺乏结构化组织,Agent很难稳定判断当前任务应该使用什么技能。例如,一个科研任务可能需要先检索论文、再读取PDF、再提取表格、再进行总结、最后做可视化。每一步都可能对应不同的技能,它们之间是否存在依赖关系、是否存在前置要求、能否组合使用、冲突如何处理——这些问题都不能仅靠模型临场发挥来解决。
第二个问题是治理与审计。技能可能存在安全问题,也可能存在质量问题。Agent调用技能后出错时,不能仅关注最终答案的错误,还需要能够回溯定位:是选错了技能,还是技能本身不完整,还是某个工具调用出了问题。如果这一过程不可审计,就很难进行修复和监管。
因此,问题的核心不再只是收集更多技能,而是需要建立一套机制,将技能组织起来,使其至少能够被检索、被组合、被评估。技能组织和知识编排的目标在于解决模型上下文窗口有限、非结构化知识缺乏外部环境反馈以及幻觉等问题。本质上,这是将复杂任务表示为技能图上的有效组合优化问题,其核心价值在于如何降低复杂度,以及如何显式建模技能之间的依赖关系。

针对上述问题,我们提出了面向智能体技能图谱的知识库系统——SkillNet。SkillNet的核心理念可以概括为三个关键词:Create、Evaluate、Connect。

Create是将已有的Skill、GitHub项目文档、Prompt、任务轨迹等材料整理为标准化Skill。Evaluate是在入库时判断这些技能是否可用、是否可靠。Connect是在技能之间建立关系,并将相关技能组合成可直接使用的Package。评估维度包括安全性、完备性、执行适配性和效率。
其中,我们尤其强调安全性——Skill一旦进入Agent的执行链路,就可能涉及文件读写、工具调用、访问外部服务等操作,其风险比普通文本回答更为直接。如果一个Skill包含不安全的命令、权限边界不清晰,或者会诱导Agent执行危险操作,就不应被直接交付给Agent使用。当然,在安全性之外,技能是否完备、能否执行、在不同环境下能否适配、效率如何,也都会影响其能否稳定地帮助Agent完成任务。

SkillNet的整体设计分为三个维度。最上层是技能分类体系,将技能归入Development、AIGC、Research等功能域,再用更细粒度的标签描述具体能力,可以理解为整个技能库的语义骨架。中间层是Skill Relation Graph——SkillNet不仅将技能放入分类目录,还会建模技能之间的关系。论文中定义了几类核心关系:similar_to表示功能相似,可用于替换或去重;belong_to表示技能之间的包含关系;compose_with表示两个技能可以组合使用;depend_on表示当前技能执行所需的前置技能。
最下层是Skill Package Library,即技能包。一个任务可能用一个技能包就能完成,也可能需要多个技能组合使用。这样,技能就不再是孤立的文件,而是具备分类、关系和组合单元的一整套组织体系。

在技术实现上,SkillNet从GitHub、开源技能平台、Prompt文档、论文公开材料、用户轨迹等来源出发,通过模型提示工程等方式构建技能。其中部分来源本身就是已有的Skill,部分则不是(如GitHub文档或任务轨迹),后者需要通过Skill Create机制将其中的代码、流程和经验创建为新的Skill。
创建完成后,还需经过过滤和评估——并非将所有材料直接入库,而是通过规则和质量评估将明显重复、低质量或不合适的内容筛除,确保进入SkillNet的是相对干净、可供后续使用的技能。最后一步是建立技能之间的关联,包括哪些技能功能相似、哪些可以组合、哪些之间存在依赖关系。建立关联后,SkillNet才能支持后续的检索、下载、分析和贡献。这也是SkillNet这套流程的目标:让技能"找得到、连得起、跑得通"。

SkillNet已收集五十余万条技能,其中约46万条为精选技能。其特点可以概括为两点:第一,不仅收集技能本身,还支持关系构建和技能组合包生成,使技能之间能够相互连接;第二,基于五个维度进行自动评估,支持后续筛选、排序和推荐。我们也进行了人工抽样评估,从抽样结果来看,整体质量较为理想。左图展示了五个维度下的评估分布,右图展示了自动评估与人工标注之间的一致性。但由于技能规模庞大,仍有部分技能存在安全或质量问题——自动化评估难以精准覆盖所有风险,人工评估也只能进行抽样。目前大部分平台仍基于规则和LLM进行自动化评估。

SkillNet的主实验旨在验证:将过去任务轨迹中的经验沉淀为Skill后,能否切实提升Agent在多步任务中的表现。我们选取了三个典型环境:ALFWorld(家居具身任务)、VShop(在线购物任务)和ScienceWorld(虚拟科学实验室)。它们的共同特点是需要连续的观察、决策和行动。实验中,为每个基准构建了对应的Skill Collection,这些技能结合了已有的专家轨迹和高质量任务经验。构建阶段通过SkillNet Create机制,将轨迹中的过程性经验转化为可复用的Skill。评测时,系统会根据当前任务检索相关Skill,并将其作为执行指导接入任务执行过程。

我们评测了Reward和Steps两种指标。Reward反映任务完成质量的最终得分,Steps反映完成任务所需的交互步数——步数越少说明执行路径越短、试错越少。与ReAct、Excel等基线方法相比,引入SkillNet后,大部分模型和环境下的Reward更高,Steps也更少。整体而言,在模拟具身、科学推理等多类典型场景中,引用SkillNet技能后,任务表现相较基线提升约20%至40%。

此外,SkillNet已开始支持国产智能体系统。我们已将其接入华为九问Cloud,用户现可通过九问Cloud直接访问SkillNet。同时,我们的工作也获得了一些海外社区和社交媒体的关注与转发。

SkillNet提供了多个实际使用入口。首先是SkillNet技能网站,用户可通过关键词或向量相似度检索所需Skill,并查看每个技能的基本信息和评估结果。在Collection板块中,我们整理了一些现成的Skill Package——很多任务不是单个Skill能够完成的,可能需要七八个甚至十来个Skill配合使用。SkillNet会根据技能之间的依赖和组合关系,整理出可直接使用的Package,让用户无需每次从零开始查找。另外,我们开发了面向OpenAI Operator的Skill插件,可在执行任务前调用SkillNet接口检索合适的Skill,并在用户需要时将任务中的经验整理为新的Skill。

我们提供了两种调用SkillNet的工具:一种是搜索API,支持按类别、名称、描述和标签进行关键词或向量检索;另一种是开源的SkillNet CLI包,可作为Python库集成到项目中,也可通过命令行直接使用,支持搜索、下载、创建、评估和分析技能。此外,我们的方法还与SkillBench这一技能创建评估基准进行了对比,结果显示SkillNet具有一定程度的优势。我们还在开发自动编排功能,后续也可通过API进行调用。

SkillNet所需的Skill从何而来、如何构造?这里介绍SkillX——一项能够自动化构建技能库的工作。SkillX包含三个核心组件。第一个是三层Skill设计:最上层为Planning Skills,负责高层任务分解;中间层为Function Skills,负责可复用的工具组合;最下层为Atomic Skills,关注单个工具或API的使用细节。

此外还包括Skill Refinement和Skill Expansion两个核心组件。当Agent抽取三层Skill后,会先进入Skill Refinement阶段,即先合并相似的Skill,再进行严格的Skill Filter。除此之外,我们发现在已有任务上,许多训练任务并不能涵盖已有的经验模式。因此我们设置了Skill Expansion组件——SkillX会根据已有经验发现哪些工具尚未被使用,或哪些工具容易失败,并利用这些经验引导模型合成新的训练任务,让Agent继续探索。这样,技能库可以在"检索旧技能→执行新任务→抽取新技能→过滤合并→更新入库"的循环中持续扩展。

SkillNet的另一项应用在于沉淀行业知识——领域专家长期积累的隐性经验可以显式转化为Agent所需的技能,进而构建AI可学习的行业认知体系。接下来介绍SkillNet-Gen——如何动态评估Agent使用Skills的能力。回顾现有的评估智能体组织技能的基准,大多数仍为静态且依赖人工构建,如SkillsBench、SkillRunningBench、WildSkillsBench等,且往往仅关注Skill创建、组织或使用效果中的某一方面。因此,我们提出了SkillNet-Gen——一个动态评估Agent组织技能能力的基准。

我们首先从结构化视角重新审视了SkillNet。现有社区中的技能资源可分为三个层次:文档(技能可能来源的人类经验文档和代码库)、技能本身、以及文件(技能可操作的对象)。将这些资源收集并构建为异构知识图谱后,该图谱可持续从社区收集资源,评估任务可从SkillNet中采样子图并动态合成,进而驱动统一评估,包括技能创建和技能组织。

SkillNet-Gen的自动化数据合成流程主要包括四个步骤。第一步是异构SkillNet构建:从互联网收集三个层次的资源,以技能为中心构建技能关系。第二步是任务输入构建:为获得多样的任务风格,采用多种技能工作流拓扑结构。第三步是任务合成:基于采样的技能工作流,让智能体探索并得到探索报告,然后基于探索报告合成复杂且可验证的任务。第四步是质量控制:验证并过滤任务指令、解决方案和测试脚本,并进行人工交叉验证。
右图展示了一个合成的任务示例。我们采用子图并合成了生物相关但不同任务类型的复杂任务。最终获得了159个任务,涵盖13个核心领域及81个子领域(包括数据分析、生物工程等),同时涵盖1至5个不等的Skill数量、5种拓扑结构、1至4个不等的文件数量。此外,还按难度划分了Easy和Hard两个子集。


在评测结果方面,我们主要评估了技能创建和技能组织两个维度。在创建设定下,测试了无技能、使用官方技能、SkillCreator和SkillSeeker四种方式。在组织设定下,在包含2000个技能的庞大技能库中测试了模型检索与编排的完整效果,同时也测试了在这一场景下端到端的性能。实验结果表明:第一,技能对复杂任务效果更好——尤其在Hard子集上,相比No Skill的提升比Easy子集更为明显。第二,仅通过一次性压缩文档来创建技能会导致一定程度的信息损失。第三,智能体在面对真实庞大技能库时,组织效果会更差——尤其在端到端场景下测试时,部分Agent的效果甚至低于No Skill基线。

我们还深入分析了使用技能与不使用技能在失败案例中的具体原因。研究发现,人工构建技能导致的错误以及技能与指令遵循的冲突占据了较大比重。其中,人工构建技能的错误包括参数误设、工具误用、工作区范围泄露和预算耗尽等,这表明技能要真正落地到Agent中,需要一个模型自适应的过程——人类专家编写的技能并非一定适用于Agent。技能与指令遵循的冲突则包括输出格式偏移、预处理遗漏和模板遗留错误等,这表明当前基础模型需要在技能遵循和指令遵循之间取得更好的平衡。

总结而言,SkillNet致力于构建面向智能体的技能基础设施,使技能"找得到、连得起、跑得通",并且可构建、可评测、可复用。SkillNet-Gen在SkillNet的基础上持续动态构建评测任务,超越了以往静态及人工构建的基准。具体而言,SkillNet自动构建技能及其关系结构,刻画技能之间的依赖、组合与调用逻辑,形成可复用的技能图谱。SkillNet-Gen则提出了从持续增长的SkillNet中动态构建评测任务的方法,统一评估智能体在技能创建和技能组织方面的能力。


📌往期推荐








AAIG课代表,获取最新动态就找她👇
关注公众号发现更多干货❤️


内容中包含的图片若涉及版权问题,请及时与我们联系删除




评论
沙发等你来抢