让AI代理真正“记住事”:一套可落地的智能体记忆系统设计实战

你有没有试过让AI代理帮你连续做几件事,结果它转头就忘了上一步在干啥?
或者,它把三天前的闲聊当真,反复翻出来当重要线索?
别怪AI“记性差”——问题往往出在没人给它设计一套像人脑一样会记、会忘、会分类的记忆系统

这篇文章不是讲理论,而是我用在真实项目里的那套记忆架构。它已经跑在每天处理上千次任务的AI代理背后,不靠玄学,只靠三件事:
– ✅ 让它只记住此刻真正需要的(工作记忆)
– ✅ 把经验存成“能联想、能推理”的知识(长期记忆)
– ✅ 主动忘记过时信息,越用越轻快(记忆衰减)

下面直接上干货——全是 Python,带中文注释,复制就能跑通核心逻辑。

🧠 四层记忆,各司其职

就像人脑有“临时想法”“常识库”“昨天吃了啥”“怎么骑自行车”,AI代理也需要分层记忆:

  • 工作记忆(Working Memory):本次对话/任务的上下文,比如用户刚说的地址、正在调用的API参数
  • 长期记忆(Long-term Memory):沉淀下来的通用知识,比如“公司报销流程是先填表再找主管签字”
  • 情景记忆(Episodic Memory):按时间顺序记录的一次次交互,像日记本
  • 程序记忆(Procedural Memory):反复成功后固化的行为模式,比如“遇到支付失败,自动重试+换卡”

代码结构一目了然:

class AgentMemory:
    def __init__(self):
        self.working_memory = {}  # 当前任务的临时上下文,例如 {"user_location": "上海浦东", "step": "确认订单"}
        self.long_term = VectorStore()  # 用向量数据库存语义知识,支持相似内容联想
        self.episodic = []  # 每次交互存为字典列表,如 [{"time": "2024-05-20T10:30", "action": "提交发票"}]
        self.procedural = {}  # 存自动化规则,如 {"invoice_submit_failure": "重试+切换OCR引擎"}

⚙️ 工作记忆:只留最相关,自动滚动更新

它不是无脑堆历史,而是像手机最近通话列表——只保留最新、最可能用到的:

def update_working_memory(self, new_data):
    """更新当前任务上下文:覆盖式写入 + 自动截断旧情景"""
    self.working_memory = {k: v for k, v in new_data.items()}  # 替换为最新关键变量
    # 情景记忆只保留最近100条,避免滚雪球变慢
    if len(self.episodic) > 100:
        self.episodic = self.episodic[-100:]

🌐 长期记忆:不光存“是什么”,还记“和谁有关”

单纯扔进向量库容易查得到但联想不到。我们加一层关系网:

def store_long_term(self, concept, metadata):
    """存知识时,同时记下语义 + 关系"""
    embedding = self.embedding_model.encode(concept)  # 把文字转成向量(如用text-embedding-3-small)
    self.long_term.add(embedding, metadata)  # 存入向量库,metadata里可含来源、时间、可信度
    # 同步更新知识图谱:比如存"报销需主管审批"时,自动连上节点"主管"和"审批流程"
    self.update_knowledge_graph(concept, metadata)

📉 记忆衰减:主动遗忘,才是智能的开始

老数据不清理?代理会越用越卡、越答越偏。我们给每条记忆加个“新鲜度分数”,每天打99折:

def apply_memory_decay(self, factor=0.99):
    """每天调用一次:降低旧记忆权重,自动淘汰低价值信息"""
    for memory in self.long_term:
        memory.relevance *= factor  # 新鲜度 × 0.99 → 一年后只剩约3%
    # 彻底删除太旧的(比如新鲜度低于0.1),释放空间
    self.long_term = [m for m in self.long_term if m.relevance > 0.1]

💡 真实踩坑换来的3条铁律

  • 记忆结构 = 行为逻辑:工作记忆没清干净?代理就会在订完外卖后,突然给你推荐餐厅优惠券(因为它还“记得”你是用户,却忘了当前任务是查快递)。
  • 上下文窗口不是越大越好:我们测过 50 / 100 / 200 / 500 token 的窗口——100~200 效果最稳;超过200,模型反而更爱胡编乱造。
  • 忘记,是功能,不是缺陷:没有衰减机制的代理,3天后就会被自己存的10万条日志拖垮。现在我们把它当成“定期重启大脑”,每周自动触发一次。

这套架构已封装为轻量级 Python 包 ai-memory-core,零依赖、纯同步、开箱即用。适合嵌入 LangChain、LlamaIndex 或自研框架。

直达网址:https://github.com/tmdm-cn/ai-memory-core

作加

类似文章