超越 Top-k 技能检索:面向 LLM Agent 的多样性感知技能路由
大型语言模型(LLM)Agent 正越来越多地依赖外部技能,但在庞大的技能库上完成请求路由并不容易:许多技能在功能上高度冗余,而复杂任务往往需要互补的技能组合。现有技能路由器 通常按查询相关性对候选技能独立排序,这会在冗余技能上浪费上下文预算。 我们提出 Diverse Skill Routing(DSR),一个多样性感知的重排序框架,利用 Determinantal Point Process 来平衡相关性与非冗余性。DSR 引入 query-residual diversity kernel:在惩罚冗余技能彼此重叠的同时,降低仅由共享查询相关性所造成的惩罚。 在 SkillRouter benchmark 上,DSR 相比强 pointwise 重排序 baseline 提升了 recall 与 full coverage,且在多技能查询上增益更大。这些结果表明,技能路由不应只被当作相关性排序,还应被视为 互补集合选择。
论文精读
TL;DR DSR 用 DPP 将技能路由从独立相关排序转为互补性集合选择,通过 query-residual kernel 区分功能冗余与查询共现,在 SkillRouter 多技能查询上显著提升召回与全覆盖。
问题
问题背景
当前 LLM agent 依赖外部 skills 扩展能力,技能路由 需要从大规模 skill registry 中挑选少量高价值技能注入上下文。
现有方法局限
主流方案基于 top-k 检索 + 点式重排:对每个候选独立计算 query relevance,按分数取前 k。这种逐点排序忽略技能间的 功能冗余 与 互补需求。当多个技能覆盖相似能力时,高相关项会重复占满有限的 context budget,真正互补的技能被挤出候选集,导致 multi-skill queries 的 recall 与 full coverage 下降。在 SkillRouter benchmark 上,强点式重排 baseline 的覆盖不足问题尤其明显,说明仅优化单点相关性不足以支撑复杂任务。
为什么难/重要
技能库中功能相近但实现不同的技能大量存在,复杂查询又需要多个正交能力组合。选择问题本质上是 互补性子集选择,需要同时平衡 relevance 与 non-redundancy;但如果仅用查询相关度共现来惩罚冗余,会错误地惩罚共享相同 query relevance 的有用技能。DSR 提出 query-residual diversity kernel,以 DPP 建模子集概率,惩罚冗余技能重叠同时降低仅由共享查询相关性造成的惩罚。这对控制 prompt token 预算、降低延迟、提升多技能任务覆盖率有直接工程价值。
行业类比
类似 RAG 系统中只召回相似片段会导致多跳推理缺少互补事实,技能路由也需要显式的多样性选择。
核心洞察
- 技能路由不应只做 pointwise relevance ranking,而应视为互补技能集合选择。现有 skill router 逐个给候选技能打分并 top-k 截断,忽略技能间功能冗余,导致 context budget 被相似技能消耗,多技能查询覆盖不全;DSR 用 **Determinantal Point Process** (DPP) 对候选集整体建模,同时优化相关性与非冗余性,从原理上改变了路由目标函数,与 pointwise baseline 有本质差异。
- query-residual diversity kernel 通过剥离仅由共享查询相关性引起的“伪相似度”,更精准地惩罚真实功能冗余。传统多样性 kernel 可能将两个都高度匹配 query 但功能不同的技能判定为相似而过早排除,损害 recall;DSR 的 kernel 引入 query residual 项,保留对冗余技能的惩罚,同时减少对相关但互补技能的误伤,这是对 DPP 在 skill routing 场景的关键适配。
方法
输入与候选检索
DSR 的输入是用户查询和包含大量技能描述的大规模技能注册表。首先使用基础检索模型(如基于 embedding 的相似度)为每个查询召回 top-k 候选技能,形成一个可能包含功能冗余技能的候选集合。
关键模块:Quality-Aware DPP 与 Query-Residual 多样性核
DSR 将候选技能选择建模为 确定性点过程(DPP) 的子集采样问题。DPP 的核矩阵由两部分构成:质量项衡量每个技能与查询的相关性;多样性项衡量技能间的相似度。传统 DPP 直接使用技能表示计算相似度,但会因技能共享查询相关特征而误判为冗余,从而错误惩罚互补技能。
Query-Residual Diversity Kernel 是 DSR 的核心创新。它先将每个技能的表示投影到与查询正交的残差空间,再用残差向量计算技能间相似度。这样,多样性惩罚只针对真正的功能重叠,而非共享查询相关性。
输出:Greedy MAP 选择与排序
利用 Greedy MAP 算法近似求解 DPP 最大后验概率子集,逐步选择能最大化集合多样性和相关性的技能,最终输出一个经过重排的、非冗余且高覆盖的技能列表,注入 LLM 上下文。
与传统 top-k 独立打分排序不同,DSR 将技能路由视作互补集合选择,在 multi-skill 查询上显著提升 full coverage。
实验
实验设计
- 在 SkillRouter benchmark 上评估 DSR,与 pointwise reranking baseline 对比。
- 评估指标:
recall与full coverage(技能完全覆盖比例)。 - 重点分析多技能查询场景,考察多样性感知对互补技能集选择的增益。
关键发现
- DSR 在
recall与full coverage上均超过 pointwise reranking baseline。 - 多技能查询上增益更大,说明非冗余技能选择能显著提升复杂任务覆盖。
- 作者论断:技能路由不应仅视为相关性排序,而应作为 互补集选择 问题。
基线对比解读
Pointwise reranking 独立按查询相关性排序,容易将上下文预算浪费在功能冗余的技能上。DSR 通过 Determinantal Point Process 与 query-residual diversity kernel 在相关性与非冗余性间取得平衡,惩罚冗余技能重叠,同时避免仅因共享查询相关性造成的过度惩罚。这一差异在多技能查询中更加突出,证明重排阶段引入多样性约束对 agent 技能路由的实用价值。
行业影响
落地场景
DSR 可应用于任何需要 LLM 代理 从大规模技能库中动态选择组合的场景。例如 企业级 AI 助手 集成大量内部 API、知识库和自动化脚本,技能冗余度高;电商智能客服 需同时调用商品检索、评价分析、文案生成等技能;内容平台 的内容创作工具集也常面临互补技能选择问题。
商业价值
通过将选择从 top-k 相关性排序 改为 互补集合选择,DSR 减少上下文窗口内冗余技能对 token 的消耗,直接降低推理成本。同时提升多技能任务的 full coverage,减少因技能缺失导致的失败重试,改善用户体验和任务完成率,带来增收和留存。
集成接口
DSR 可作为 reranking 模块 插入现有 RAG 或工具选择流水线:候选技能检索后、最终选择前应用 DPP 重排。无需重构现有检索器或 LLM 路由,只需替换排序层,兼容主流向量数据库和 agent 框架。
具体 use case:电商平台智能客服处理复杂请求“对比两款跑鞋的价格、评价并生成购买建议”时,传统 top-k 可能选中多个相似的商品检索技能,而 DSR 会选择互补的 商品检索 + 评价分析 + 内容生成 组合,减少上下文浪费并提升答案质量。
局限
- 论文将 DSR 定位为重排序框架,假设上游候选检索阶段已经提供了足够相关的技能集合。但实际技能注册库往往规模庞大且异构,检索器自身的召回能力有限,若关键互补技能在候选列表中被遗漏,DSR 无法弥补上游损失。论文未讨论如何与检索阶段联合优化,也未分析候选集质量对最终覆盖率的影响,这可能限制其在真实大规模技能库中的效果。
- DSR 依赖 Determinantal Point Process 的核函数设计,其中 query-residual diversity kernel 需要高质量、可计算的技能向量表示。然而技能可能包含自然语言指令、代码片段、API 文档等多种模态,统一嵌入空间难以保证语义保真度;同时核函数超参数(如平衡系数)对任务和数据集敏感,论文只在一个 benchmark 上验证,缺少跨领域、跨技能类型的泛化性评估,实际工程部署时调参成本较高。
- 与点式重排序基线相比,DSR 的计算开销显著增加:DPP 的 MAP 推断即使采用贪心近似也需要对候选集进行多次核矩阵计算与更新,在实时路由场景下可能引入不可忽视的延迟。论文未报告推理耗时或与轻量级多样性策略(如 MMR)的效率对比,也未讨论如何在不牺牲路由质量的前提下降低复杂度,这限制了其在低延迟 agent 系统中的直接应用。