AutoMem:让AI学会管理记忆,解决长任务中的信息熵失控问题 你给 Agent 配了 RAG、向量库、summary buffer甚至让它把中间结果写进文件但任务一长它还是会跑偏。问题大概率不出在“有没有地方存东西”而是这些信息根本没被管理好。长任务会不断冒出新线索、新状态、新经验如果只是一股脑往文件里堆用不了多久就会重复记录、旧信息没更新、想查的时候搜不到重点、关键线索被淹没在一堆废话里。所以记忆系统不能只“存储”信息还得有判断力什么时候该记什么时候该去翻旧账旧内容是覆盖还是保留文件该怎么组织——这些共同决定了记忆到底能不能被用起来。Stanford 有篇论文正好在讨论这个叫「AutoMem: Automated Learning of Memory as a Cognitive Skill」。论文的核心观点是记忆管理本身就是一项可以学习的技能而不是搭好基础设施就能自动获得的副产品。换句话说Agent 除了要把任务做完还得学会分辨——哪些信息值得留什么时候该回头查写过的东西要不要更新记忆该怎么组织才方便以后接着用。1. 先搞清楚 AutoMem 真正解决的是哪类重复劳动在 NetHack 这种长流程游戏里Agent 得记住地图、物品、状态、策略、探索路径这些东西。项目早期只要看到新位置Agent 就往同一个 dungeon_map.txt 文件追加位置信息。这看起来很合理但很快问题就出现了。Agent 在地图里来回走动是常事同一个坐标很可能来回被访问。如果每次访问都往文件末尾加一条记录文件只会越写越长重复内容也越堆越多。到后面 Agent 想查看这个文件时真正有用的信息反而被埋在一堆过时记录里翻不出来。针对这些问题AutoMem 把这种 append-only 的写法改成按坐标做 upsert——同一个位置有了新观察就直接覆盖掉旧记录文件里始终只留这个坐标的最新状态。这个例子体现了 AutoMem 的工程意义。记忆系统的关键不只是能不能写文件还在于这些文件会不会越写越乱。地图、库存、状态、策略这些信息要是混在一起Agent 读取时会越来越混乱反过来只要把文件和 schema 组织清楚后续 Agent 的决策就会稳不少。NetHack 的地图文件从 append-only 改成按坐标去重之后每一步新增的记忆内容从 138 个字符降到了 6 个字符减少了 95%。这看起来只是个很小的 schema 调整但对长任务来说会很有用。毕竟长任务一般要跑很多步早期写入的一点点冗余会滚雪球式地积累下去后面就变成越来越重的上下文噪声。1.1 记忆管理的本质是信息熵的控制问题从信息论的角度看记忆管理本质上是在控制信息熵的增长速度。一个无序追加的记忆系统熵会随着任务步数线性甚至指数增长而一个经过优化的记忆系统熵的增长会被有效抑制关键信息始终保持在可检索的状态。AutoMem 的价值不在于发明了新的存储介质而在于建立了一套控制信息熵的机制。这套机制让 Agent 在长任务中能够维持记忆的有效性而不是让记忆随着任务推进逐渐失效。1.2 从工程实践看记忆管理的三个层次在实际工程中记忆管理可以分成三个层次第一层是存储层关心数据存在哪里、怎么存、读写性能如何。这是大多数现有方案关注的层面。第二层是组织层关心数据如何分类、索引、关联、更新。AutoMem 主要在这一层发挥作用。第三层是认知层关心 Agent 如何理解、推理、利用记忆信息。这是记忆管理的最终目标。很多团队在第一层投入了大量精力却忽略了第二层的组织问题导致记忆系统虽然存在但实际效用有限。2. 为什么单次跑通不等于能稳定批量使用AutoMem 的框架可以拆成两层来理解。中间米黄色的部分是 Agent 本体。它左边是当前的游戏观察地图、HP、背包中间是 game LLM 在做的三件事LOG记录/更新记忆、PLAN查阅记忆、做决策、GAMEPLAY真正落子行动右边就是那个 memory/ 文件夹里面是各种 .txt 文件。这一块是两层外循环共同作用的对象两层外循环都会去改它、影响它。上方青绿色的部分是 OUTER-LOOP 1负责优化结构。这里的 meta-LLM 扮演的是结果审查员的角色它会看完整 episode 的轨迹哪怕它动辄一万到十万步。然后它会去分析 Agent 在记忆管理上哪里出了问题再回过头去改 Agent 的 scaffold——包括 prompt、代码逻辑也包括记忆的 schema。前面提到的地图文件从 append 改成 upsert就是这一层干的事。meta-LLM 改完之后会再重新部署、再观察、再迭代这是一个循环。下方红色的部分是 OUTER-LOOP 2负责优化能力。这里的 meta-LLM 干的是另一件事从海量轨迹里挑出值得学习的记忆操作定好训练数据的标准和构成选 LoRA 配置最后训练出一个专门的 memory specialist。这里提一下米黄色部分下面的两块小方框task model负责游戏动作是冻结的权重完全不动真正被训练、被替换的是 memory specialist负责记忆操作它是由 LoRA 微调出来的。AutoMem 没去优化模型执行任务的能力优化的始终只是“怎么记、怎么查”这一部分内容。2.1 第一层循环结构优化的迭代过程结构优化循环的核心是“观察-分析-改进”的迭代过程。meta-LLM 会分析整个任务轨迹识别记忆管理中的低效模式然后提出具体的改进方案。比如在 NetHack 环境中meta-LLM 可能观察到Agent 频繁重复记录相同位置的信息记忆文件变得冗长难以检索关键状态更新被淹没在次要信息中基于这些观察meta-LLM 会提出改进方案如将 append-only 改为 upsert 机制按信息类型拆分记忆文件建立更合理的索引结构这个过程不是一次性的而是持续迭代的。每次改进后系统会重新运行任务观察改进效果然后进行下一轮优化。2.2 第二层循环能力训练的精细化操作能力训练循环关注的是记忆操作的质量和效率。通过从大量任务轨迹中筛选出高质量的记忆操作样本系统可以训练出专门负责记忆管理的 specialist 模型。这个训练过程有几个关键点训练数据来自实际任务中的成功案例只训练记忆相关的能力保持任务能力的稳定性使用 LoRA 等参数高效的方法进行微调这种分工明确的架构让系统能够在不影响核心任务能力的前提下专门优化记忆管理技能。3. 实验结果揭示的记忆管理价值边界论文在三个长任务游戏环境里做了实验Crafter、MiniHack 和 NetHack。这三者有个共同点任务周期长、世界会持续变化、历史信息很关键。Crafter 涉及探索、采集、制作和战斗NetHack 则是极其复杂的 roguelike 环境一个 episode 能长到 10⁴ 到 10⁵ 步。论文实验用的基础模型是 Qwen2.5-32B-Instruct。结果数据显示只优化记忆不动任务模型的权重AutoMem 在三个环境里都带来了大约 2× 到 4× 的提升。具体来说memory-as-file-system 的初始版本在 Crafter / MiniHack / NetHack 上分别是 25.00、7.50、0.42经过 scaffold 优化loop 1后提升到 47.27、27.5、1.57再加上记忆训练loop 2进一步涨到 51.36、30.00、1.85。这组结果说明一件事长任务能力不完全取决于模型参数规模。论文提到优化后的这个 32B open-weight 模型在这些任务上已经接近部分闭源前沿系统的水平。3.1 行为层面的效率提升比分数提升更有意义行为层面的变化主要是 scaffold 优化之后Agent 的低效动作明显地减少了。这里的低效动作是 stuck动作没带来任何环境变化和 oscillation来回折返、原地绕圈。经过优化后三类长任务环境的无效动作比例下降了 32% 到 65%。记忆本身的操作也变干净了重复写下降 68% 到 83%空搜索下降 13% 到 50%每一步塞进上下文的 token 量也降了 3% 到 30%。这组行为数据其实比最终分数更能说明问题AutoMem 带来的提升本质上是把 Agent 在长任务里几种常见的浪费给消掉了——原地卡住、来回绕路、写重复信息、搜索扑空。一个真正会用记忆的 Agent不会把所有东西不假思索地堆进文件它会先查已有记录再决定要不要更新会用更结构化的方式记地图、库存、状态也会主动减少重复内容让自己后面更容易查到有用的东西。3.2 32B 模型性能媲美闭源模型的深层含义这个结果挑战了一个常见假设更大的模型参数总是意味着更好的性能。AutoMem 显示通过优化记忆管理这种“软技能”中等规模的模型也能在特定任务上达到接近顶尖模型的水平。这对实际部署有重要启示资源受限的场景下优化系统架构可能比升级硬件更有效记忆管理等专项能力的优化具有很高的性价比开源模型通过针对性优化可以在特定领域达到商用水平不过需要注意的是这种优化是有领域特定性的。在记忆密集型任务中效果显著但在其他类型的任务中可能收益有限。4. 把一次经验沉淀成可复用流程才是这类方案的长期价值AutoMem 最值得拿出来讲的一点是它把 Agent Memory 从“存储组件”往前推了一步推到了“能力训练”这个层面。过去聊 memory讨论往往会落在具体实现上向量库怎么选召回怎么做summary 怎么写长上下文怎么裁剪。AutoMem 提醒我们的是真正决定 Agent 长任务表现的可能还有一层更底层的东西——Agent 会不会管理自己的记忆。它知不知道什么值得记下来写之前会不会先查一下有没有记过能不能避免重复记录能不能把记忆组织成后面真派得上用场的结构…这些工程细节放在长任务中会不断地累积最后直接决定 Agent 能不能把事情做完。4.1 从项目经验到可复用模式的转化在实际工程中我们可以借鉴 AutoMem 的思路建立自己的记忆管理优化流程首先建立记忆操作的分析框架记录每次记忆读写的上下文和结果识别重复、无效、低效的记忆操作分析记忆检索的成功率和准确性其次制定针对性的优化策略对于重复写入建立去重机制对于检索困难优化索引结构对于更新频繁设计增量更新策略最后将成功经验固化为可复用的模式总结有效的记忆组织方案提炼通用的记忆操作最佳实践建立记忆质量的评估标准4.2 记忆管理作为独立技能模块的价值AutoMem 的一个重要启示是记忆管理可以作为一个独立的技能模块进行优化和训练。这种模块化的思路有几个优势专业化分工不同的技能模块可以由不同的专家模型负责提高整体效率。可替换性记忆管理模块可以独立升级或替换不影响其他功能。针对性优化可以针对记忆管理的特定问题进行专门优化。在实际系统中我们可以考虑将记忆管理、任务规划、工具调用等能力分别封装成独立的模块通过统一的协调机制进行集成。5. 从实验环境到工程实践的迁移路径AutoMem 目前的实验仍然有几个边界。首先论文里的记忆是 episodic 记忆也就是每个 episode 开始时文件系统重新初始化并没有跨 episode 保留长期经验。未来如果要用于真实工作流实验持久化记忆会是一个重要方向。其次实验主要发生在游戏环境中。游戏任务适合研究长周期记忆因为它有地图、库存、路径、目标和反馈但真实工程任务会涉及更多复杂约束比如代码库演化、权限、安全、多人协作、工具调用失败等。还有一点是论文中三个环境分别优化了不同 scaffold 和 memory specialist。因此它还没有证明一个通用 memory scaffold 可以跨任务泛化。5.1 工程化部署的实践考量要将 AutoMem 的思路应用到实际工程中需要考虑几个关键问题记忆持久化策略如何设计跨会话的记忆保存和加载机制记忆数据如何版本管理多任务记忆隔离同时处理多个任务时如何避免记忆混淆需要建立什么样的命名空间和权限机制记忆安全性敏感信息如何保护记忆操作需要什么样的审计和追溯能力性能与成本平衡记忆系统的响应时间、存储成本、计算开销如何优化这些问题的解决方案需要结合具体的业务场景和技术栈来设计。5.2 渐进式实施的推荐路径对于想要引入类似能力的团队我建议采用渐进式的实施路径第一阶段建立基础的分析能力记录现有的记忆操作模式识别主要的效率瓶颈制定初步的优化目标第二阶段实施针对性的优化从最突出的问题入手采用相对保守的改进方案建立效果评估机制第三阶段构建系统化的能力将成功经验固化为标准流程建立持续优化的反馈循环考虑引入专门的训练机制这种渐进式的 approach 可以降低风险确保每一步改进都建立在可靠的实践基础上。6. 记忆管理的未来发展方向AutoMem 展示了记忆管理作为一个可训练技能的可能性但这只是开始。从更长远的角度看记忆管理可能会朝着几个方向发展。6.1 个性化记忆策略的学习未来的记忆系统可能会根据任务特性、用户偏好、环境条件等因素自动学习最适合的记忆策略。不同的任务可能需要不同的记忆粒度、更新频率、组织方式。例如创意写作任务可能需要保留更多的中间版本和灵感碎片而数据分析任务可能更需要精确的结果记录和版本追踪。6.2 跨模态记忆的统一管理随着多模态模型的发展记忆系统需要处理文本、图像、音频、视频等不同类型的记忆内容。如何建立统一的记忆表示和管理机制是一个重要的挑战。这可能涉及到跨模态的记忆编码和检索多模态记忆的关联和推理异构记忆内容的统一管理6.3 记忆与推理的深度集成最先进的记忆系统不会只是被动的信息存储而是会主动参与推理过程。记忆管理将与规划、推理、决策等能力深度集成形成更加智能的认知系统。这种集成可能体现在记忆驱动的推理策略选择基于记忆的假设生成和验证记忆引导的探索和发现AutoMem 为我们打开了一扇门让我们看到记忆管理作为一个独立研究方向的潜力。虽然现有的方法还有局限性但方向是明确的未来的智能系统需要更加成熟、更加自适应的记忆管理能力。记忆管理的优化不是一劳永逸的工作而是需要持续投入和迭代的过程。正如 AutoMem 展示的那样通过系统化的方法和适当的工具支持我们可以在不增加模型规模的情况下显著提升智能系统在长任务中的表现。这种性价比极高的优化路径值得每一个从事 AI 系统开发的团队认真考虑。