如何对记忆进行分类、索引和召回?

考查重点:记忆类型与作用域检索。按事实/偏好/事件/经验分类,带主体来源时效建结构/向量索引,当前任务过滤检索并处理冲突

本题目录

参考答案

核心回答

先把两个分类维度分开:短期与长期描述信息跨多久、在哪个会话范围使用;事实、偏好、事件和做事方法描述内容本身。原始记录负责留证,结构化记忆负责维护可信状态,检索索引负责按当前任务找到相关信息。 它们可以分层,但不必固定成三种数据库或三层架构。

每条长期记忆至少关联主体、适用范围、来源、时间与状态。召回时先按用户、租户、项目和可见权限限定范围,再结合关键词、语义及时间条件检索,最后处理冲突与过期信息,只把当前任务需要的内容送进模型。

不同内容怎样存

用户明确表达的偏好和已核实的项目事实适合结构化字段;一次故障的操作过程适合事件记录,并链接原始轨迹;跨任务可复用的方法可以形成受版本管理的流程或 Skill。当前对话的工具结果与未完成计划则可能只需要保存在任务状态中。

不要把“情节记忆”限定为一定只存在单会话,也不要把“语义记忆”理解成一定只能用向量库。类型与具体存储形式不是同一层概念。

索引和召回如何协作

元数据索引处理主体、实体、有效期和状态;关键词检索适合精确名称、编号和路径,向量检索补充不同表述的相近含义。有明确关系推理需求时再引入图索引,不能只为分层而增加系统。

例如查询某项目当前数据库配置,先限定项目和当前有效记录,精确名称定位配置项;需要解释迁移原因时,再召回相关事件并按引用取回原文。相似度高但属于其他项目的内容不应进入候选。

如何避免召回旧事实

新旧记录要有替换和冲突关系,检索默认排除撤回、过期和失效条目;无法判断时保留证据并请求澄清。索引、摘要和缓存需要随记忆版本更新,否则库里改对了,模型仍可能读到旧投影。

评测除了相关性与召回,还要看错误记忆引用、跨用户泄露、删除后再次出现及上下文成本。保存了多少内容不等于记住得好。

对应教程

  • 《25-LangGraph高级特性》:第2.6—2.7节区分线程状态的Checkpointer与跨线程信息的Store;本文补充记忆内容、索引与权限范围的组织。

参考资料

相关面经

2 篇

腾讯

后端开发工程师
一面
查看原面经 →
追问
历史信息的索引分几层?各层是什么关系?

字节跳动

后端开发工程师
一面
查看原面经 →
延伸问题
是否考虑过对记忆进行分类、索引和召回?

相关题目

4 题