基于艾宾浩斯遗忘曲线的AI Agent内存优化实战
LLM的上下文窗口有个致命缺陷:它只记得最新的,不记得最重要的。为了解决这个“近因效应”,我尝试把艾宾浩斯遗忘曲线引入到AI Agent的记忆管理中,做了一个基于使用频率强化衰减的记忆引擎。
下一篇
我的 The Stack v3 部署踩坑笔记 →
核心逻辑是给每条记忆加一个“权重分”,随着时间推移分值自然下降(衰减),但如果这条信息在对话中被再次检索或触发,分值就会被重新拉高(强化)。这样真正关键的知识能长期留在上下文里,而无用的琐碎信息会被自动清理。
具体的实现思路如下:
一、定义衰减函数
使用指数衰减模型来模拟遗忘过程,计算当前记忆权重:
import math
import time
def calculate_weight(initial_weight, last_accessed_time, decay_rate=0.1):
elapsed_time = time.time() - last_accessed_time
return initial_weight * math.exp(-decay_rate * elapsed_time)二、强化机制
当Agent在检索阶段命中某条记忆时,执行权重更新,防止其被剔除:
def reinforce_memory(memory_id, current_weight):
# 每次被引用,权重恢复到初始高位或按比例增加
return current_weight + REINFORCEMENT_VALUE三、清理策略
在每次将记忆推入Context Window前,先对所有候选记忆进行权重排序,只保留 Top-K 的高分项。
这样部署后,Agent对用户长期偏好的捕捉能力明显提升了,不再会出现“聊到后面就忘了前面设定”的尴尬情况。对于想优化长短期记忆工作流的开发者,这套逻辑比单纯的滑动窗口要高效得多。