AI代理记忆优化:ALTK-Evolve如何用更少Token实现更高准确率

0 阅读

从失败中学习:AI代理的记忆机制

给一个LLM代理一个现实的多步骤任务——分摊账单、找一首歌、在九个模拟应用中核对订单——当它失败时,通常不是因为缺乏知识。它可能错误地翻页API、解析了错误的人,或者在未要求时返回了一个值。模型知道API;它没有内化的是如何可靠地使用它们。这可以从代理自身的历史中学习。

两个最近的系统正是这样做的,在同类代理上:ACE(Agentic Context Engineering)和我们的ALTK-Evolve。两者都是代理记忆的一种形式——将代理过去的轨迹转化为可复用的经验,并在推理时反馈,无需权重更新,无需人工标签。它们甚至在困难部分达成一致。它们分道扬镳的地方是交付

关于词汇的说明,因为两个系统命名不同:我们将代理学习的原始事物称为经验。ACE将其经验组织成一个全面的、不断演化的剧本;我们将其整合为可单独检索的指导原则。相同的经验,两种容器。

共识:拒绝压缩

两个系统都拒绝压缩。

ACE精确地指出了失败模式:简洁性偏差——优化趋向于简短、通用的指令——以及上下文崩溃——模型在每一步被要求重写整个上下文时,会总结掉细节。它的答案是保持一个丰富的、逐项列出的剧本,每个要点上都有有益/有害计数器,并让模型在读取时提炼相关性。

我们从另一个方向得出相同的结论。每个不同的指导原则都保持一个支持计数——有多少独立的情节产生了它——我们从不将存储总结为几条规则。五个不同任务发现的经验与只出现一次的经验是不同的对象,两者都值得保留。

因此,在核心问题上——是否应该将代理来之不易的经验压缩成简洁的总结?——ACE和ALTK-Evolve给出了相同的答案:不。计数,不要折叠。 ACE的逐点计数器和我们的支持计数是同一想法的两种拼写。

分歧:构建与交付

两个地方:记忆如何构建,以及如何交付——而交付差异体现在Token账单上。

整合(如何构建存储)。 ACE通过生成器→反思器→策展器循环增长一个剧本,应用增量更新并通过嵌入去重。我们聚类近似重复的经验并在聚类内合并,支持计数保留——当几个经验合并时,幸存者继承它们的组合计数,因此存储缩小而不丢失每个指导原则背后有多少经验支持的记录。我们还提取类型化的指导原则——策略、恢复和优化——具有因果归因和追溯到源轨迹,并在子任务粒度上,因此在一个应用上学到的经验可以转移到另一个。

交付(推理时什么到达模型)。 这是驱动数字的一个。ACE在每一步注入全面的剧本,无论模型或任务如何,方式相同。我们将交付视为一个拨盘,而不是常数:一个小的固定核心高支持指导原则,根据任务扩展,为当前任务选择少量(余弦或LLM引导,优先级加权)——或者,当模型有足够的余量使用时,完整的整合集。相同的经验对两个代理都可用;区别在于ACE总是发送所有,而我们发送给定模型实际能使用的数量。

为什么重要

在AppWorld上,使用相同的基础ReAct代理,在内部运行两个系统:

模型 系统 TGC / SGC Tokens/任务
DeepSeek-V3.2 ACE 80.4 / 73.2 634K
ALTK-Evolve 89.3 / 80.4 263K
gpt-oss-120b ACE 54.8 / 35.7 777K
ALTK-Evolve 56.0 / 37.5 116K

在强模型上,我们在两个指标上都更好,推理成本约为ACE的40%。在弱模型上,我们以56.0对54.8略微超过ACE——足够接近,我们称之为准确率平局(我们的一次重复运行落在54.8,几乎与ACE完全匹配,这在此基准的run-to-run噪声范围内)——成本约为七分之一

公平地说成本:ACE自己的效率故事是关于构建其上下文的成本。我们的在另一个轴上——服务它。每个任务检索几个指导原则,而不是在每一步注入整个剧本,这是Token的去向,并且是上述交付差异的直接结果。

准确性来自哪里?按难度分解讲述了两个不同的故事:

