文章摘要
文章介绍了MemoraX Code能让Coding Agent记住并复用工程经验。现有代码智能代理在长期项目开发中会重复工作,MemoraX Code构建本地与云端记忆系统,筛选关键信息。它在AML的Coding赛道中成绩优异,还支持Procedure Memory自动化构建。实验表明,沉淀的工程经验可提升代理表现、降低成本,且记忆触发准确性高,已适配多个主流Coding Agent。

如今的代码智能代理(Coding Agent)已经能高效完成代码编写、Bug修复乃至复杂工程任务,但在长期项目开发中,它们仍会陷入一个尴尬的循环:仿佛每次都是第一次接触这个代码仓。

举个具体的场景,开发者刚和某代码代理完成一次权限系统重构,几轮协作下来,代理已经掌握了项目当前权限架构的设计逻辑、不可随意修改的历史代码、曾因兼容性问题被否决的方案,以及数据库升级必须兼容旧版本的约束。这些并非仅通过阅读代码就能获取的信息,而是真实开发过程中沉淀的项目经验。

但到了第二天,当开发者开启新的对话窗口,代理又会重新扫描相同的代码,需要重新解释项目背景,甚至再次提出已经被否定过的方案,重新排查已经解决过的问题。哪怕对话过长导致早期信息被压缩,或是更换了不同的代码代理,这种重复工作都无法避免。我们拥有了越来越聪明的Coding Agent,却始终在让它们反复重新认识同一个项目。

当Coding Agent从一次性的编程工具转变为长期协作者,它们需要的不只是更大的上下文窗口,更需要持续积累的能力——知道哪些信息值得保留,何时应该调用这些记忆。这正是MemoraX Code想要解决的核心问题。

第二天回来,它还知道昨天发生了什么

如果代理拥有真正的长期记忆,最直观的改变就是不再需要反复解释相同的内容。前一天完成任务后积累的项目经验,在第二天开启全新对话时,不需要复制历史聊天记录或重新解释背景,就能在新任务涉及相关模块时自动生效,让项目经验不会归零。

新对话自动使用上一轮任务形成的记忆

这种记忆的连续性甚至不需要绑定单一代理,开发者可以在一个代理中完成任务,切换到另一个代理处理后续问题时,之前沉淀的项目认知依然可以发挥作用,真正实现“代理换了,项目记忆还在”。

在一个代理中形成的记忆,可在其他代理的后续任务中直接使用

即使始终使用同一个代理,长任务的对话不可避免会被整理压缩,但被压缩的内容中混杂着无关细节和关键经验:前者比如中间的无效尝试、调试输出或重复解释,后者比如“修改该模块必须兼容旧版本数据库”这样的约束,可能只出现过一次,却会在后续重构中起决定作用。普通的压缩机制只能保证不丢失上下文,却无法筛选哪些经验应该被保留。MemoraX Code正是要补上这一环,让被压缩的关键信息能在后续任务中被识别、提取,并在合适的时机重新进入上下文。

被压缩的关键信息在新任务中被重新召回

长期记忆并不是要永久保存每一句对话,恰恰相反,它真正需要解决的是:从持续的开发过程中,筛选出未来值得回忆的内容。

记忆不只是记住,更要学会怎么记

很多人会好奇,代理本身已经能保存历史对话,也能一次处理越来越多的信息,为什么还需要独立的记忆系统?因为真正困难的,并不是把更多历史保存下来,而是判断:什么值得记住,什么已经过时,以及什么时候应该重新想起来。

MemoraX Code为此构建了本地代码仓记忆与云端长期记忆:前者帮助代理快速理解代码仓当前的结构、关键入口和历史演进;后者则持续承载跨任务、跨对话、跨代理的项目经验和开发者习惯。当新的任务到来时,系统不会把全部历史重新塞给模型,而是只找回当前真正相关的信息。

但我们认为,这仍然不是代码记忆系统的终点。如今很多记忆系统仍然高度依赖人工规则:工程师通过提示词和预先设计的策略,规定什么应该写入、如何整理、什么时候召回。MemoraX Code希望进一步把这些判断变成可以通过训练持续提升的能力。

围绕代码开发场景,我们构造专门的记忆训练任务和长程开发轨迹,并建立针对记忆的评估与奖励机制。系统不仅判断“一条信息有没有被记下来”,还会进一步学习:它是否真的在后续任务中帮助代理做出了更好的决策?基于这些训练信号,记忆模型可以持续学习什么值得写入、什么应该更新、哪些经验应该被提炼,以及在什么任务中应该重新出现。

