Engram:由 Weaviate 提供支持的内存服务
Engram 是 Weaviate 推出的托管内存服务,专为智能体应用设计,旨在提供简单易上手且高度可定制的记忆管理。它通过异步管道提取、整合并持久化记忆,支持主题、作用域和缓冲区等高级功能,助力智能体实现个性化与持续学习。
随着智能体应用从实验性功能转向生产级用例,一个关键发现是:当它们完全融入系统、具有强个性化并能持续学习时,效果最佳。这些智能体需要记忆——作为可靠且可预测的基础设施,而非事后添加的临时方案。为此,Weaviate 推出了 Engram,一个基于 Weaviate 向量数据库的托管记忆服务,旨在让入门简单,同时足够灵活以适配任何用例。
记忆为何重要?
当聊天机器人忘记你的偏好时,会令人困扰。但对于执行长期复杂任务的智能体而言,问题可能更严重。没有记忆的连续性,智能体无法从过往经验中学习,只会反复解决相同的中介问题,浪费时间和令牌。虽然前沿模型的长上下文窗口看似能解决问题,但塞满上下文并非最佳方案。大语言模型容易“迷失在中间”,有效上下文长度远低于 100%,且过长的上下文会降低准确性、增加延迟和成本。
简单存储每条消息虽能解决延迟和成本问题,但原始对话充满噪音、矛盾和信息变化。依赖大语言模型一次性解决所有不一致性比逐步处理更困难。将所有记忆视为单一对话也无法适应多智能体系统等高级场景。
最好的方法是主动维护记忆,而非让上下文无限增长。
Engram 的工作方式
Engram 基于 Weaviate 向量数据库,围绕异步管道设计。当你添加原始数据时,管道会提取记忆、协调新旧信息并持久化到 Weaviate 中,以供查询。它提供了通用记忆用例的入门模板,同时底层系统高度灵活、可配置。自定义选项从简单的自然语言描述(说明哪些主题感兴趣)到完全控制管道中的各个步骤。
入门非常简单:创建项目 API 密钥后,通过 REST API 或 Python 客户端即可添加数据。Engram 将启动管道运行,提取与配置主题匹配的记忆并集成到现有记忆中。例如,若用户表达了对向量的喜爱,Engram 会创建新记忆;若此前已提及,则会忽略以避免重复。由于管道异步运行,API 延迟极低,你可以“即发即忘”原始数据,依靠 Engram 记住所需内容。
之后,你可以通过语义搜索检索相关记忆。除了简单的 API,Engram 还提供了丰富的组织能力。
记忆组织与作用域
Engram 将记忆自动归类到预配置的主题中。主题是自然语言描述,告诉大语言模型提取什么信息以及如何分类。每个主题都有“作用域”,控制哪些原始数据可以影响该记忆。作用域组合了硬隔离和软隔离:项目级记忆在所有用户间共享;用户级记忆仅属于特定用户,由 Weaviate 的多租户功能严格隔离;属性级记忆附加键值数据,提供软隔离,查询时可选择是否按属性过滤。
主题还可以标记为“有界”,即每个作用域内最多只有一个记忆对象。这可用于实现用户画像等特性,确保智能体系统提示中始终有该记忆。
管道与步骤
Engram 使用管道精确控制原始数据如何加工成记忆。管道由多个步骤组成,异步运行,逐步将原始数据转换为记忆批次并持久化到 Weaviate。管道基于 Temporal 工作流构建,提供持久执行,确保数据添加后管道一定会完成。管道步骤包括:
提取步骤:使用大语言模型从原始数据中提取与主题匹配的记忆。支持对话数据、字符串数据和预提取记忆三种输入类型。
转换步骤:使用大语言模型决定如何将新记忆集成到现有记忆中,或进行特定用例处理。例如,去重或处理偏好变化时,会查询现有记忆并决定动作(保留、重写或删除)。
缓冲区:允许管道持有中间记忆,直到满足触发条件(如数据量、时间间隔)再统一处理。缓冲区支持去抖动、等待完整信息、每日汇总等场景。
实际应用示例
示例1:用户对话——用户告知升职为CEO,Engram 提取记忆,发现已有“机器学习工程师”记忆,于是重写为“用户曾为机器学习工程师,现已升任CEO”,同时删除新记忆以避免重复。
示例2:多智能体持续学习——一个多智能体RAG系统中,用户建议搜索喜剧电影时应使用过滤器。Engram 分别提取任务目标、已采取行动和反馈,再通过缓冲区合并为一条经验记忆:“当用户要求查找特定类型(如喜剧)的电影时,应在 genres 属性上过滤,而非执行 near-text 查询。”这条经验可作用于项目范围,让所有用户受益,或限定于单个用户以保护隐私。
集成到应用中
在标准聊天机器人应用中,每次新消息都调用 client.memories.add。对于非对话数据,使用字符串类型;如需完全控制提取,可使用预提取数据。检索记忆时,可将用户消息作为搜索查询,或将搜索方法暴露为工具调用。对于已知的具体记忆,可使用提取模式。
Engram 旨在既高度灵活又简单易用。它提供了个性化和持续学习的预构建模板,并计划集成 Claude Code 等编码智能体。如果你有兴趣了解更多,现在即可注册预览。