1. 问题与动机
LLM agent 通过组合多个 skill 完成复杂任务,skill 检索是 agent 执行前的前置环节。论文指出一个被现有方法忽视的本质差异:skill 检索不同于文档检索,top-K 的联合正确性不仅取决于每个 query-skill 对的独立语义相关性,还取决于被一起召回的 skill 能否在该 query 下协同执行(skill compatibility),而这一点无法从独立相关性推导。作者给出量化证据:把 skill body 隐藏(只留描述)会让路由准确率掉 31–44 个百分点,说明 skill 之间高度相似、body 才是真正的路由信号;在近邻约束采样下,k=2 时同子簇组合仅 56.3% 被判定可执行,k=3 时同超域组合仅 36.5% 可接受,en2zh 跨语言 k=3 的 SKIP 率高达 80.9%。动机还来自工程现实:完整 skill 库加载约需 2120 万 token(单 skill 均值 2073、p99 达 9983 token),远超单次上下文窗口,且每个会话沙箱只能装必要 skill,全量安装会让冷启动延迟随库规模线性恶化。作者把联合命中近似为 Pr[S⊆top-K|q] ≈ ∏Pr[s∈top-K|q]·C(q,S),其中 C(q,S*)<1 即表示存在相关但不该共同召回的冲突 skill。
2. 方法详解
论文提出两阶段检索器 R3。Stage 1 R3-Embedding 是 bi-encoder,基于 Qwen3-Embedding-0.6B 微调,共享编码器做 L2 归一化,用 InfoNCE 训练:L = -log[exp(e(q)·e(s+)/τ) / Σ exp(e(q)·e(c)/τ)],候选池为 ground-truth skill 加 n 个 BM25 难负例,温度 τ>0。关键设计是不在 embedding 阶段注入 SKIP 负例——附录 B 的双边平衡分析说明:共享表征 e(s') 在 query q 下被"推开"(s' 是 SKIP),却在另一 query q̃ 下被"拉近"(s' 是正例),梯度相互抵消,使任一 query 的兼容性信号被稀释,实测增益仅约 0.6pp。Stage 2 R3-Reranker 是 cross-encoder,基于 Qwen3-Reranker-0.6B,用分级 ListNet 训练:标签 label(s)=3(真值 skill)/1(SKIP partner)/0(其它),y_s 由 softmax 归一化、p_s 由 cross-encoder 打分,L = -Σ y_s log p_s。输入为 R3-Embedding 的 top-20 加真值与补齐到 10 的 SKIP partner。由于 cross-encoder 对每个 query-skill 对独立打分、不存在共享表征的几何折中,SKIP 兼容性信号在此阶段才真正生效。
3. 核心技术贡献
(1) 形式化 skill compatibility 并定位监督失效点:把联合召回分解为相关性项与兼容性项 C(q,S*),并通过双边平衡分析证明该信号在 bi-encoder 的共享表征里必然被稀释、只能在 cross-encoder 阶段建模,这是对"召回阶段也注入负例就好"直觉的纠偏。(2) Reject-as-Resource (R3) 数据范式:LLM 判定一组 skill 为 WRITE 则保存为正样本,判为 SKIP 不丢弃而是转为负监督,把传统会被扔掉的拒绝样本变成兼容性训练信号。(3) 近邻硬约束采样:用 BGE-M3 嵌入做 K-means(40 子簇并为 8 超域),k=2 强制同子簇、k=3 强制同超域(100% 合规),逼出"语义都相关但不可共执行"的困难组合,否则随机采样几乎采不到有意义的 SKIP。(4) 分级标签:SKIP partner 给中间分 1 而非 0,让 reranker 学会把冲突 skill 排在真值之下但仍高于完全无关项。
4. 实验结果分析
主表(R3-Skill 测试集,10246 个 skill):仅 R3-Embedding 时 Hit@1=0.7024、NDCG@10=0.8064、Set-Compat=0.2218;加 R3-Reranker 后 Hit@1=0.7714(+6.9pp)、NDCG@10=0.8327(+2.63pp)、Set-Compat=0.3525(+13.07pp);R@10 反而略降 1.14pp,说明重排牺牲少量纯召回换取大幅兼容性提升。Set-Compat(真值集合是否联合进入 top-m)增益最大,正好印证 SKIP 信号只在 cross-encoder 生效。baseline 对比悬殊:BM25 Hit@1 仅 0.0604,BGE-M3 base 0.3980,Qwen3-Embedding-0.6B base 0.4312,微调后 R3-Embedding 提到 0.7024。SKIP 消融最关键:embedding 阶段加 SKIP 反而 -0.31pp Hit@1、-0.60pp Set-Compat(有害),reranker 阶段加 SKIP 则 +4.83pp Hit@1、+3.37pp Set-Compat(有益),定量验证了双边平衡理论。跨语言看,en2zh(英文 skill+中文 query,最贴近真实部署)reranker 带来 +13.34pp Set-Compat,说明 dual-encoder 无法处理双语链式组合。泛化性上 R3-Embedding 迁到 SkillRet 官方测试 NDCG@10=77.94,与基线 78.03 基本持平,无灾难性遗忘。拒绝原因分布(15962 条可分类 SKIP)以 domain_mismatch 45.9%、forced_chaining 33.9% 为主。
5. 局限与未来方向
作者明确列出:(1) 中文 skill 极少(246 vs 94966 英文),反映生态不平衡;(2) 数据依赖 LLM 标注,虽用跨源 LLM(训练 DeepSeek-V4-Pro、测试 Qwen3-235B-A22B)加专家校验,但真值上限仍受 LLM 判断质量约束;(3) 未做按拒绝原因、几何距离、k∈{1,2,3} 的细粒度压力切片;(4) 测试校验仅内部团队完成,建议第三方盲检;(5) 离线指标与生产现实有差距——query 措辞漂移、业务指标(CTR、完成率)、用户画像排序、端到端链路均未覆盖;(6) reranker 池固定 top-20,扩到 50/100 对 Set-Compat 的影响未探究。这些局限大多诚实指向"离线到线上"的迁移风险。
6. 工业实践意义
对搜索/推荐从业者,最直接的可迁移设计是把"召回单元能否协同"显式建模,而非只追求单条相关。社区搜索里"多片段拼装答案"场景同构:召回的 N 条 UGC 应互补覆盖 query 的多个子意图,而非各自都沾边却重复或冲突——可借鉴 R3 把"被拒绝的组合"留作负监督,而不是只用点击正样本。架构层面,"轻量 bi-encoder 召回 + 轻量 cross-encoder 重排兼容性"的两段式与现有召回-精排链路天然对齐,且两个模型都只有 0.6B,重排只在 top-20 上跑,线上算力可控。一个值得直接采纳的结论是:兼容性/冲突类负信号不要塞进双塔召回(会因共享表征被稀释甚至反伤指标),应放到精排的 cross-encoder 用分级标签学习。需注意论文未给在线 A/B,离线 Set-Compat 增益能否转化为线上相关性/CTR 仍待验证;中文场景数据稀疏也提示直接套用前需自建中文 skill/UGC 兼容性样本。