图1:按难度划分的记忆后任务目标完成率,我们的与ACE的对比。在DeepSeek-V3.2(右)上,我们在简单、困难和总体上获胜;ACE仅在中等难度上略胜。在gpt-oss-120b(左)上,ACE在简单和中等难度上领先,但按任务选择在困难任务上获胜——以及总体上。每个系统都从自己的无记忆基线改进(参见方法说明下的按难度参考表)。

image

两个模型讲述了不同的故事。在gpt-oss-120b上,ACE的全面剧本在简单和中等难度上有优势——有足够的任务通过通用指令遵循解决,全面的提示比分散注意力更有帮助。但在困难任务上,模型必须选择正确的经验,而不是浏览所有经验,策展检索领先——而这一层决定了总体。在DeepSeek-V3.2上,故事翻转:更强的模型吸收ACE的全面剧本足够好,在中等难度上略胜我们,但我们在简单、困难和总体上领先——有更多的容量,更多的经验(以我们的方式交付)继续帮助,而不是互相拥挤。

我们给每个模型其最佳配置——强模型使用完整的整合集,弱模型使用选择性检索,因为大上下文会压倒弱模型而不是帮助它。(具体注入多少,以及它如何跨能力谱扩展,是下一篇文章的主题。)

相同的经验,不同的交付

两个系统都拒绝将代理来之不易的经验压缩成简洁的总结——这部分我们同意。区别在于交付是固定的还是校准的:ACE每一步发送整个剧本,无论什么;我们发送给定模型实际能使用的指导原则集的数量。这种校准带来了上述数字——相同或更好的准确率,推理成本仅为ACE的一小部分——在弱模型上,这是指导有帮助和指导妨碍之间的区别。

尝试ALTK-Evolve——包括此处使用的提取、整合和检索管道——**或阅读完整技术报告**以获取完整方法和消融。

相关工件/参考

  • 早期文章: ALTK-Evolve介绍——链接
  • ACE(Agentic Context Engineering)——链接
  • AppWorld基准——链接
  • ALTK-Evolve——链接
  • 完整技术报告——链接

方法说明

AppWorld test_normal,168个任务。一个ReAct代码代理(每一步写Python;环境返回输出)。TGC = 任务目标完成率;SGC = 场景目标完成率,要求场景的每个变体都通过。记忆仅从train/dev挖掘;结果是单次运行(pass@1),这是此基准的标准。

ACE数字是我们自己对ACE代理的运行,在相同的AppWorld分割和相同的基础模型(DeepSeek-V3.2和gpt-oss-120b)上内部评估。ACE论文报告了不同的基础模型(DeepSeek-V3.1),因此自己运行它保持模型和框架的对照。两个系统是相同的ReAct代理,仅提示模板不同——这就是为什么两个无记忆基线不同(72.0 vs 79.8 TGC);我们不将比较建立在该基线差距上,只建立在提示调整无法触及的主张上:相同或更好的准确率,Token仅为一部分。

参考表

DeepSeek-V3.2 — test_normal(168个任务):

系统 指导原则 TGC SGC Tokens/任务
ReAct,无记忆 0 79.8 64.3 148K
ReAct + ACE 106 80.4 73.2 634K
ReAct + ALTK-Evolve 191 89.3 80.4 263K

gpt-oss-120b — test_normal

系统 指导原则 TGC SGC Tokens/任务
ReAct,无记忆 0 39.9 21.4 110K
ReAct + ACE full 54.8 35.7 777K
ReAct + ALTK-Evolve(选择) ~29 56.0 37.5 116K

gpt-oss-120b — 按难度(TGC):

难度 基线 ACE ALTK-Evolve
简单 66.7 84.2 82.5
中等 35.4 60.4 56.2
困难 19.1 23.8 31.8
总体 39.9 54.8 56.0

DeepSeek-V3.2 — 按难度(基线 → +记忆): 两个系统从不同的无记忆基线开始(总体79.8 vs 72.0 TGC),因为上述提示模板差异。

层级 ALTK TGC ALTK SGC ACE TGC ACE SGC
总体 79.8 → 89.3 64.3 → 80.4 72.0 → 80.4 57.1 → 73.2
简单 93.0 → 94.7 84.2 → 84.2 78.9 → 84.2 63.2 → 78.9
中等 81.2 → 97.9 62.5 → 93.8 85.4 → 100.0 75.0 → 100.0
困难 66.7 → 77.8 47.6 → 66.7 55.6 → 61.9 38.1 → 47.6