但现实往往正好相反:当Skill库从几十个膨胀到几千、提图几万个时,出G持Agent最先失去的把海,往往不是量S连成推理能力,而是用支“找对Skill”的能力。
Agent可能知道自己要做什么,提图却拿不到那套真正能把任务跑通的出G持完整组合。 把所有Skill全塞进Prompt,把海Token会迅速爆炸,量S连成关键信息会被淹没;只靠向量检索,用支又常常只能找回几个“看起来相关”的提图高层Skill,真正决定任务能否执行的出G持解析器、预处理器和依赖项反而会被漏掉。把海
UPenn联合马里兰、量S连成布朗大学等团队提出的用支Graph of Skills,正是为了解决这个问题。 它的关键不只是让Agent “会组合Skill”,而是先把海量Skill库组织成一张技能图,再让Agent从中找出一套规模足够小、依赖足够全、可以直接执行的Skill组合。
换句话说,GoS解决的不是“Agent会不会调Skill”,而是一个更现实、也更关键的问题:
当Skill库足够大时,Agent怎么才能一次找对那一套真正能跑通任务的Skill。
项目地址:
在Graph of Skill出现之前,业界处理海量技能库主要依赖两种传统策略。研究者在论文中详细指出了它们的致命缺陷。
论文将Vanilla Skills、Vector Skills与Graph of Skills并列对照,直观展示了“上下文过载”和“先决条件鸿沟”这两个核心问题,以及GoS如何通过结构化检索补齐依赖链。
这是一种最直接的处理方式。
工作机制:将整个技能库的说明文本全部提取出来,直接硬塞进大语言模型的上下文窗口中。
规模诅咒:在工具数量极少时,这种方法可行。但当库规模扩大后,Token成本会呈线性爆炸式增长。
注意力稀释:将数千个工具放入上下文中,会导致模型严重的信息过载。模型极易产生幻觉,并忽略掉隐藏在长文本中的关键领域约束条件。
为了解决上下文过长的问题,业界引入了基于稠密向量(Dense Retrieval)的检索方案。
工作机制:利用嵌入模型(Embedding Model),检索出与您输入的任务查询在“语义上最相似”的前K个技能。
致命缺陷(先决条件鸿沟):语义上的极度相似,完全不等于执行上的完备性。
工程现实脱节:在绝大多数工程任务中,与用户查询语义最匹配的,往往是顶层的高级求解器。但是,要让这个求解器成功运行,还需要底层的解析器、格式转换器、环境设置工具或领域特定的预处理器。
检索断链:这些底层依赖项在功能上不可或缺,但在文本语义上与用户的初始查询关联极弱。向量检索往往会遗漏这些底层工具,导致最终检索出的技能组合根本无法执行。
为了打破上述困境,研究者提出了一种全新的推理时结构化检索层——Graph of Skills (GoS)。
GoS的核心思想彻底改变了对“技能”的定义:拒绝将Skill视为孤立的文本片段,而是将它们重构为一个有向的、包含依赖关系的执行图谱。 系统目标是在严格的上下文预算内,检索出一个具备依赖感知(Dependency-aware)的、完整的可执行技能包(Skill Bundle)。整个流程分为“离线图谱构建”和“在线结构化检索”两个主要阶段。
这张总览图把GoS拆成三部分:左侧是离线索引与图谱构建,中间是带类型的技能关系图,右侧是在线检索、反向扩散、重排序与预算约束下的技能实例化。
在您实际输入问题之前,GoS需要在离线状态下,将本地的杂乱技能包转化为一个结构化的带类型有向图。
1.技能节点归一化(Skill Normalization)
确定性解析:系统首先会确定性地解析技能包。通过读取YAML前置元数据和Markdown文档,提取出规范名称、功能摘要、输入输出(I/O)字段、领域标签、使用工具、脚本入口以及稳定的本地源码路径。
受限的LLM补全:当某些技能的文档极其残缺时,系统会调用轻量级的大语言模型进行辅助。
严格边界:研究者对LLM的使用施加了极严的限制。LLM仅被允许用于补全节点内部的语义字段(如能力描述、缺失的I/O),绝对不允许它凭空捏造图谱中的连边关系。这种“受限语义补全”保证了节点的质量,同时杜绝了幻觉连边。
2.推导带类型的边(Typed Relation Induction)
GoS并非只有一种连接方式,它构建了四种不同类型的边:
依赖边(Dependency edges):这是图谱的绝对核心。系统通过严格的输入输出(I/O)兼容性检查来确定有向边。如果技能A产生的输出,刚好是技能B要求的输入,系统就会在两者间建立依赖边。这代表了不可逾越的执行先决条件。
工作流边(Workflow):捕获常见的多步流水线执行顺序。
语义边(Semantic):连接极其相似或主题相邻的备用技能。
替代边(Alternative):连接用于解决同一个子问题的不同实现方案。
稀疏验证机制:为了防止计算量失控,对于后三种非依赖边,系统不会进行全局的两两对比。而是先通过词法和语义相似度框定一个小范围的候选池,随后在候选池内进行关系验证,确保图谱保持稀疏且精准。
当您向您的Agent下达任务指令时,GoS需要在给定的Token预算 T 内,返回一个既相关又具备执行完备性的技能集合 。这个过程分为三步:
纯语义检索(向量)擅长寻找高层次技能,而词法检索(关键词匹配,如BM25)对具体的文件名和实体很敏感。GoS将任务映射为一个包含目标、操作、构件的查询模式(Query Schema)。然后将语义分数 和词法分数 进行融合打分:
其中 控制两者的平衡。归一化后,这些得分最高的节点就成为了图谱扩散的“种子”(Seeds)。
这是GoS最惊艳的数学与算法设计。为了从匹配到的高层技能“顺藤摸瓜”找到其所需的底层依赖(如预处理器、解析器),GoS必须允许相关性在图中反向传播。 GoS构建了一个统一的转移算子:
这里 是关系的权重,而 控制了允许反向遍历的强度(对于“依赖边”,反向权重最高,达到1.0)。 接着,使用个性化PageRank (Personalized PageRank, PPR) 进行扩散迭代:
在这个公式中, 是重启参数。通过这种方式,即使一个底层的设置工具与用户的初始查询毫无语义关联,只要它是一个关键的依赖节点,相关性分数也会通过图谱反向流动到它身上。
扩散结束后,GoS会将图谱的全局结构分数与节点的局部查询匹配度结合进行重排序:
最后,系统会根据上下文的硬性预算,按照排名高低对技能进行“实例化”(Hydration),也就是将技能转化为智能体可以直接阅读和使用的载体(包括稳定的本地源码路径、能力摘要和执行注意事项),确保输出不仅紧凑而且立即可执行。
为了验证上述架构的实际效能,研究者在极具挑战性的基准测试上进行了全面评估。
SkillsBench基准:包含1000个真实的复杂技术任务,横跨宏观经济去趋势化、电网可行性分析、3D扫描分析、地震相位拾取等11个专业领域。
ALFWorld基准:一个交互式的具身模拟器测试环境。智能体需要通过文本指令,在虚拟家庭环境中完成导航、寻找物体和物理交互等多步家务活动(共140个完整序列)。
模型阵容:实验横跨了三个不同家族的大型语言模型,包括Claude Sonnet 4.5、MiniMax M2.7以及GPT-5.2 Codex。
实验数据展现了高度一致的结论。
研究者在SkillsBench与ALFWorld两个基准上,按奖励、Token和运行时对比Vanilla、Vector与GoS三种方法。GoS在六个模型-任务组合中都拿到最高平均奖励,同时维持明显更紧凑的上下文成本。
全面超越全局加载(Vanilla):在所有的测试区块中,GoS取得了最高的平均任务奖励(即成功率)。与简单粗暴的全局加载相比,GoS在平均奖励提升43.6% 的同时,将模型摄入的输入Token数量大幅减少了37.8%。
碾压向量检索(Vector):在维持极低Token消耗的前提下,GoS的任务成功率远超向量检索。在SkillsBench测试中,GoS比向量基线高出10.97分;在ALFWorld测试中,高出2.87分。
效率与表现的最佳平衡:全局加载虽然找得到技能,但成本失控且容易导致模型迷失;向量检索虽然省钱,但找出的技能组合残缺不全无法执行。GoS成为了在Token效率、运行时间和任务成功率之间的最佳平衡点。
具体模型数据:在ALFWorld测试中,使用Claude Sonnet 4.5,Vanilla的成功率为89.3%,消耗了1,524,401个Token;Vector向量检索成功率为93.6%,消耗28,407 Tokens;而 GoS达到了97.9% 的惊人成功率,仅消耗27,215 Tokens。
研究者并未止步于表面数据,他们进一步解剖了GoS架构,以验证各个组件的真实价值。
研究者测试了技能库从200个飙升至500、1000、2000个时的系统表现(基于GPT-5.2 Codex)。
这是论文对200、500、1000、2000个技能规模给出的原始结果表。它和下方趋势图相互印证,显示GoS从中等规模开始持续保持更高奖励,而检索式方案都显著压住了Token膨胀。
Token成本失控:当库规模从500扩展到2000时,全局加载基线(Vanilla)的输入Token消耗从193万激增到584万(接近3倍)。
GoS的超强抗压性:在相同的扩张规模下,GoS的Token消耗死死稳定在114万到138万之间。论文在200到2000个技能规模上比较三种方法。结果显示,随着技能库变大,GoS依然保持更强的奖励表现,同时显著抑制了输入Token的增长速度。
规模越大,优势越显:在200个技能的小型库中,全局加载还能勉强维持微弱优势。但只要技能库规模达到中等(500及以上),GoS的任务成功率便全面且持续地超越其他两种基线。
研究者在拥有1000个技能的库中,逐步拆除了GoS的核心组件,观察系统衰退情况:
移除图谱传播机制:系统退化为无法沿着结构关系寻找先决条件的单纯检索器。结果显示,Token消耗虽然降低了,但平均任务奖励从34.4暴跌至29.3(下降5.1分)。
进一步移除词法重排与检索:强制系统仅依赖单一的语义检索器进行初步筛选。任务奖励进一步崩塌至26.7(下降7.7分)。
数据结论:混合语义与词法检索提供了高质量的“初始切入点”,而图谱传播机制则负责将这些切入点转化为“逻辑完备的执行链条”。两者缺一不可。
组件消融实验显示,只去掉图传播,奖励就从34.4降到29.3;再去掉词法检索与重排,进一步降到26.7,说明高质量种子和结构扩散在GoS中是互补关系。
为了让系统表现更直观,研究者提取了多个真实的智能体执行轨迹(Trajectories)进行解剖。
附录把10个qualitative cases中真正进入执行链条的技能包并排列出,并区分Useful与Noisy。这个总表能直接看出GoS往往给出更紧凑、更接近可执行分解的组合Skill。
行人交通计数(视觉流水线任务)
任务需求:提取视频帧、进行行人计数、格式化输出。
向量检索表现:抓取了零散的上下文,智能体无法将其组装成工作流,任务失败(得分0.041)。
全局加载表现:经过漫长的搜索找到了相关工具,但过程充满噪音,获得部分分数(得分0.267)。
GoS表现:开局直接抛出一个紧凑的视觉流水线组合(包含视频帧提取、模型计数、视觉处理工具),智能体直接执行完美通关(得分0.417)。这是 pedestrian-traffic-counting 的原文分析截图。研究者把GoS、Vanilla与Vector三种条件下的技能暴露方式并列对照,强调GoS的优势在于更早给出紧凑可执行的视觉流水线。
网络入侵检测(深度分析任务)
任务需求:需要极度专业的PCAP数据包分析工具。
案例对比:向量检索彻底迷失,抓取了一堆不相关的自动化脚本。GoS凭借图谱关系,精准打包了核心的 pcap-analysis 工具及其配套的分流助手。只要关键分析包没有被遗漏,后续任务便迎刃而解。
这是 dapt-intrusion-detection 案例的截图。论文把它作为典型的GoS正向案例,用来说明一旦检索链里出现 pcap-analysis 及相邻助手,任务性质就会从“从零摸索”转成“按现成工具复用”。
反思案例:地震相位关联(超长依赖任务)
真实局限:在这个任务中,全局加载基线虽然笨重,但依靠蛮力拼凑出了一个包含5个工具的地震处理栈,成功过关。而GoS检索出的依赖关系链缺了一环,混入了一个无关技能,导致任务彻底失败。
案例启示:这诚实地暴露了架构的边界。结构化检索能够发挥作用的前提,是图谱恢复的局部邻域必须足够完整。如果图谱本身的覆盖面存在断层,检索出的技能包依然无法执行。
earthquake-phase-association 是论文专门保留的反例。研究者借此说明结构化检索不是自动成功,若恢复出的局部邻域仍然缺关键依赖,GoS依然可能输给信息更全但更嘈杂的全量加载。
尽管在处理海量技能库方面展现出极强的统治力,研究者依然客观地指出了GoS当前的局限性:
深度绑定离线图谱质量:如果初始技能库的代码文档极其混乱,I/O模式完全不清晰,或者缺失执行元数据,离线阶段建立的边质量就会大幅下降,这将直接摧毁后续的所有检索流程。
图谱结构的静态滞后:目前的图谱系统主要依靠离线构建,是静态的。系统尚未具备“吃一堑长一智”的能力,无法根据智能体在线执行的成功轨迹、验证器的报错记录或用户的直接反馈,去实时动态更新图中的连边权重。
研究者表示,未来的探索方向将集中于实现在线边权重的自适应更新、基于成功执行轨迹的图谱进化、对候选技能包进行更强力的重排序,以及在多模态和更具交互性的智能体环境中进行广泛测试。
Graph of Skills (GoS) 为我们揭示了一个关键事实:面对庞大的工具生态,单独考察工具的文本语义是远远不够的。技能之间天然存在着复杂的依赖、工作流和先后逻辑。
通过将零散的技能转化为可被算法遍历的有向图谱,结合混合检索与逆向扩散机制,GoS在保证极低算力成本(Token消耗)的同时,向大模型提供了一套开箱即用的执行逻辑闭环。这为突破下一代超大规模智能体系统的检索瓶颈,提供了一套极具工程价值和理论深度的解决方案。
未来已来,有缘一起同行!