![]()
这项由MemTensor(上海)科技公司开发的研究成果以预印本形式发布于2026年5月18日,论文编号为arXiv:2605.18401,感兴趣的读者可通过该编号在arXiv平台查阅完整原文。
你有没有想过,一个每天帮你处理各种任务的AI助手,如果能把每次解决问题的经验都记下来,下次遇到类似情况时直接调用,会有多厉害?这正是SkillsVote这项研究想要解决的核心问题。
一、当AI助手学会"积累经验"
假设你在一家餐厅工作,每次做新菜之前,你都需要从零开始摸索——哪些食材搭配好,火候怎么控制,调料比例是多少。而如果餐厅有一本完善的食谱手册,记录了历次烹饪的成功经验,你只需要翻开对应页面,就能站在前人的肩膀上,做出更好的菜。这本手册,就是SkillsVote研究中所说的"Agent Skills"(智能体技能库)。
现代AI智能体在执行任务时,会产生大量的操作轨迹——它调用了哪些工具、遇到了什么障碍、最终如何解决问题。这些轨迹就像厨师的烹饪记录,蕴含着宝贵的经验。然而,原始的操作轨迹太过杂乱,就像一堆未整理的备忘纸条,直接拿来用反而会让人更困惑。SkillsVote的核心思路,就是把这些杂乱的纸条,系统性地整理成一本可以持续更新、随时查阅的专业食谱手册。
MemTensor团队发现,现有的AI技能生态系统已经达到了相当规模,GitHub上已经有数以百万计的技能文件,但这些技能良莠不齐——有的内容过时,有的描述模糊,有的根本无法在实际环境中运行。更麻烦的是,如果不加甄别地把这些技能塞给AI助手,反而会让它更容易出错。于是,这支团队提出了一套完整的"技能生命周期管理"方案,涵盖从技能的收集、筛选、推荐,到执行后的归因分析和受控进化,形成一个闭环的管理体系。
二、一个由百万技能组成的"食谱库"
这套管理体系的起点,是构建一个高质量的技能素材库。MemTensor团队从GitHub上搜集了超过百万个技能文件,每个技能都以一个标准化的目录包形式存在:核心文档SKILL.md定义了该技能的用途和使用方法,可选的scripts/目录存放可执行代码,references/目录存放参考文档,assets/目录存放模板资源。
然而,数量庞大并不等于质量可靠。就像你去图书馆找食谱,光靠书名并不能判断这道菜是否好吃,更无法确认食谱上的食材在你家附近超市能不能买到。MemTensor团队为每个技能建立了三个维度的档案分析。
第一个维度是"运行环境档案",相当于检查食谱所需的厨具和食材是否齐备:这个技能需要什么操作系统?是否需要管理员权限?需要哪些命令行工具或API密钥?能否联网?这些都被一一记录在案。第二个维度是"质量档案",评估这个技能是否描述清晰、内容完整、具有实际操作价值——毕竟,一份食谱如果写着"适量盐"却不告诉你大概是多少克,实用性就大打折扣。第三个维度是"可验证性档案",判断这个技能的效果能否被客观衡量,是否能在沙盒环境中重现,能否基于它构建可以自动评分的测试任务。
对于通过了可验证性筛选的技能,研究团队还会进一步合成真实的测试任务,让真实的AI模型在这些任务上运行,记录成功率、执行轨迹和各种细节。这样,一个静态的技能描述就被赋予了"真实执行数据"的背书,不再只是纸面上的说明书。
三、在正式开工之前,先查一遍食谱
有了这个经过严格筛选的技能库,下一步就是在AI助手执行任务之前,帮它找到最相关的技能参考。这个过程被称为"技能推荐",听起来简单,实际上大有讲究。
传统做法就像去图书馆,把书名和简介全部打印出来交给厨师看,然后让厨师自己判断哪本食谱有用。SkillsVote采用了一种更聪明的方式:在AI助手正式开始做任务之前,先派出一个专门负责查阅食谱的"侦察员"。这个侦察员不负责做菜,只负责翻阅技能库,它会用各种关键词搜索相关技能文件,仔细阅读候选技能的内容,然后挑选出最相关、最互补、最适合当前任务环境的一小组技能,并生成一份简洁的使用指导,交给负责执行任务的AI助手参考。
这种设计背后有一个重要发现:技能库越大,覆盖面越广,但也越容易引入干扰。如果把几十个相关程度参差不齐的技能全部塞给AI助手,它反而可能被误导,选择错误的操作路径。就像你给厨师一次性摆出五十本食谱,让他在做菜的同时翻阅参考,结果往往是手忙脚乱、顾此失彼。相比之下,精心挑选出三到五本最相关的食谱,再加上一份简单说明哪道菜参考哪本书,才是真正有帮助的方式。
这个推荐侦察员会使用类似于直接浏览文件系统的方式来搜索技能库——先列出所有技能目录,然后用关键词搜索文件内容,再有选择性地打开候选技能的详细文档阅读。这与传统的"语义相似度匹配"不同,后者只是把任务描述和技能描述做文字层面的相似度比较,而前者更像一个真正的研究员在认真查阅文献,理解内容后再做判断。
四、任务结束之后,复盘这道菜做得怎么样
有了好的食谱参考,AI助手开始执行任务,这个过程中它的每一步操作都被记录下来,形成一条完整的执行轨迹。任务结束之后,SkillsVote不会简单地记录一个"成功"或"失败"的结论,而是进行深入的归因分析——就像一个认真的厨师在做完一道菜后,复盘每个环节的得失。
这里有个关键的设计挑战:操作轨迹通常非常长,包含数十甚至数百个步骤,有的步骤是按照食谱操作的,有的是厨师自己发挥创意的,有的遇到了意外情况临时调整的,有的步骤成功了,有的则失败了。如果把整条轨迹都打包成一个学习单元,就很难说清楚到底是哪个步骤带来了最终的成功或失败,也就无法有针对性地更新食谱。
SkillsVote的解决方案是把轨迹分解成一个个"子任务"——每个子任务有且只有一个独立的目标、一种主要的判断标准、以及最多一个关联技能的上下文。这就像把一顿复杂的宴席分解成前菜、主菜、甜品等独立环节,每个环节单独评分,而不是给整顿饭打一个笼统的分数。
对于每个子任务,SkillsVote会从三个角度进行分析。第一个角度是"结果证据":这个子任务的成功或失败是否有客观的环境反馈来支撑?比如代码能不能运行、测试能不能通过——这类有明确对错的情况,和那些依赖主观判断的情况(比如页面设计好不好看)需要区别对待。第二个角度是"责任归属":这个子任务的成功,主要是因为参考了技能库中的某个技能,还是AI助手自己摸索出来的,亦或是遇到了环境问题导致失败与技能无关?明确了责任归属,才能知道该把学到的经验记到哪本食谱上,或者创建一本新食谱。第三个角度是"可复用的发现":在这个子任务中,AI助手发现了什么之前食谱没有记载的有用知识?比如原来食谱说"直接运行命令",但实际操作时发现需要先启动一个依赖服务——这种具有普遍指导意义的发现,才值得被提取出来更新食谱。
五、只有经过验证的经验,才能进入食谱
完成了细粒度的归因分析之后,SkillsVote进入最关键的"受控进化"阶段——决定哪些经验值得被永久地写进技能库,哪些应该被丢弃。
这里有一道严格的准入门槛,只有同时满足两个条件的子任务才能触发技能库的更新:子任务必须最终成功,而且必须包含可复用的新发现。失败的尝试、无法客观判断结果的任务、或者虽然成功但没有产生新知识的操作,都不会被写进食谱。这就像餐厅的菜品研发——只有经过多次测试、确认稳定可行的创新做法,才会被正式加入菜单,实验性的尝试和失败案例只作为内部参考,不对外发布。
通过准入筛选后,这些经验还需要经历一个聚合步骤:如果多个不同任务中都发现了同一个技巧——比如在部署Web服务时,多次遇到了需要先检查端口占用情况的情形——这些重复的发现会被合并成一条更新建议,而不是在食谱上重复添加同样的内容。这防止了经验库变得冗余臃肿。
最后是路由决策:这条新经验应该被添加到某个现有技能的食谱中,还是应该独立建立一本新食谱?如果新发现属于某个已有技能的覆盖范围——比如Apache服务器配置技能中缺少了某个重要的验证步骤——就对那个技能进行最小化的修改,只改需要改的地方,不改其他内容。如果新发现涉及一个全新的能力领域——比如在执行Web部署任务时,顺带探索出了一套Git钩子自动发布的方法——那就应该独立创建一个新的技能文件。当证据不够充分、或者新发现与现有技能的边界存在歧义时,系统会选择跳过,不做任何修改,宁缺毋滥。
六、实验结果:这套方法真的管用吗
为了验证这套技能生命周期管理方案的实际效果,MemTensor团队在两个公认的难度较高的AI评测平台上进行了测试:Terminal-Bench 2.0和SWE-Bench Pro。
Terminal-Bench 2.0包含89个真实世界的终端操作任务,考验AI助手在命令行环境中处理复杂问题的能力。SWE-Bench Pro则包含来自11个真实代码仓库的731个软件工程任务,是评估AI编程能力的硬核测试。
实验设计了三种主要场景:第一种叫"无技能基准",AI助手不参考任何技能库,凭借自身能力完成任务,这是衡量改进幅度的基准线。第二种叫"在线进化",从空白技能库出发,AI助手一边完成任务一边积累经验,每完成若干任务就更新一次技能库,然后继续使用更新后的技能库执行后续任务。第三种叫"离线进化",先用一批历史任务(Terminal-Bench Pro的48个任务)训练出一个技能库,然后把这个"冻结"的技能库迁移到完全不同的新任务集(Terminal-Bench 2.0)上使用,测试技能的迁移泛化能力。
测试结果相当令人瞩目。在Terminal-Bench 2.0上,离线进化方案让GPT-5.2的准确率从51.0%提升到了58.9%,整整提升了7.9个百分点;GPT-5.4 mini也从51.7%提升到了57.5%,提升了5.8个百分点。在线进化方案的提升幅度相对较小但同样稳定,GPT-5.2提升了2.7个百分点,GPT-5.4 mini提升了1.1个百分点。在SWE-Bench Pro上,在线进化方案让GPT-5.2的解题率从47.6%提升到了50.2%,提升了2.6个百分点,GPT-5.4 mini也提升了2.1个百分点。这些提升完全来自技能库的外部辅助,AI模型本身的参数没有做任何调整。
七、为什么推荐筛选至关重要
实验中有一个细节发现尤其值得关注:技能库的存在并不总是有益的,如果不加筛选地把所有相关技能都丢给AI助手,反而可能让它表现变差。
研究团队专门针对Terminal-Bench 2.0中的"困难任务"子集做了推荐功能的消融实验("消融实验"的意思就是:把某个功能去掉,看看系统表现如何变化,从而判断这个功能的贡献)。结果显示,当在线积累的技能库不经过推荐筛选、直接全部暴露给AI助手时,任务层面的表现下降明显多于提升,平均得分相对基准的变化是"提升3.3%"对"下降6.7%"——也就是说,有益影响被有害影响抵消后,整体上还是拖累了AI助手。而加入推荐筛选之后,这种负面效应消失了,变成了"提升6.0%"对"下降6.0%"的均衡状态。
这说明推荐筛选扮演的核心角色是一个"噪音过滤器":在技能库内容还不够成熟的早期阶段,推荐模块的主要价值不是帮AI助手找到好的技能参考,而是帮它避开那些描述不准确、或者与当前任务不够相关的技能干扰。随着技能库通过离线进化变得更加成熟可靠,推荐筛选的正面贡献也随之增强——在离线进化设置下,没有推荐筛选时的平均贡献是"提升11.3%"对"下降3.3%",而加入推荐筛选后变成了"提升15.3%"对"下降2.0%",进一步提升了技能的正面价值,同时压缩了负面影响。
八、离线进化:让经验跨越任务界限传播
另一个值得深入理解的发现,是离线进化展现出来的"知识迁移"能力。MemTensor团队用来训练技能库的48个历史任务,和最终被测试的89个Terminal-Bench 2.0任务,是完全不同的任务集。训练技能库的任务不是专门为了提高测试任务的分数而设计的,它只是提供了一批真实的操作经验。
从实验中技能库增长的曲线来看,随着处理更多历史任务,技能库在来源任务集上的表现并不是单调上升的——有时甚至会下降,这说明系统并不是在"记住"历史任务的答案。真正重要的是:在来源任务上表现波动的同时,这个技能库被迁移到新任务集上使用时,却展现出了越来越好的表现。
论文中通过一个具体案例展示了这种知识迁移的本质。在训练阶段,AI助手处理了一批关于配置Apache Web服务器的任务,从中学到了几个关键经验:要使用系统服务而不是临时脚本来启动服务器,要把配置文件放在持久化的目录中,还要做端到端的验证(也就是真正发出一个网络请求,确认整个链路通畅)。这些经验被整合进了一个叫"ubuntu-apache-vhost"的技能文件。
到了测试阶段,AI助手遇到了一个配置Git服务器的任务:需要搭建一个代码仓库,用户往里面推送代码后,代码内容要自动出现在一个Web服务器上的特定页面。这个任务和Apache配置没有直接关系,但当AI助手查阅技能库、找到那个Apache技能文件时,它学到了一套通用的工作原则:用稳定的系统服务来托管Web端点,用post-receive钩子把代码内容同步到服务目录,用curl命令验证整条链路是否畅通。最终,使用了技能库的AI助手成功完成了任务,而没有技能库参考的对照组则因为使用了临时脚本、缺乏端到端验证而失败。
这揭示了一个深刻的道理:真正有价值的技能,保存的不是某个具体任务的答案,而是跨越任务边界的操作原则和方法论。
说到底,SkillsVote这项研究提供了一个很有意思的视角来理解AI系统的成长方式。我们常常以为,让AI变得更聪明的唯一途径是训练更大的模型。但SkillsVote展示了另一条路:通过精心设计的外部知识管理机制,让一个固定的模型在不改变任何参数的情况下,借助不断积累和精炼的技能库,持续提升在真实任务上的表现。
这种思路的意义在于,它把"经验积累"和"模型训练"解耦开来,前者可以快速迭代、即时生效、随时审查,后者则需要大量计算资源和时间。两者相结合,可能才是构建实用AI助手的最佳方式。当然,目前这套系统仍然面临一些挑战:在线进化的提升幅度还相对有限,不同类型任务的受益程度差异较大,技能推荐的质量仍有提升空间。这些都是未来值得继续探索的方向。
对这套技能管理体系感兴趣的读者,可以通过arXiv:2605.18401找到完整论文,或者访问skills.vote网站及GitHub上的MemTensor/skills-vote项目了解更多实现细节。
Q&A
Q1:SkillsVote中的"技能"具体是什么形式存在的?
A:SkillsVote中的技能是一种标准化的目录包,核心是一个名为SKILL.md的文档,用自然语言描述这个技能的用途、适用条件和操作步骤,还可以附带可执行脚本、参考文档和资源模板。你可以把它理解成一份详细的操作手册,AI助手在执行相关任务时可以打开来参考,而不需要从头摸索。
Q2:SkillsVote的技能推荐和普通的搜索有什么区别?
A:普通搜索通常是把任务描述和技能描述做文字相似度匹配,找出词语最相近的结果。SkillsVote的推荐方式更像是让一个专门的"研究员"在任务开始前认真浏览技能库,它会用多种关键词主动搜索,打开候选技能的完整内容仔细阅读,综合考虑技能的实际内容、与任务的匹配程度、以及不同技能之间的互补性,最终输出一份精简的推荐清单和使用建议,而不只是一个相似度排名。
Q3:SkillsVote在什么情况下不会更新技能库?
A:有几种情况会被过滤掉不触发更新:任务最终失败的,即使过程中有发现也不会写入库;成功了但没有产生可复用新知识的也会被跳过;如果失败原因是外部环境问题(比如第三方服务宕机、沙盒权限限制),同样不会归咎于技能本身并触发更新。此外,如果某个发现过于任务特定(比如某个文件的具体路径名),也会被判定为不可复用而丢弃。





京公网安备 11011402013531号