想到 ACE 了吗?我们可以用更少的 Token 做到
本文对比了 ACE 与 ALTK-Evolve 两种让智能体从自身轨迹中学习的方法,指出在传递学习成果时,按需发送少量高价值指南比全量注入更具成本效益,在 AppWorld 上以更低成本达到相当或更优性能。
原贴
查看原文原文
中文翻译
ALTK-Evolve 和 ACE 都让智能体从自身的轨迹中学习。区别在于它们如何处理所学内容——而这决定了 token 开销。
给一个 LLM 智能体一个现实的多步骤任务——分摊账单、找一首歌、在九个模拟应用中核对订单——当它失败时,通常不是因为缺乏知识。它可能错误地翻页 API、解析错对象,或在未被要求时返回一个值。模型知道这些 API;它尚未内化的是如何可靠地使用它们。
这可以从智能体自身的历史中学习。最近有两个系统正是这样做的,针对同一类智能体:ACE(Agentic Context Engineering)和我们的 ALTK-Evolve(此处介绍)。两者都是智能体记忆的一种形式——将智能体过去的轨迹转变为可复用的经验,并在推理时回馈给模型,无需权重更新,无需人工标注。它们甚至在难点上意见一致。它们的分歧在于传递方式。
关于措辞的一点说明,因为两个系统命名方式不同:我们将智能体学到的原始内容称为经验(lesson)。ACE 将其经验组织为一个全面的、不断演化的手册(playbook);我们则将其整合为可单独检索的指南(guidelines)。同样的经验,两种容器。
ACE 精确地指出了失败模式:简洁性偏差(brevity bias)——优化趋向于短而通用的指令;以及上下文坍缩(context collapse)——模型被要求每一步重写整个上下文,从而把细节概括掉。它的答案是保留一个丰富的、逐条列出的手册,每个条目附带有益/有害计数器,并在读取时让模型提炼相关性。我们从另一个方向得出了相同的结论。每条不同的指南都保留一个支持计数(support count)——有多少独立情节产生了它——而且我们从不将存储总结为少数几条规则。五个不同任务发现的经验和只出现一次的经验是不同的对象,两者都值得保留。所以,在核心问题上——是否应该将智能体来之不易的经验压缩成一份整洁的摘要?——ACE 和 ALTK-Evolve 给出了相同的答案:不。计数,而不是折叠。ACE 的逐条计数器和我们的支持计数是同一思想的两种拼写。
区别在于两个地方:记忆是如何构建的,以及它是如何传递的——而正是传递差异体现在 token 账单上。合并(存储如何构建)。ACE 通过一个 Generator → Reflector → Curator 循环来增长一个手册,应用增量式 delta 更新,并通过嵌入去重。我们对近似重复的经验进行聚类,并在聚类内合并,同时保留支持数——当几条经验合并时,幸存者继承它们的合计计数,这样存储缩小了,但不会丢失每条指南背后有多少经验支撑的记录。我们还提取类型化指南——策略、恢复和优化——带有因果归因和溯源到原始轨迹,并采用子任务粒度,这样在一个应用上学到的经验可以迁移到另一个应用。传递(推理时模型得到什么)。这是决定数字的那个。ACE 在每一步都注入完整手册,无论模型或任务如何,方式相同。我们将传递视为一个旋钮,而不是常数:一个小的固定高支持指南核心,加上为当前任务挑选的少数几条(余弦或 LLM 引导,按优先级加权)——或者,当模型有余力时,使用完整的合并集。相同的经验对两个智能体都可获得;区别在于 ACE 总是发送全部,而我们则发送给定模型实际能用的数量。
在 AppWorld 上,使用相同的基础 ReAct 智能体,内部运行两个系统:在强模型上,我们在两项指标上都更好,推理成本约为 ACE 的 40%。在弱模型上,我们以 56.0 对 54.8 险胜 ACE——接近到我们称之为准确度平局(我们的一次重复运行得到 54.8,几乎与 ACE 完全一致,这在该基准的逐次运行噪声范围内)——而成本约为其七分之一。
核心信息
本文对比了 ACE 与 ALTK-Evolve 两种让智能体从自身轨迹中学习的方法,指出在传递学习成果时,按需发送少量高价值指南比全量注入更具成本效益,在 AppWorld 上以更低成本达到相当或更优性能。
- 本文对比了 ACE 与 ALTK-Evolve 两种让智能体从自身轨迹中学习的方法,指出在传递学习成果时,按需发送少量高价值指南比全量注入更具成本效益,在 AppWorld 上以更低成本达到相当或更优性能。
- 原贴提到:ALTK-Evolve and ACE both let an agent learn from its own trajectories. T
- 来源:huggingface.co
成为会员查看完整内容
你已经看到了这篇内容的前置整理,剩余深度部分仅对会员开放。