区分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, ...} 下次问"超时是多久"时向量召回这条;几个月不用会衰减遗忘
相关推荐
LEO的MATRIX1 小时前
火花会 Sparkwave 新能力:接入本机「带本体的知识库」——让头脑风暴同时听得懂自有语料与企业知识
ai·工程管理·头脑风暴·fde
ofoxcoding1 小时前
Codex 工作空间设置加载失败与新聊天无法打开的排查思路
ai
我就是不信1 小时前
Swift 方法派发机制详解
开发语言·ios·swift
CCCCCCCCharlie1 小时前
深入解析I/O底层:文件描述符与缓冲区真相
linux·开发语言·c++·算法
Zenova EdgeOS1 小时前
Rust TUI 实战:用 ratatui 构建工业边缘终端界面
开发语言·后端·rust·工业网关
七夜zippoe2 小时前
把 OpenClaw Agent 搬进 K8s:容器化部署全记录
ai·云原生·容器·kubernetes·openclaw
学逆向的2 小时前
C 选择结构的执行效率分析
c语言·开发语言·算法·网络安全
遇码2 小时前
不用转场引擎做幻灯片转场:相机滑动、黑场淡入与真全屏的完整做法
人工智能·数码相机·ai·rust·大模型·agent
geats人山人海2 小时前
java 8 字符串
java·开发语言