记忆存储服务(Memory Storage)基于表格存储 Tablestore 构建,为 AI Agent 提供 Serverless 的记忆写入、自动提取与语义检索能力,支持百万租户级数据隔离与跨会话记忆复用。
什么是记忆存储服务
记忆存储服务(Memory Storage)基于表格存储 Tablestore 构建,为 AI Agent 提供 Serverless 的记忆写入、自动提取与语义检索能力。开发者将对话消息或文本写入记忆库,服务保存原始消息为短期记忆,并自动提取可检索的长期记忆单元持久化到表格存储;检索时结合语义检索与文本检索(支持 Rerank 排序)返回相关长期记忆,供 Agent 在后续对话中按需召回。
相比自行实现记忆抽取与检索,开发者无需自建 LLM 调用、向量/全文检索、数据隔离与审计等能力即可使用。服务支持百万租户级数据隔离与跨会话记忆复用。
如需了解记忆存储服务的计费请参见产品计费;如需快速体验记忆存储服务,请参见写入并召回第一条记忆。
记忆存储服务当前支持地域:华北2(北京)、华东2(上海)、华东1(杭州)、华南1(深圳)、中国香港、新加坡。可就近选择区域接入。
功能优势
Serverless与弹性
全托管 Serverless 架构,用户无需关心底层资源的部署和运维。按量付费,零用量零费用;基于分布式架构水平扩展,满足百万租户、百亿条记忆的场景需求。
记忆自动提取,无需额外开发
入对话或文本后自动提取关键事实和偏好,生成结构化的记忆单元。开发者无需编写额外的提取逻辑,也无需自行处理记忆的抽取和组织。可通过记忆库级别的自定义抽取指令(
extractInstructions)引导抽取聚焦业务关键信息。精准语义检索,节省 Token
支持向量检索与全文检索的混合检索模式,以自然语言作为查询输入召回相关记忆。相比传入完整对话历史约节省95% 的 Token,避免 O(N²) 增长以及“Lost in the Middle”性能退化。
海量租户隔离
通过
appId、tenantId、agentId、runId四级 Scope 实现数据隔离,开发者可按应用、租户、Agent 和会话组织记忆数据边界,满足百万租户级别的多租户隔离需求。文件视图读取
服务托管的结构化记忆支持两种读取方式:通过 SDK、CLI 等接口进行结构化读取,或通过文件视图按目录和文件读取。文件视图以只读文件形式呈现记忆数据。应用仍通过结构化接口写入或修改源记忆,避免文件操作与结构化记忆产生冲突。
文件记忆
已有 Markdown 等 UTF-8 文本文件或需要自行组织记忆目录时,可以直接将文件写入文件记忆库。应用控制文件路径,并可新建、读取、更新、重命名和删除文件,以及查询历史版本。文件记忆 Dream 还能跨 Scope 归并、纠错和重组文本文件,并把结果自动写入指定的输出 Scope。
知识编译与记忆整理
Wiki 将来源文档异步构建为相互链接的 Markdown 页面供跨会话复用。Agent 可以先搜索 Wiki,再按路径读取命中页面,在不同会话中复用同一 Agent 的持久知识;记忆整理(Dream)在后台异步对已入库内容做二次提炼,可进行归并、去重、更新、提取技能画像等。
典型应用场景
场景 | 说明 |
多轮对话连续性 | 长对话场景中,将历史消息写入记忆库,由服务保留原始消息并提取关键事实。后续对话仅按需召回相关记忆,避免将完整历史全量注入上下文。 |
跨会话偏好沿用 | 用户在多个会话中表达的偏好、习惯和约束被提取为长期记忆单元,新会话中通过语义检索召回,使 Agent 在不同时间、不同入口仍能保持一致的应答风格。 |
多 Agent 知识共享 | 通过四级 Scope 中 |
Agent 资料图谱化 | 把产品说明、操作手册和项目约定作为 Wiki 来源持续维护,服务将资料构建为可搜索、相互链接且带来源引用的页面。不同会话可以共享同一 Agent Scope 的 Wiki,同时只读取当前任务需要的少量页面。 |
用户画像沉淀 | 将用户行为、属性和历史事实持续写入记忆库,由服务自动归并为结构化的画像单元,供推荐、客服、营销等下游 Agent 直接召回使用。 |
记忆提取为异步过程,且由系统自动完成,对写入实时性要求极高或需要完全自定义提取策略的场景需评估。
纯结构化数据查询建议使用表格存储宽表模型或关系型数据库。
仅需上下文窗口管理、不需持久化记忆的场景可直接使用 LLM 上下文窗口。
名词解释
记忆库的数据按以下实体组织。
实体 | 说明 |
MemoryStore | 记忆库,管理记忆数据的顶层容器 |
Memory | 长期记忆,从对话或文本中提取的可检索信息 |
Message | 短期记忆,写入的原始会话消息记录 |
Item | 带路径和版本的记忆文件 |
Wiki | 按三段 Agent Scope 组织的知识图谱页面集合 |
Dream Task / Action | 异步整理任务及其结构化记忆或文件变更记录 |
MemoryStore
MemoryStore 是记忆库,管理记忆数据的顶层容器。先创建记忆库,再向记忆库写入消息、检索记忆或查询审计记录。可按应用、环境(开发、测试、生产)或业务线划分记忆库;名称仅含字母、数字、下划线,最长 32 字符。
Memory
Memory 是长期记忆。服务在写入对话消息或文本后,会提取可长期保存和检索的信息,并生成记忆单元。每条通常包含记忆 ID、文本、Scope、元数据、创建时间及版本管理信息。
Message
Message 是短期记忆,即写入记忆库的原始会话消息记录。可通过 ListMemoryStoreMessages 查询;短期记忆的 Scope 规则见 Scope 目录层级管理。
Item
带路径和版本的记忆文件,在文件记忆库中按路径组织文本文件(如 Markdown),支持增删改查与历史版本查询。文件记忆 Dream 的跨 Scope 归并、纠错和重组见 Agentic Task 的记忆整理。
Wiki
按三段 Agent Scope 组织的知识图谱页面集合,供同一 Agent 在不同会话中复用持久知识,详情可参见知识编译(Wiki)。
Dream Task / Action
对已入库内容的异步整理任务(Dream Task),产出结构化记忆或文件变更记录(Dream Action),详情可参见记忆整理(Dream)。
Scope 目录层级管理
Scope 用于表示记忆数据的归属和隔离边界。记忆服务使用 appId 、 tenantId 、 agentId 、runId 四级 Scope。
字段 | 说明 |
| 应用标识,通常对应一个业务应用或产品 |
| 租户或用户标识 |
| Agent 标识 |
| 会话、运行或任务标识 |
Scope 的层级为:
appId > tenantId > agentId > runId核心规则:
写入时,
appId必填,其他字段为空时补为__default__。写入不允许使用通配符*。检索记忆时,
appId必填且不能为*。其他字段省略时表示__default__,显式传入*才表示通配。查询短期记忆时,四个字段均为必填且不允许通配符。
常见检索范围示例
检索范围 | Scope 设置 | 适用场景 |
当前会话内 |
| 只希望使用当前会话历史 |
跨会话 |
| 同一 Agent 在多次会话中复用用户偏好 |
跨 Agent、跨会话 |
| 多个 Agent 共享用户记忆 |
Scope 与多记忆库的选择
MemoryStore 支持按应用、环境或业务线创建独立记忆库。当数据属于同一应用中的不同用户或 Agent 时,推荐使用 Scope 在同一记忆库内隔离,管理成本更低,且支持通配符跨 Scope 联合检索。当不同业务域需要完全独立的数据空间时,建议创建多个记忆库。
记忆数据管理
记忆写入
记忆服务支持以下两种方式写入记忆:
对话消息写入 :通过
AddMemories接口传入messages数组。服务保存原始消息为短期记忆,并根据记忆库的outputTypes生成结构化记忆、只读记忆文件或两种结果。文本写入 :通过
AddMemories接口传入text字段,直接提交纯文本内容,并生成记忆库配置的输出。
写入时需指定 Scope 信息,其中 appId 必填,tenantId、agentId、runId 为空时自动补为 __default__。写入不允许使用通配符 *。
写入默认异步执行(sync=false):原始消息先落库并可立即作为短期记忆查询,配置的输出在后台生成。可通过 AddMemories 返回的 requestId,调用 GetMemoryTask 跟踪任务状态。包含 file 输出的记忆库只支持异步写入。记忆库还支持自定义抽取指令(extractInstructions),在创建或更新记忆库时设置,注入抽取提示词以引导该库的长期记忆抽取聚焦业务关键信息。
记忆检索
SearchMemories 支持使用自然语言检索长期记忆。服务结合语义检索和文本检索能力,并支持 Rerank 排序,默认启用 Rerank。
检索时 appId 和 tenantId 为必填字段,agentId 和 runId 可使用通配符 * 扩大检索范围。
检索结果同时返回融合得分 score 与归一化相似度 similarity。可通过 minSimilarity 过滤低相关结果。设置 includeEvidence=true,可在结果中附带命中记忆对应的原始消息片段(evidence),便于增强答题模型的可解释性。
长期记忆支持附加元数据(metadata)。元数据可用于存储业务自定义信息,例如记忆来源、标签和优先级等。元数据随记忆单元一起存储,检索结果中会返回对应的元数据字段。
Agentic Task
记忆整理(Dream)
记忆整理(Dream)是对记忆库中已有数据进行二次提炼的异步能力。结构化记忆库和可写文件记忆库使用不同的输入与写入模型。
结构化记忆 Dream
服务在后台分析长期记忆与原始消息,产出可应用的整理动作。整理对象分为三类:
记忆整理( memory):对长期记忆去重、改写、合并,并删除过时项。
技能提取( skill):从历史交互中提取可复用技能
画像提取( profile):沉淀结构化用户画像
结构化记忆整理支持 proposal、safe_auto 和高强度 plan 模式。proposal 生成提案,由人工或程序确认后应用;safe_auto 在达到置信度阈值时自动应用;plan 先等待计划批准,再执行已授权的删除范围。
文件记忆 Dream
对 inputType=file、outputTypes=["file"] 的记忆库,Dream 从一个或多个输入 Scope 冻结文本文件版本,并把整理后的完整结果自动写入一个确定的输出 Scope。文件动作包括新增、更新、改名和删除,所有更新与删除均使用版本前置条件保护并发写入。
文件记忆 Dream 固定使用高强度自动模式,不产生等待人工 Apply 的提案。查询任务和动作仍使用 GetMemoryDreamTask、ListMemoryDreamTasks 和 ListMemoryDreamActions。详细流程参见记忆整理(Dream)。
知识编译(Wiki)
Agent Wiki 把 /.wiki/raw/ 下的来源文件异步构建为相互链接的 Markdown 页面。每个 Wiki 唯一归属于一个记忆库和一个 appId / tenantId / agentId 三段 Scope;同一 Agent 的不同会话共享页面。
应用通过 GetWiki 查询或自动创建 Wiki,使用 IngestWiki 构建,通过 ListWikiPages、SearchWikiPages 和 GetWikiPage 消费已发布页面。新构建发布前,旧页面集合保持可读。详细流程参见知识编译(Wiki)。
企业级能力
请求审计
服务记录记忆库请求,可通过 ListMemoryStoreRequests 查询请求日志。审计记录包含操作类型、响应状态、延迟和失败原因等字段,适用于排查写入、检索和管理操作中的问题。
任务与可观测性
记忆写入与记忆整理均为异步任务,服务提供配套的查询能力:
GetMemoryTask与ListMemoryTasks:查询记忆抽取任务的状态与产出。GetMemoryDreamTask、ListMemoryDreamTasks与ListMemoryDreamActions:查询记忆整理任务与动作。ListMemoryStoreScopes:使用四级scope或结构化filter列出已登记的 conversation Scope;返回稳定的scopeKey,便于发现和分页遍历会话范围。ListMemoryStoreRequests:请求审计日志查询。
性能参考
从检索准确率、检索延时和存储规模三个维度对表格存储记忆服务进行了评测,并与业界主流记忆方案 Mem0 进行了对比。
维度 | 表格存储记忆服务 | 行业对比 |
综合检索准确率 | 88.25% | 较 Mem0(64.20%)提升约 37.4% |
P50 检索延时 | \~155 ms | 同类方案通常 200-500 ms,降低约 75% |
已验证存储规模 | 亿级别条记忆,可水平扩展无上限 | 同类方案多为百万至千万级 |
Token 节省 | 95% | 较 Plan A(全量注入)节省约 95% |
上述数据用于展示服务能力边界,实际效果会受到数据规模、查询方式、网络环境、模型配置和业务数据分布影响。以下是各维度的评测详情。