支撑这一过程的,是一套用来训练和测试代理的基础系统,包括运行环境、任务执行、反馈打分、效果评估和分布式训练等能力。在架构设计上,这套训练体系与用户的私有记忆数据相隔离。可学习的记忆能力通过专门构造的训练与评测体系不断演进,再以更强的模型能力服务线上系统。我们希望让记忆从规则驱动,逐渐走向数据与奖励驱动——让代理不仅拥有记忆,还能不断学会怎样更好地记忆。

记忆到底有没有让代码代理变得更好?

要判断记忆是否真正提升了Coding Agent的表现,最直接的方法就是把它放进标准化的Coding Memory Benchmark里测试。MemoraX在近期备受关注的AML(Agent Memory Leaderboard)的Coding赛道中取得了62分的成绩,位列第一,相比业界主流方案Claude Mem解题率提升10%

除了基准测试外,我们还想进一步回答一个问题:过去完成过的开发任务,能不能被自动沉淀成下一次可以复用的工程经验?

从“记住发生过什么”,到“学会下一次怎么做”

为此,MemoraX Code支持Procedure Memory的自动化构建。它可以从历史代码开发轨迹中,自动识别具有复用价值的解决过程,把一次任务里零散的分析、执行和验证步骤进一步提炼成结构化的工程经验,并最终以Skill的形式沉淀下来,供后续类似任务直接使用。

在一组实验中,MemoraX Code从123个历史任务片段中自动提炼出15条工程经验,进一步归纳为4类Procedure Memory

Procedure Memory自动提炼过程

这里留存的不再只是“上一次发生了什么”,而是进一步提炼:面对这一类工程问题,过去哪些分析方式、执行步骤和验证方法被证明是有效的。这也是我们理解的记忆从“记录历史”走向“从历史中学习”。

学到的经验,能不能真的帮助下一次任务?

真正的验证发生在下一步。我们把这些自动提炼出的Procedure Memory,用到了一个新的、持续约3小时的复杂开发任务中。代理依然需要自己理解需求和代码、修改实现、运行测试,并处理过程中不断出现的新问题。唯一的区别是,它可以使用过去开发中已经沉淀下来的工程经验。

结果显示:

综合得分:11.71 → 70.30

关键检查项通过数:2/13 → 10/13

复杂长程任务下Procedure Memory效果对比

这意味着,Procedure Memory带来的并不只是“更快想起一些历史信息”。过去已经验证过的工程经验,开始真正参与新的问题求解。

而且,这种提升并不是靠更多模型调用换来的。按照实验所使用模型的API单价计算,没有Procedure Memory时,总调用成本约为31.48美元;使用之后下降至24.37美元,降低约22.6%

原因其实很直观。没有历史经验时,代理需要重新理解问题、尝试方案、发现错误,再不断调整路径。很多模型调用,实际上消耗在了重新摸索过去已经探索过的事情上。Procedure Memory给代理的不是现成答案,而是过去开发过程中已经验证过的解决问题的方法和路径。代理仍然需要完成当前任务的理解、推理和执行,但不必每一次都从零探索。

记忆不只是记录历史,它开始把历史变成未来可以复用的经验。

还有一个问题:它会不会“自作聪明”?

记忆并不是召回得越多越好。一次前端样式修改,不应该突然出现几周前的数据库迁移经验;已经失效的项目决策,也不应该继续干扰现在的任务。在内部测试中,MemoraX Code85.5% 的记忆触发行为与用户判断一致81.2% 的记忆内容获得了正向反馈。它衡量的是另一种能力:不仅要记得住,还要尽可能想得对、出现得刚刚好。

目前,MemoraX Code已经完成对Codex、Claude Code、Deepseek Harness、OpenCode四个主流Coding Agent的支持,其他平台也在继续适配中。安装后,开发者还可以在平台中查看和管理自己的记忆,包括修改和删除。

写在最后

如今的Coding Agent竞争,大量注意力仍然集中在一次任务里:谁写代码更快,谁解Bug更强,谁能够完成更加复杂的软件工程任务。但真实项目不是一次性的。同一个代码仓会被反复打开,同一类问题会再次出现,一个开发者也可能在不同Coding Agent之间不断切换。

当代理真正进入长期开发以后,拉开差距的或许不再只是:第一次能走多远。还有:第十次,是不是仍然需要从零开始。模型能力决定一次能走多远,记忆决定下一次从哪里开始。MemoraX Code正在解决这个问题。

欢迎大家关注MemoraX Code官方用户群~

以上内容不代表本平台立场,仅供读者参考