Databricks 在 Agent Bricks 上推出 Agent Memory
Introducing Agent Memory on Databricks
Databricks 在智能体开发平台 Agent Bricks 上推出 Agent Memory,目前处于 Beta,运行在 Lakebase 上,基于其 MemCurrent 记忆架构。
原文给出记忆架构的三层设计与内部基准数字,可了解有状态智能体如何同时降本并保持个性化。
今天,我们在 Databricks 的智能体开发者平台 Agent Bricks 上推出智能体记忆功能。智能体记忆通过存储智能体应当记住的关键事实、偏好和工作流,提升智能体质量,同时降低成本和延迟。该功能今日以 Beta 版提供,运行在 Lakebase 上以实现高可靠性和低延迟,并基于 Databricks 最新的记忆研究构建。
没有记忆,智能体可能会重新发现关键事实、忘记用户偏好,并重复它已经被纠正过的错误。为此,许多开发者正在自行构建记忆解决方案,但会遇到大量设计问题——例如,记忆应该存储在哪里?记忆应该如何合成?以及一旦生成,应该如何检索?
为解决这一问题,Databricks Agent Memory 基于 MemCurrent 架构构建,该架构由 Databricks Research 首创。MemCurrent 结合了三种访问模式:自动记录和加载上下文的插件、智能体按需调用的工具,以及在后台整合记忆的离线 dreaming 流水线。所有这些都通过 Lakebase 以极低延迟提供服务。在我们的内部基准测试中,实施这一记忆架构使智能体在真实企业任务上的通过率提升至三倍,同时使用的 token 减少了 31%。
Agent Memory 加入了 Agent Bricks 的其他功能,包括智能体托管、Databricks Sandbox、Unity Gateway、预构建的 MCP 服务器,以及追踪与评估,为开发者提供构建生产级智能体所需的全部基础设施能力。
问题:无状态智能体为同一上下文重复付费
一旦智能体从演示走向日常使用,两个问题就会立刻显现。
- 每次重新发现都会推高成本。 无状态智能体会重新推导它昨天已经弄明白的内容:哪张表存放使用数据、某个内部缩写是什么意思、哪种连接方式真正有效。在我们研究中的一个真实会话里,智能体进行了 11 次工具调用、使用了 8 个子智能体,并花了近六分钟来回答一个关于某产品最大客户的问题。第二天,它本会把这些全部再做一遍。
- 智能体永远无法个性化。 用户说明了一项偏好、纠正了一个错误,或解释了其团队如何定义某个指标,而智能体在会话结束时就把这些忘了。要么用户重复自己,要么智能体重复错误。
智能体开发者以及运行其智能体的平台团队有两种常见的变通方案。每一种都是用一个问题换另一个问题:
- 将完整历史重放进上下文 在历史变长之前是可行的。在开源记忆基准测试中,在相同准确率下,完整上下文每个问题使用的输入 token 约为设计良好的记忆的 12 倍,而在最长的历史上,它的得分更差,因为无关的轮次会干扰智能体。
- 自行构建记忆 基于对象存储或向量数据库,意味着要自行负责提取、去重、检索和访问控制。记忆会过时,矛盾的事实会堆积,而且没有人能判断是哪条记忆导致了糟糕的回答。
团队需要的是既能同时让智能体更便宜、更个性化,又无需为此再搭建另一套系统的记忆。
Databricks 上的 Agent Memory 如何工作

图 1. Agent Bricks 上的 Agent Memory。智能体将每一轮追加到托管会话中,直接召回并保存记忆,记忆管道在后台将会话提炼为长期记忆。
Agent Memory 包含三个部分:
- 托管会话 以你的框架原生格式,将每段对话记录为消息、工具调用和结果的有序历史。
- 托管记忆 保存值得记住的内容:用户画像、偏好、领域知识和工作流。会话开始时,智能体加载记忆中已知内容的索引。会话期间,它通过混合关键词和语义搜索查找细节。
- 记忆管道 在后台将会话提炼为记忆,可按需触发或定期在后台运行。它们提取持久的事实和偏好,去除重复项,并替换被更新对话所推翻的事实。
一切运行在 Lakebase 上,这是 Databricks 的无服务器 Postgres,在你的工作区中预置并由 Databricks 运营。这确保记忆的存储和检索快如闪电,并且你的存储可以随智能体流量一同扩展。
基于我们的记忆研究构建
Agent Memory 是 MemCurrent 的生产实现,MemCurrent 是 MemCurrent:为企业智能体设计记忆 中描述的记忆系统。我们的研究人员的核心发现是,记忆最好分为两层:一层是所发生事件的原始记录,另一层是值得记住内容的提炼记录,后者由后台进程保持最新,而非由智能体在任务中途临时写入。
以这种方式构建,记忆同时提升了质量和效率。智能体通过的任务数量约为无记忆智能体的三倍,完成速度更快,使用的 token 更少。同样的基础设施已经为 Genie 中的记忆提供支持,Genie 是 Databricks 面向业务用户的自然语言体验。
图 2. 在 Databricks 内部企业数据任务记忆基准上,有记忆与无记忆的智能体对比。来源:MemCurrent 研究。
你的智能体会发生哪些变化
- 每任务成本更低。 智能体会跳过已经做过的工作。在上面的示例中,一旦工作流被保存到记忆,智能体在 2 次工具调用和 41 秒内回答了一个相关的后续问题,而此前需要 11 次工具调用和近六分钟。
- 持久化的个性化。 偏好、纠正和团队特定定义会跨会话保留,并按每个用户划定范围,因此人们不必再重复自己。
- 错误不再重犯。 智能体会记住自己的错误,并能避免重蹈覆辙——节省宝贵的时间和 token。
- 你拥有并控制的记忆。 会话和记忆存放在你的 Lakebase 项目中,独立于任何单一智能体框架。开发者可以读取、导出和删除智能体为每个用户保留的条目,并向记忆管道提供指令来引导其保留内容,例如“保留持久的客户偏好;忽略一次性的调试笔记”。
- 覆盖整个循环的单一平台。 同一个智能体通过 Unity Gateway 使用模型,使用 Agent Bricks CLI 部署,并通过 Agent Bricks 的追踪进行追踪和评估,且包含记忆功能。
开始使用
这一切都不需要你在自己这边搭建新的基础设施。Agent Bricks CLI 可以帮助你在几分钟内部署一个带记忆和会话的 agent。
从那时起,你的 agent 与每位用户的下一次对话都会从之前对话中学到的内容开始。更多信息,请参阅快速入门,创建一个带记忆的新 agent;或参阅我们的教程,为现有 agent 添加记忆。
Agent Memory 是 Agent Bricks 的一部分,后者是 Databricks 的 agent 开发者平台,可使用任意模型、框架或 harness 大规模构建、运行和改进自定义 agent。 探索 Agent Bricks,了解该平台的其他功能。
更多资源
- 在 10 分钟内构建一个有状态 agent,请参阅Agent Bricks CLI 文档。
- 为现有 agent 添加记忆和会话,请参阅agent 记忆和会话文档。
- 阅读背后的研究,请参阅MemCurrent:为企业 agent 设计记忆。
来源:Databricks Blog · databricks.com