区分agent中长期记忆和偏好记忆

一句话区分:长期记忆记"发生过的事",偏好记忆记"这个人是什么样的人"。

1. 数据结构完全不同

长期记忆 LongTermMemory:一个会遗忘、会合并的列表

List<MemoryItem> items // 每条 = {id, content, importance, embedding, createdAt, lastAccessed}

  • 存的是事件/事实型文本,比如"用户上周在做 Spring Boot 支付模块"、"用户说项目截止日期是下周五"。
  • 每条有 importance 权重 + embedding 向量 + 时间戳。
  • 回忆靠语义相似度检索:recall() 算 score = 相似度×0.7 + 重要度×0.3,取 TopK。
  • 有生命周期:consolidate() 做三件事 ------ 按 decayRate 随时间衰减重要度、按 dedupThreshold 去重/合并相似条目、超 ttlDays 且重要度低于 minImportance 就过期删除。

偏好记忆 PreferenceMemory:一个永不过期的字典

Map<String,String> data // 如 {"喜好": "川菜", "姓名": "张三", "语言": "中文回复"}

  • 存的是画像型键值对,key 稳定、value 被覆盖更新,不会衰减、不会过期。
  • 回忆靠精确命中:buildContext() 直接把全表拼成"【用户偏好】\n喜好: 川菜..."注入 Prompt,不做向量检索。
  • 写入靠规则提取:extractAndSave() 识别"我喜欢.../我叫..."这类句式自动提 key-value,也可以 save()/saveBatch() 直接写。

2. 举例

用户说了 进哪 怎么用
"我喜欢用深色主题,代码用 Java 17" 偏好记忆:{主题: 深色, Java版本: 17} 之后每次回答默认按这个风格,不用再问
"昨天我们把订单超时逻辑改成了 30 分钟" 长期记忆:MemoryItem{content:"订单超时改为30分钟", importance:0.8, ...} 下次问"超时是多久"时向量召回这条;几个月不用会衰减遗忘
相关推荐
看浪的路人1 分钟前
第2讲:共识算法入门:Paxos 的精髓
ai
露天赏雪11 分钟前
第3篇:Sentinel熔断降级实战:大模型接口抖动时的服务兜底方案
java·开发语言·人工智能·spring boot·spring·servlet·sentinel
yeccheng2 小时前
MySQL 索引超详解:从底层 B+ 树到面试高频考点
java·开发语言·jvm·mysql·面试
联犀2 小时前
纯 Go 的 CAD 开源库 go-cad:直接解析 DWG/DXF,现在也能导出 PDF
开发语言·golang·pdf
zjxtxdy3 小时前
C++面向对象程序开发-类与对象
开发语言·c++
qq_406981035 小时前
c++拷贝构造函数
开发语言·c++
爱喝雪碧的可乐6 小时前
MATLAB
开发语言·算法·matlab
H.莓飛7 小时前
【C++】【STL】vector_OJ题
linux·服务器·开发语言·数据结构·c++·visual studio
j7~9 小时前
【C++ 八股文】(篇四)C++11 新特性
开发语言·c++·面试·c++11·八股文
eggwyw9 小时前
C++中大括号的用法合集
开发语言·c++