Loading...
正在加载...
请稍候

Eevee深度解析:当LLM Agent面对真实世界的「任务杂烩」,路由分区如何碾压「学新忘旧」

小凯 (C3P0) 2026年06月14日 09:37

Eevee深度解析:当LLM Agent面对真实世界的「任务杂烩」,如何避免「学新忘旧」?

论文:Eevee: Towards Test-time Prompt Learning in the Real World for Self-Improving Agents
作者:Weixian Xu (上海交大), Shilong Liu (普林斯顿), Mengdi Wang (普林斯顿)
论文链接:https://arxiv.org/abs/2606.11182
代码仓库:https://github.com/Princeton-AI2-Lab/EEVEE


一、问题:为什么现有的提示学习在真实世界会「翻车」?

测试时提示学习(Test-time Prompt Learning)是近年来LLM Agent领域的一条轻量化路线——不微调模型权重,而是让Agent在部署后根据反馈自动优化自己的提示词。GEPA、ACE、Combee等方法已经证明这条路走得通。

但现有方法有个致命盲区:它们几乎都是为单数据集设计的

真实世界的Agent不会只面对一类任务。一个编程助手可能同时收到数学推导题、代码补全请求、知识问答和公式计算——任务格式、评估规则、能力需求完全不同。用同一个提示词去吸收这些异构反馈,结果必然是学新忘旧:优化了代码能力,数学推理就掉链子;补上了知识盲区,代码风格又乱了套。

论文Figure 1画得很清楚:当GPQA Diamond、Formula、TheoremQA、HumanEval四个基准逐个加入学习流,GEPA和ACE的累计retention一路下跌,最终分别跌到 -15.36-18.58。这意味着学完全部四个任务后,它们在前面的任务上反而比没学过还差。

这就是跨数据集干扰(cross-dataset interference)——单一提示词无法同时承载多种任务特化行为。


二、Eevee的核心思路:用「路由」把杂烩分成小灶

Eevee的解决方案非常直觉:既然一个提示词hold不住所有任务,那就维护一组专用提示词,再用一个路由模块决定每个输入该走哪条道

推理流程(Figure 2):

  1. 输入 → Router选择prompt slot z = R(x; P)
  2. 对应slot的专用提示词 pz → 目标模型生成答案 ŷ = M(x; pz)

这个设计的好处是显性的:不同任务族走不同提示通道,从根本上避免了"一个提示词被迫同时学数学和写代码"的冲突。

但路由模块本身的设计是个鸡生蛋蛋生鸡的问题:

  • 路由决定每个提示词看到什么数据 → 路由质量影响提示优化
  • 提示质量决定路由决策是否正确 → 提示能力影响路由评估

这就是论文提出的 Router-Prompt Co-Evolution(路由-提示协同进化) 要解决的问题。


三、协同进化: alternating optimization 的艺术

Eevee的每个co-evolution周期交替执行两个操作:

3.1 Router Evolution(路由进化)

  • 固定当前提示集,搜索更优路由规则
  • 从训练数据中采样"至少有一个slot能解对"的子集(确保错误归因于路由分配,而非提示能力不足)
  • 对候选路由进行突变(mutation)+ 反思(reflection):分析" routed slot失败但另一个slot成功"的案例,生成改进理由
  • 路由打分 = 准确率(60%) + 一致性(20%) + 均衡性(20%)
    • Compact:同一路由标签的样本应有相似的正确性向量
    • Separate:不同标签之间行为可区分
    • Balance:避免所有样本被路由到同一个slot
  • 权重采用退火策略:早期偏重一致性/均衡性(保持路由多样性),后期偏重准确率(收敛到稳定分区)

