首页2026-06-24AI

Agent 记忆机制浅记

Agent 记忆机制

一、 Agent 记忆的理论本质

所谓的“Agent 记忆”,在理论上其实是状态管理上下文注入

1. 记忆的三种形态

  • 短期记忆: 是高保真的无损切片(最近几轮对话的原文)。
  • 长期记忆: 是降维后的特征向量或摘要。
  • 实体记忆: 是结构化剥离出来的核心标签(Key-Value 属性)。

2. 记忆的生命周期

  • 感知: 接收用户输入。
  • 工作区: 在当前推理周期内,暂存思考过程。
  • 巩固: 对话结束后,将短期记忆进行价值评估,有用的被抽取为实体属性或转化为向量冷备,无用的被丢弃。
  • 唤醒: 下次对话时,根据当前线索,从冷库中唤醒相关片段。

二、 LangGraph 记忆体系架构

在 LangGraph 中,所有的记忆都被抽象成了两个核心概念:状态(State)持久化

业务边界界定 在实际业务中(例如用户询问:之前 XXXXX 故障,现在处理的如何?),严格意义上,外部工单数据库或向量检索(RAG)属于大模型的工具调用,不属于 Agent 本身的内部记忆架构,但调用的结果会成为记忆的一部分。

LangGraph 记忆体系仅由以下三个核心模块构成:

1. 运行态记忆:图状态

State 是一个结构化的数据字典(通常包含 messages 列表及其他自定义字段),在图的各个节点之间流转。

  • 生命周期: 存在于内存中,单次 Invoke 结束后即刻释放。
  • 追加机制: State 中的数据通常不是简单覆盖,而是通过 operator.add 等函数进行追加。例如新回复会被追加到现有的 messages 列表中。
  • 工程处理: State 是最终传递给大模型的上下文。因此需要设计专门的处理,例如压缩对话、摘要、滑窗。

2. 线程级记忆:检查点

Checkpointer 是对 State 的持久化存储层,解决多轮对话的连续性问题,生命周期与单一会话绑定。

Checkpointer 的工作机制(快照与恢复):

  • 快照 (Snapshot): 在图的节点执行完毕、挂起等待用户回复时,自动将内存中的 State 序列化,作为快照存入底层的关系型数据库。
  • 恢复 (Resume): 当用户再次发送消息时,系统通过同一个 thread_id 从数据库捞出最后一次的快照加载回内存,大模型瞬间获得完整的历史对话上下文。

3. 跨线程记忆:实体存储

是一种全局的键值对的保存,是一种长期用户画像,通常基于 user_id进行划分。 例如 Agent 在某次对话中提取到“设备是华为的手机/路由器”,就调用特定节点将其写入 Store。用户下次发起全新对话时,系统直接从 Store 提取该标签强行注入 System Prompt。