如何判断哪些信息需要写入长期记忆?
未标记
考查重点:长期价值判断与记忆适用范围。长期记忆保存有依据且可复用的稳定偏好、项目约定和经验;临时进度留任务状态,写入时绑定主体、范围和有效期并处理冲突
本题目录
参考答案
核心回答
长期记忆应保存未来仍有用、有明确依据、作用范围清楚且允许保留的信息。典型内容是稳定偏好、持续项目约定、可复用环境事实,以及经过验证的经验;当前任务进度、一次性选择、模型猜测和容易重新查询的临时数据,通常放在会话状态或短期缓存。
可以先抽取候选,再判断持久性、未来复用价值、证据、归属与敏感性,最后做去重、冲突处理和结构化写入。不能因为一句话出现多次,或模型给出高“重要性分数”,就直接当长期事实。
怎样判断稳定性与作用范围
“以后报告都用中文”表达跨任务偏好;“这份报告简短一些”只约束当前交付。“我同事喜欢辣”也不能写成当前用户偏好;引用、假设和测试内容需要保留说话者与语气。
项目中的测试命令、架构约束或已确认指标口径有复用价值,但要绑定project_id和来源版本。某次订单状态或工具返回的实时价格会很快过期,通常保留引用和采集时间,使用前回源;不能把一次成功轨迹直接提升成永远有效的操作规则。
写入流程如何实现
候选记录至少包含主体、内容、类型、作用范围、证据消息、时间和有效期。先做身份与权限检查,再按实体字段查重,用语义相似度寻找可能重复项,最后确认是新增、补充、覆盖还是冲突。相似度不是事实一致性,“能吃辣”与“不能吃辣”就可能很相似。
明确纠正可以更新旧版本;临时例外应与长期偏好并存。例如“今天想吃清淡”不自动覆盖“平时喜欢辣”。无法判断的冲突保留来源和条件,必要时澄清,而不是简单采用最后一条文本。
生命周期怎样维护
长期不等于永久。支持查看、修正、删除、过期和归档;更新主记录后同步失效索引、缓存和派生摘要。异步提取可以减少主链路等待,但需要版本校验,避免后台旧任务覆盖刚刚更正的内容。
评估既看有价值信息是否被记住,也看误写率、冲突处理、跨用户污染和删除后是否仍被召回。只看记忆命中次数,会鼓励系统保存过多无关内容。
常见追问
LRU/LFU能决定写什么吗? 它们适合管理访问与容量,不能判断信息是否属实、是否应跨会话保留;稳定但低频的重要约定也不应只因久未访问被淘汰。
对应教程
- 16-记忆与对话历史(含Redis基础):先理解当前会话历史与跨会话长期知识的边界。
参考资料
- 国内:JavaGuide:Agent记忆系统:依据记忆生命周期与长期写入机制,说明正文中候选抽取、巩固和遗忘的分工。
- 国内:zero2Agent:长期记忆候选写入:采用长期记忆候选的类型划分,区分正文中的稳定偏好、项目约定和一次性信息。
- 国内:WeThinkIn:记忆写入与生命周期:依据写入判据与冲突处理,说明正文中主体、范围、来源和版本为何需要保留。
- 国外:LangChain:Memory overview:采用记忆类型及前后台写入的区别,说明正文中存储对象和更新时机如何选择。
- 国外:Shinn等:Reflexion:依据情节经验影响后续决策的机制,解释正文中保存一次经历为何不足以证明通用规律。
