跳到正文
meng shao· @shao__meng · X·· 5 天前AI 评分66
AI 导读

Databricks 发布 MemCurrent 长期记忆系统,采用在线读写与离线做梦机制来维护情景记忆和派生记忆。该系统提供插件、工具和离线流水线三种接入方式,在内部基准测试中将任务通过率从 22.3% 提升至 68.4%,同时降低了运行成本并加快了速度。

正文 · 原文

Databricks 发布 MemCurrent:用"在线读写加离线做梦"给生产 Agent 装上长期记忆,通过率提升 3 倍、Token 省 31%

@databricks 团队认为:记忆的关键不在于 "存得多",在 "留什么、怎么维护、如何衡量"。MemCurrent 用两类记忆加三种接入方式,在企业真实任务上同时提升了质量和效率,打破了"效果和成本只能二选一"的局面。已经用在 Agent Bricks Memory 和 Genie 里。
https://www.databricks.com/blog/memcurrent-designing-persistent-memory-production-agents

三种接入方式,各取所长
· Plugin:在会话的固定节点自动读写。好处是行为可预测,缺点是不需要记忆时也会消耗 Token。
· Tool:由 Agent 自己决定什么时候读写,更灵活,但效果受限于 Agent 自身能力。
· 离线 Pipeline:按计划或触发条件在后台批量更新,运行时成本低,但更新有延迟。

MemCurrent 三种都用,各放在最合适的位置。

两类记忆
· 情景记忆(episodic):原始会话轨迹,只追加不修改,由 plugin 逐步记录。
· 派生记忆(derived):从轨迹中提炼出的经验,以层级文件的形式存放,顶部有一份自动生成的 memory.md 索引。写入有两条通道:用户的显式要求由 Agent 工具(新增、更新、删除)立即生效;隐式经验交给离线的"做梦"(dreaming)流程提炼,它同时负责拆分过大的文件、合并重复内容、解决冲突。

读取分层:会话开始时先注入索引,让 Agent 知道自己记得什么;需要时再用 search_memory 和 fetch_memory 按需检索。

关键数据
· 公开基准(LoCoMo、LongMemEval、ConvoMem):平均得分 88.1%,和全量上下文的 87.8% 相当,但每题输入 Token 约少 12 倍(8.4K 对 103K)。在历史最长的两个基准上,甚至超过了全量上下文,因为塞进去的内容太多反而会干扰模型。
· 内部基准:基于 1.2 万多次真实 Genie 会话筛选,最终得到 114 个测试用例。通过率从无记忆时的 22.3% 提升到 68.4%,补上了到理想上限 78.6% 之间八成以上的差距;同时快了 1.35 倍、便宜了 1.44 倍。Mem0 在公开基准上表现不错,在这里只有 43.9%。
· 两个实例:一次纠错之后,Agent 不再犯"没读查询结果就编造表格"的错;把探索路径保存成工作流之后,一个相关的新问题从近 6 分钟缩短到 41 秒。

消融实验说明了价值从哪来
· 只用情景记忆:35.8%。主要问题是 Agent 只在大约三分之一的用例里想到去搜。
· 派生记忆加索引:66.1%,大部分提升来自这里。"先知道自己知道什么"非常关键。
· 两者结合:68.4%。原始轨迹能找回提炼过程中丢掉的细节。
· 提取策略:只用离线做梦 63.5%,只用在线工具 53.9%,两者结合 66.1%。

来源:meng shao · x.com