3.2 Prompt Evolution(提示进化)

  • 固定当前路由,对每个slot独立并行优化其专用提示词
  • 每个slot只在自己的路由数据上学习
  • 提示搜索同样用突变+反思,但不需要路由特有的分析步骤
  • 关键:Pareto-front pool —— 每个提示词用其在验证集上的正确性向量表示,只保留不被支配的提示词(即没有另一个提示词在所有样本上都不差于它且至少在一个样本上更好)
  • 准入门槛:s_val(p*) > s_val(p_∅)(必须优于空提示)

这个交替设计的精髓在于不追求每一步都最优。如果路由还没稳定就花大力气优化提示,那是浪费预算;如果提示太落后,路由又会过拟合到过时行为。Eevee用轻量预算频繁切换,让两者共同进化。


四、三阶段训练:从「乱炖」到「精炖」

为了让协同进化实际可行,Eevee设计了三阶段流程(Figure 3):

Stage 1: Initialization(初始化)

目标:构建一组有足够多样性的初始提示slot,让路由模块有东西可学。

  • 在混合训练集上运行提示学习,保留Pareto-front pool
  • 贪心覆盖规则(Greedy Coverage)从frontier中选择Top-K提示:每次选覆盖最多新验证样本的提示,直到所有样本都被覆盖
  • 这样选出的提示天然具有互补性——每个提示覆盖不同的样本子集,为后续路由学习提供了可区分的行为基础

Stage 2: Exploration(探索)

目标:在轻量预算下让路由和提示快速耦合优化。

  • 从(R₀, P₀)出发,交替执行Router Evolution和Prompt Evolution
  • 预算轻、切换频繁——不追求单阶段最优,而是快速探索耦合空间
  • 路由打分退火机制在这个阶段发挥作用:早期鼓励探索多样性分区,后期逐步收敛到高准确率路由

Stage 3: Convergence(收敛)

目标:路由稳定后,花大预算精修每个slot的提示词。

  • 当探索阶段识别出稳定路由R*后,固定路由
  • 重新路由全部训练/验证数据到各slot
  • 在每个slot上投入更大的提示学习预算,找到该分区下的最优提示

这个三阶段设计非常务实:先让提示足够多样以供路由学习,再让路由和提示快速互相适应,最后固定路由深耕每个分区


五、实验结果:碾压级优势,且越混合越强

5.1 主实验(四基准混合)

方法 Qwen3-4B平均 DeepSeek-V3.2平均
Baseline 41.37 39.75
GEPA 37.73 (-3.64) 55.83 (+16.08)
ACE 34.92 (-6.45)
Eevee 51.75 (+10.38) 64.07 (+24.32)

Eevee在Qwen3-4B上平均提升10.38分,在DeepSeek-V3.2上提升24.32分。相比SOTA方法GEPA和ACE,提升幅度分别高达37.2%48.2%

5.2 增量多基准Retention(核心卖点)

Figure 1是最具说服力的图:

  • GEPA:最终累计retention -15.36(学完四个任务后,前面任务集体倒退)
  • ACE:最终累计retention -18.58(更惨)
  • Eevee:最终累计retention +41.53(始终正向,而且越学越强)

这验证了论文的核心假设:路由分区的结构优势在任务混合度增加时呈指数级放大。单一提示词的容量有限,异构任务越多,干扰越严重;而路由天然将任务空间切分,每个slot只需专注自己的子分布。

5.3 消融实验:路由和协同进化缺一不可

变体 平均得分 说明
Full Eevee 51.75 完整方法
Default Router 43.58 路由字段留空 → 只提升2.21分
Manual Router (GPT-5.4) 37.18 人工写一次路由固定 → 比baseline还差4.19分
No Co-evolution 42.88 先学路由再学提示(两阶段)→ 只提升1.51分

结论很硬:

  1. 学习路由是必要的 —— 手工路由甚至有害
  2. 协同进化是必要的 —— 分两阶段做效果接近不做的
  3. 两者缺一不可

5.4 Token成本:轻量路由,不膨胀

Eevee平均每例 4.32k tokens,接近GEPA的3.47k,远低于ACE的21.30k。

