介绍记忆存储服务的系统架构、数据模型、Scope 多租户、适用性评估和性能评测,帮助技术决策者判断产品是否匹配业务场景。
系统架构
记忆存储服务采用全托管 Serverless 架构,用户通过 API 与服务交互,底层资源由平台自动管理。数据流转过程如下:
调用
AddMemories接口,传入对话消息(messages)或纯文本(text)。系统将原始消息保存为短期记忆。
系统从消息中提取可检索的长期记忆单元,并持久化存储到表格存储。
调用
SearchMemories接口时,服务结合语义检索和文本检索能力,并支持 Rerank 排序,返回相关长期记忆。
数据模型
记忆库的数据按以下实体组织。
实体 | 说明 |
MemoryStore | 记忆库,管理记忆数据的顶层容器 |
Memory | 长期记忆,从对话或文本中提取的可检索信息 |
Message | 短期记忆,写入的原始会话消息记录 |
MemoryStore
MemoryStore 是记忆库,管理记忆数据的顶层容器。先创建记忆库,再向记忆库写入消息、检索记忆或查询审计记录。
常见用法:
按应用创建独立记忆库。
按环境创建独立记忆库,例如开发、测试、生产。
按业务线创建独立记忆库。
记忆库名称只能包含字母、数字和下划线,最长 32 个字符。
Memory
Memory 是长期记忆。服务在写入对话消息或文本后,会提取可长期保存和检索的信息,并生成记忆单元。
一条长期记忆通常包含:
记忆 ID。
记忆文本。
Scope。
元数据。
创建时间。
版本和替换关系等管理信息。
长期记忆可通过 SearchMemories 检索,也可通过 ListMemories、GetMemory、UpdateMemory 和 DeleteMemory 管理。
Message
Message 是短期记忆,即写入记忆库的原始会话消息记录。AddMemories 写入时传入的 messages 会被保存为原始消息,可通过 ListMemoryStoreMessages 查询。
短期记忆接口要求填写完整 Scope,即 appId、tenantId、agentId 和 runId 均需提供,且不允许使用通配符。
记忆写入
记忆服务支持以下两种方式写入记忆:
对话消息写入:通过
AddMemories接口传入messages数组。服务保存原始消息为短期记忆,并从中提取长期记忆单元。文本写入:通过
AddMemories接口传入text字段,直接提交纯文本内容。服务从文本中提取可检索的长期记忆。
写入时需指定 Scope 信息,其中 appId 必填,tenantId、agentId、runId 为空时自动补为 __default__。写入不允许使用通配符 *。
记忆检索
SearchMemories 支持使用自然语言检索长期记忆。服务结合语义检索和文本检索能力,并支持 Rerank 排序,默认启用 Rerank。
检索时 appId 和 tenantId 为必填字段,agentId 和 runId 可使用通配符 * 扩大检索范围。
元数据
长期记忆支持附加元数据(metadata)。元数据可用于存储业务自定义信息,例如记忆来源、标签和优先级等。元数据随记忆单元一起存储,检索结果中会返回对应的元数据字段。
请求审计
服务记录记忆库请求,可通过 ListMemoryStoreRequests 查询请求日志。审计记录包含操作类型、响应状态、延迟和失败原因等字段,适用于排查写入、检索和管理操作中的问题。
Scope 多租户
Scope 用于表示记忆数据的归属和隔离边界。记忆服务使用 appId / tenantId / agentId / runId 四级 Scope。
字段 | 说明 |
| 应用标识,通常对应一个业务应用或产品 |
| 租户或用户标识 |
| Agent 标识 |
| 会话、运行或任务标识 |
Scope 的层级为:
appId > tenantId > agentId > runId核心规则:
写入时,
appId必填,其他字段为空时补为__default__。写入不允许使用通配符*。检索长期记忆时,
appId和tenantId必填,agentId和runId可使用*实现跨 Agent 或跨会话检索。查询短期记忆时,四个字段均为必填且不允许通配符。
检索示例:
agentId=""、runId="":检索该租户下所有 Agent、所有会话的记忆。agentId="sales_assistant"、runId="*":检索该租户下指定 Agent 的所有会话记忆。
常见检索范围示例
检索范围 | Scope 设置 | 适用场景 |
当前会话内 |
| 只希望使用当前会话历史 |
跨会话 |
| 同一 Agent 在多次会话中复用用户偏好 |
跨 Agent、跨会话 |
| 多个 Agent 共享用户记忆 |
Scope 与多记忆库的选择
MemoryStore 支持按应用、环境或业务线创建独立记忆库。当数据属于同一应用中的不同用户或 Agent 时,推荐使用 Scope 在同一记忆库内隔离,管理成本更低,且支持通配符跨 Scope 联合检索。当不同业务域需要完全独立的数据空间时,建议创建多个记忆库。
适用性评估
推荐使用的场景:
智能客服、销售助手、企业助手等对话型应用。
需要跨会话记住用户偏好、配置和历史选择的个人助理。
多 Agent 协作场景下的共享记忆管理。
需要保留原始会话记录并支持审计排查的 Agent 应用。
需要在大规模租户和大量记忆数据下保持稳定检索性能的生产系统。
需要评估的场景:
对记忆写入实时性要求极高的场景(记忆提取是异步过程,存在处理延迟)。
需要自定义记忆提取策略的场景(当前为系统自动提取)。
不推荐的场景:
纯结构化数据查询(建议使用表格存储宽表模型或关系型数据库)。
仅需简单的上下文窗口管理、不需要持久化记忆(可直接使用 LLM 的上下文窗口)。
性能评测结果
从检索准确率、检索延时和存储规模三个维度对表格存储记忆服务进行了评测,并与业界主流记忆方案 Mem0 进行了对比。
维度 | 表格存储记忆服务 | 行业对比 |
综合检索准确率 | 76.34% | 较 Mem0(64.20%)提升约 18.9%(12.14 百分点),处于行业第一梯队 |
P50 检索延时 | ~155 ms | 同类方案通常 200-500 ms,降低约 75% |
已验证存储规模 | 亿级别条记忆,可水平扩展无上限 | 同类方案多为百万至千万级 |
Token 节省 | 84%+ | 回答语义质量几乎无损(BERTScore F1: 0.8378 vs 全量注入 0.8535) |
上述数据用于展示服务能力边界,实际效果会受到数据规模、查询方式、网络环境、模型配置和业务数据分布影响。以下是各维度的详细评测。
检索准确率
评测基准:LoCoMo 数据集
LoCoMo 是当前记忆系统评测领域最具代表性的基准之一。与早期评测集只覆盖 3-5 轮短对话不同,LoCoMo 平均每条测试数据包含 300 轮对话、跨 35 个会话,贴近真实用户与 AI 助手长期交互的场景。
LoCoMo 原始定义了五类推理问答(单跳、多跳、时间推理、开放领域、对抗性问题),基于其中四类进行了评测。
评测维度 | 含义 | 日常对话中的典型场景 |
单跳推理 | 从单次会话中直接定位事实 | "我上次说我喜欢喝什么来着?" |
多跳推理 | 综合多个会话中的信息得出答案 | "根据我的饮食偏好和体检报告,推荐一份午餐" |
时间推理 | 理解时间线索和先后顺序 | "我先说想换工作,后来又说留下了,现在的想法是?" |
开放领域 | 结合用户历史信息与外部常识推理 | "我说过我对花生过敏,沙爹酱能吃吗?" |
评测结果:
记忆库方案 | 单跳推理 | 多跳推理 | 时间推理 | 开放领域 | 综合准确率 |
记忆存储服务 | 64.42% | 81.93% | 77.67% | 57.99% | 76.34% |
Mem0 | 68.97% | 61.70% | 58.26% | 50.00% | 64.20% |
在单跳推理(直接检索单条事实)上 Mem0 略优 6.6%,但在更贴近真实复杂度的多跳推理和时间推理场景中,表格存储分别提升超过 30%——当用户的问题需要 AI 把多次对话串联起来、理解时间先后做出判断时,表格存储记忆服务的检索质量明显更高。
检索延时
测试条件为单记忆库 120 万租户、1 亿+ 条记忆数据的超大规模场景,且不开启Rerank的场景。
TopK | 平均延时 | P50 延时 | P95 延时 |
5 | 164 ms | 155 ms | 269 ms |
10 | 198 ms | 174 ms | 288 ms |
50 | 234 ms | 222 ms | 384 ms |
亿级数据量下 P50 延时稳定在 200 ms 左右,即使返回 Top50 结果,P95 也在 384 ms 以内。换个直观说法:即使一个百万日活 App 的所有用户记忆汇总到一个库里,每次对话中的记忆检索依然能在 200 毫秒内完成,用户几乎感知不到等待。如果开启Rerank,检索延时会增长200-300毫秒。
存储规模
单记忆库已验证支持 120 万租户、1 亿+ 条记忆的存储与检索。基于表格存储的分布式架构,系统支持水平扩展,无理论上限——无需按租户数量做分库分表的容量规划,业务增长时存储层自动跟上。
Token 成本
维度 | Plan A(全量注入) | Plan B(Memory Storage) |
总 Token 消耗 | 18,768,794 | 2,873,531 |
相比 Plan A 节省 | -- | 84.7% |
BERTScore F1(语义质量) | 0.8535 | 0.8378 |
Memory Storage 记忆存储方案实现了 84%+ 的 Token 节省,且回答语义质量几乎无损。