简介:给AI智能体加上“记忆”,业界常见路径有检索型记忆与结构化记忆系统两类。本文从架构、功能、成本、适用场景等维度系统对比两类方案的差异与优劣,并结合公开评测思路给出条件化的选型建议与迁移注意事项,帮助开发者为智能体选对记忆方案。
大模型的上下文窗口有限,而真实业务中的智能体往往需要跨会话、长周期地与用户交互:今天聊过的偏好,下周还要记得;上周讨论到一半的任务,今天要能接着推进。如果只靠把历史对话全部塞进提示词,既受窗口长度限制,也会推高token成本、稀释关键信息。因此,为智能体外挂一套“记忆系统”,已成为Agent工程中的常见做法。
目前业界的记忆方案大体沿两条路线演进:一条是轻量的检索型记忆,把历史对话片段存入外部存储,需要时按相似度取回;另一条是近年出现的结构化记忆系统,不止存储和检索,还对记忆进行提取、组织与理解。一些开源记忆系统即属此类,它们在公开的长对话记忆评测基准中报告了较高的推理准确率。本文围绕这两类方案展开系统对比,回答“有什么区别、怎么选、迁移要注意什么”。
方案A:检索型记忆(外部记忆库方案)
方案B:结构化记忆系统(记忆构建 + 记忆感知的闭环方案)
方案A存的是“碎片”:原始片段或摘要,彼此缺乏结构关联。当用户问“我们之前都讨论过什么”,纯相似度检索很难把散落在多轮会话中的相关片段完整串起来,尤其是跨会话的多跳问题。
方案B在写入时先做边界检测,把对话切分为完整事件,再提取带主题脉络的情节记忆。“上周聊某项目的部署、这周聊它的监控”会被归入同一条主题线索,回答回顾类问题时更完整。这是两类方案最本质的差异:记忆的粒度与组织结构不同,直接决定召回质量的上限。
方案A是被动的:只有查询与库内内容相似度足够高才召回,用户未提及关键词时,相关记忆可能一直“沉睡”。方案B强调“感知”:在理解当前任务的基础上,主动捕捉记忆与任务间的深层关联。例如用户随口提到“明天要开家长会”,系统可关联此前的家庭安排与时间偏好。这种能力依赖写入侧沉淀的结构化记忆,是检索型方案难以低成本复制的。
方案A若要个性化,通常需单独维护用户档案,更新依赖人工规则。方案B把画像提取作为记忆管线的内建环节,偏好、技能、价值观等随对话持续更新,“越聊越懂你”。对长期陪伴型、个性化助理类产品,这直接影响体验。
结构化记忆系统通常还会提取“未来要做的事”(待办、约定、提醒),把记忆从“回顾过去”扩展到“面向未来”。检索型方案一般不覆盖此类能力,需业务自行开发。
方案A链路短、组件少,核心是“向量化 + 向量检索”,可完全基于云上通用能力(向量数据库、大模型服务等)自行搭建。方案B链路长,写入侧涉及多次大模型调用(边界检测、情节提取、画像提取、事件记录提取、群组画像分析等),需要统一的模型接入层管理调用、重试与成本核算;架构更重,但更换底层模型也更灵活。
业内已有公开的长对话记忆评测基准,多以大模型作为评审的方式对多跳推理、时序理解等能力打分。据公开资料,结构化记忆类方案在此类基准上报告过90%以上的推理准确率,优于被对比的传统检索方法。但官方数据来自特定评测集,实际业务效果应以自有数据的离线评测为准。
示意性伪代码对比两种管线:
# 方案A:检索型记忆(简化)def write_memory_A(dialogue):text = summarize_or_raw(dialogue)vector_db.upsert(embedding(text), text)def read_memory_A(query):hits = vector_db.search(embedding(query), top_k=5)return join(hits)# 方案B:结构化记忆(简化)def write_memory_B(dialogue):if llm_boundary_detection(dialogue): # 边界检测:是否构成完整事件episode = llm_extract_episode(dialogue) # 情节记忆profile = llm_extract_profile(dialogue) # 画像增量更新todo = llm_extract_foresight(dialogue) # 未来任务event = llm_extract_eventlog(dialogue) # 结构化事件store(episode, profile, todo, event)def read_memory_B(query, task_context):related = retrieve_by_structure(query) # 基于主题/情节/画像的关联召回proactive = perceive_related_memories(task_context) # 主动感知return compose(related, proactive)
| 维度 | 方案A:检索型记忆 | 方案B:结构化记忆系统 |
|---|---|---|
| 记忆组织 | 片段/摘要,碎片化 | 情节、画像、事件、待办等多类型结构化记忆 |
| 记忆使用 | 被动相似度检索 | 检索 + 主动感知关联 |
| 用户画像 | 需另行维护 | 内建、动态更新 |
| 任务前瞻 | 一般不覆盖 | 内建未来任务提取 |
| 架构复杂度 | 低,链路短 | 较高,写入多次LLM调用 |
| 读取延迟 | 低 | 中,链路更长 |
| 成本结构 | 向量化 + 存储 | 写放大,token成本显著更高 |
| 接入难度 | 低,接口简单 | 中,需理解记忆类型与配置 |
| 模型适配 | 单点调用即可 | 统一接入层,便于切换多家模型 |
| 典型场景 | 轻量问答、FAQ、短周期助手 | 长期陪伴、个性化助理、群组协作 |
两类方案的本质差异在于“记忆是否被理解和组织”。检索型记忆以最低成本解决“记得住、找得到”,适合轻量与短周期场景;结构化记忆系统通过边界检测、情节提取、画像更新与任务前瞻,让智能体“看得明白、想得周到、认得真切”,适合长期、个性化的高价值场景。选型没有绝对优劣,建议从会话周期、问题类型、成本预算与运维能力四个条件出发,评测先行、灰度推进,找到与自身业务匹配的记忆方案。