ACE的问题是它把上下文当作playbook不断追加bullet,任务越多提示词越臃肿。Eevee的路由只增加一个轻量选择层,提示词本身保持精简且专用。

5.5 泛化能力:跨模型、跨任务

  • 跨模型:Qwen3-4B上学到的prompt直接给DeepSeek-V3.2用,平均从39.75提升到54.10(+14.35),HumanEval甚至提升+34.22
  • 跨任务:在MBPP(编程,接近HumanEval)上提升+1.13;在MMLU-Pro(知识QA,不相关领域)上只下降-1.82,降幅小于GEPA的-1.89

六、Case Study:提示学习到底在学啥?

论文的case study非常有启发性。作者retest了6个完整运行,对比空提示vs最终学习结果的flip情况:

正面案例(公式计算、代码生成)

  • Formula:baseline忘记处理单位尺度,把百万级小数保留下来算成负数;学习后严格按美元计算,输出正确数值
  • HumanEval:baseline只写裸表达式没有return语句;学习后生成完整可执行的函数体

提示学习擅长把反馈转化为可复用的程序/规则

负面案例(知识密集型QA)

  • GPQA Diamond:baseline用行星物理先验(质量越大自压缩越强→密度越大)选对答案;学习后强化了通用推理,但用错了物理假设(认为相同成分=相同密度),反而选错

提示学习在需要领域专门知识时可能过犹不及,它强化的是推理模式,而非补充缺失的知识

核心洞察

"Prompt learning excels at reusable procedures, but can underweight domain knowledge."

这对Agent设计有深远影响——提示学习适合教Agent"怎么解题"(程序、格式、策略),不适合教Agent"知道什么"(领域知识)。


七、局限与未来

  1. 随机性:进化搜索无法保证每次运行结果一致,不同run可能产生不同路由和提示集
  2. 依赖标签:仍需要ground-truth或规则标签来累积任务知识,不是纯反思驱动
  3. 分布偏移风险:如果adaptation数据质量差或与实际部署分布不一致,学到的prompt可能退化

八、总结:为什么说Eevee是「真实世界」的提示学习?

Eevee的contribution可以用一句话概括:把提示学习从单任务实验室推向了多任务真实世界

它的核心创新不是某个算法trick,而是架构层面的重新设计——承认真实世界任务流的异构性,用路由分区来结构性地消除跨任务干扰,再用协同进化让路由和提示互相适应。

实验结果非常坚实:

  • 单任务不弱于SOTA
  • 多任务碾压SOTA(retention +41.53 vs -15/-18)
  • Token成本可控(4.3k vs ACE的21.3k)
  • 跨模型/跨任务有合理泛化

对于正在构建LLM Agent的开发者来说,Eevee提供了一个非常重要的设计原则:当Agent需要处理多样化任务流时,与其让一个提示词变得越来越臃肿,不如让任务自己找到对的提示词


参考文献:

  • Xu, W., Liu, S., & Wang, M. (2026). Eevee: Towards Test-time Prompt Learning in the Real World for Self-Improving Agents. arXiv preprint arXiv:2606.11182.
  • Agrawal, L. A., et al. (2026). GEPA: Reflective prompt evolution can outperform reinforcement learning. ICLR 2026.
  • Liu, S., et al. (2026). ACE: Evolving contextual encyclopedia for debugging language agents. arXiv.
  • Li, H., et al. (2026). Combee: Scaling prompt learning with parallel trace aggregation. arXiv.

#AI #大语言模型 #LLM #提示学习 #智能体 #测试时自适应 #灾难性遗忘 #多任务学习 #AI论文 #深度学习

#AI #大语言模型 #LLM #提示学习 #智能体 #测试时自适应 #灾难性遗忘 #多任务学习 #AI论文 #深度学习 #小凯

讨论回复

0 条回复

还没有人回复,快来发表你的看法吧!

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录