当前的 AI 智能体(如自动网页浏览、写代码的 LLM agent)虽然能执行复杂任务,但存在一个关键局限:无法从过去的经验中学习。这导致以下问题:
- arrow_right 做任务 A 学到的经验不会帮助它做任务 B
- arrow_right 经常会重复犯同样的错误
- arrow_right 每次都像"第一次见到问题一样"去解决
这种局限性让智能体无法真正变得"越来越聪明",限制了其在持续任务中的表现。传统记忆系统存储原始轨迹或仅成功的流程,这些系统在不同环境中表现脆弱,且缺乏跨领域的可转移性。
Google 的创新记忆框架,让 AI 智能体从自身经验中学习并不断进化
当前的 AI 智能体(如自动网页浏览、写代码的 LLM agent)虽然能执行复杂任务,但存在一个关键局限:无法从过去的经验中学习。这导致以下问题:
这种局限性让智能体无法真正变得"越来越聪明",限制了其在持续任务中的表现。传统记忆系统存储原始轨迹或仅成功的流程,这些系统在不同环境中表现脆弱,且缺乏跨领域的可转移性。
ReasoningBank 是一个"推理记忆库",它让 AI 像人一样,总结经验、反思失败,从而在后续任务中做得更好。主要思路是:
这种循环让 AI 在不断积累中"自我进化"——类似人类的"经验学习"。
ReasoningBank 包含以下几个关键组件:
记忆项是从过去的经验中设计和提炼出的结构化知识单元,它们抽象了低级执行细节,同时保留了可转移的推理模式和策略。每个记忆项包含三个部分:
{
"title": "验证元素标识符",
"description": "在执行操作前验证页面元素的存在和状态",
"content": "当需要点击或交互时,先使用开发者工具检查元素是否存在、可见且可交互。如果元素不存在,可能需要等待页面加载或执行其他操作使元素出现。"
}
配备 ReasoningBank 的智能体可以从一个精心挑选的可转移策略池中汲取经验来指导决策。这使得智能体能够回忆有效的见解,避免以前观察到的陷阱,并更稳健地适应未见过的查询。集成过程分为三个步骤:
def retrieve_memories(query, memory_bank, k=1):
# 将查询嵌入为向量
query_embedding = embed(query)
# 计算与所有记忆项的余弦相似度
similarities = []
for memory in memory_bank:
memory_embedding = memory['embedding']
similarity = cosine_similarity(query_embedding, memory_embedding)
similarities.append((similarity, memory))
# 返回相似度最高的k个记忆项
similarities.sort(reverse=True)
return [memory for _, memory in similarities[:k]]
作者进一步提出了 Memory-aware Test-Time Scaling (MaTTS),即"记忆感知的测试时扩展",让 AI 不仅能记,还能更快地学。MaTTS通过为每个任务分配更多计算资源来生成多样化的轨迹,从而产生更好的记忆质量。
在并行设置中,针对同一个任务,AI 同时尝试多种不同方案,然后比较分析,提炼出更稳健的推理模式。通过对不同轨迹进行比较,智能体可以识别一致的推理模式,同时过滤掉虚假的解决方案。这个过程通过单一查询的多次试验促使多样化的探索,从而实现更可靠的记忆策划。
def parallel_scaling(task, k=5):
# 生成k个不同的轨迹
trajectories = []
for i in range(k):
trajectory = execute_task(task, seed=i)
trajectories.append(trajectory)
# 使用自对比提示提取最多5个精炼项
memories = extract_memories_from_trajectories(trajectories)
return memories
在顺序扩展中,AI 在一次任务中不断自我反思、修改和优化,逐步改进思路。在初步完成后,迭代地在单一轨迹内完善推理,遵循自我精炼的原则。在这个过程中,自我精炼中生成的中间笔记也被用作宝贵的记忆信号,因为它们捕捉了推理尝试、修正和见解,这些内容可能不会出现在最终的解决方案中。
def sequential_scaling(task, k=5):
# 初始轨迹
trajectory = execute_task(task)
# 迭代精炼k次
for i in range(k):
reflection = reflect_on_trajectory(trajectory)
trajectory = refine_trajectory(trajectory, reflection)
# 从中间笔记中提取记忆
memories = extract_memories_from_notes(trajectory.intermediate_notes)
return memories
通过 MaTTS,AI 生成更多对比数据,从成功与失败中提取更深层次的推理规律,形成"经验—反思—记忆—再提升"的正反馈循环。实验表明,MaTTS显著增强了记忆质量,特别是在WebArena-Shopping等任务中,当k=5时,成功率提升了+5.4%。
在多个测试环境中(网页操作、软件开发等),ReasoningBank 展现了显著优势:
| 基准测试 | 模型 | 指标 | 无记忆 | ReasoningBank | 提升 | MaTTS (k=5 并行) |
|---|---|---|---|---|---|---|
| WebArena (总体) | Gemini-2.5-Flash | 成功率 (%) | 41.4 | 49.7 | +8.3 | 55.1 |
| WebArena (总体) | Gemini-2.5-Pro | 成功率 (%) | 46.7 | 53.9 | +7.2 | N/A |
| WebArena (总体) | Claude-3.7-Sonnet | 成功率 (%) | 50.1 | 54.7 | +4.6 | N/A |
| SWE-Bench-Verified | Gemini-2.5-Flash | 解决率 (%) | 34.2 | 38.8 | +4.6 | N/A |
| Mind2Web (跨领域) | Gemini-2.5-Flash | 成功率 (%) | 1.0 | 1.6 | +0.6 | N/A |
| WebArena (成功步骤) | Gemini-2.5-Flash | 步骤数 | 6.8 | 4.7 | -2.1 (26.9%相对减少) | N/A |
相比其他记忆机制,ReasoningBank 显著更稳定、更高效,可学会从失败中改进。尤其在跨任务、跨领域测试中,ReasoningBank 的效果最突出,说明它的记忆是可迁移的、通用的。消融实验证实,失败经验对成功率的贡献为+3.2%,最优检索参数为k=1。
ReasoningBank 的提出标志着 AI 智能体发展的一个重要里程碑:
随着时间推移,策略从程序性(如"点击下一页")演变为反思性(如"验证元素标识符")和组合性(如"将任务与视图交叉引用")。这种演变表明了自我进化的发生,效率提升主要发生在成功的路径上。
未来,ReasoningBank 可能会在以下方向继续发展:
尽管 ReasoningBank 表现出巨大潜力,但仍存在一些局限性:
还没有人回复,快来发表你的看法吧!