Agent 框架的会话记忆管理机制

Agent 框架的会话记忆管理机制

会话记忆(上下文管理)是 Agent 从「Demo 玩具」走向「工程可用」的核心能力之一。对应 Agent Loop 的五类演进路径,不同阶段的框架在记忆的存储结构、生命周期、持久化能力、并发隔离等维度呈现出明显的分层差异,整体沿着「线性堆叠 → 结构化状态 → 持久化快照 → 跨会话长效记忆」的路径迭代。

五类范式下的记忆管理演进

第一类:显式 ReAct 范式 ------ 线性堆叠的原始记忆

以 OpenManus 为代表的原生 ReAct 实现,记忆管理最为朴素:

  • 记忆载体就是纯线性的对话历史序列,每轮 think() 思考、act() 行动、环境反馈的 Observation 依次追加到上下文末尾
  • 无持久化、无压缩、无分层,记忆完全保存在进程内存中,随会话结束而释放
  • 仅通过 max_steps 限制最大轮次,间接控制记忆长度,没有任何主动的记忆治理能力
  • 优势是逻辑完全对齐原始 ReAct 论文,结构直白,适合原理学习与定制化改造

第二类:结构化 Tool-Calling ReAct ------ 结构化消息型记忆

Pi、OpenCode、Hermes、LangChain 等主流框架,将记忆从自由文本升级为结构化消息:

  • 记忆单元从「文本块」变为标准化的消息类型:用户消息、模型回复、tool_call、tool_result,不再依赖模型输出 Thought/Action 格式
  • 基础逻辑仍为全量追加,但开始出现基础治理能力:自动检测上下文 token 长度,接近模型上限时触发简单截断或摘要
  • 支持会话序列化导出,但尚未形成体系化的持久化与恢复机制,记忆仍以单次会话为生命周期

第三类:状态机 / 事件驱动型 Agent Runtime ------ 分层结构化状态记忆

Codex CLI、Gemini CLI、OpenCode 这类产品级运行时,记忆不再是简单的消息列表,而是分层的状态体系:

  1. 记忆分层 :拆分为 Thread(长期会话)、Turn(一次完整执行轮次)、Item(最小单元,含模型消息、工具调用、文件修改、命令执行等)三级结构
  2. 事件驱动更新:每一个动作(工具调用开始、执行中、模型流式输出、会话结束)都会以事件形式触发记忆更新,而非等整轮结束才统一写入
  3. 自动上下文压缩:内置压缩策略,token 超限后自动对早期对话、冗余工具结果做摘要或合并,保障会话可持续执行
  4. 多端状态同步:服务端维护唯一的会话记忆,TUI、Web UI、IDE 插件等多客户端通过事件总线同步同一份记忆状态
  5. 生命周期管理:会话拥有独立状态标识,原生支持暂停、中断、恢复,记忆可跟随会话生命周期持久化

第四类:持久化状态图范式 ------ 可回溯的共享状态记忆

以 LangGraph 为代表,记忆从「对话历史」升级为「全量共享状态」:

  • 记忆的载体不再只是消息,而是包含业务数据、中间结果、工具输出、执行进度的完整 State 对象
  • Checkpointer 快照机制:每执行一个图节点,就将完整状态持久化到磁盘/数据库,天然支持任意节点中断恢复、人工介入后续跑、分支回溯
  • 状态读写隔离:节点只能按 schema 读写指定字段的状态,避免不同逻辑节点互相污染记忆
  • 分支版本管理:支持会话 Fork,每个分支拥有独立的记忆快照,互不干扰,可做差异对比

第五类:常驻 Gateway 范式 ------ 跨会话长效记忆体系

OpenClaw、Hermes Agent 这类常驻网关型架构,记忆突破了单会话边界:

  1. 并发会话隔离:通过 Session Lane 机制隔离多个并发任务的记忆,防止多任务同时修改同一份会话状态,保证数据一致性
  2. 跨会话持久记忆:内置长期记忆库,单次会话结束后记忆不清空,新会话可检索历史对话、沉淀的知识与技能
  3. 跨渠道记忆共享:Telegram、Slack、Web、TUI 等所有渠道接入同一份会话记忆,切换设备/渠道上下文保持一致
  4. 自我进化记忆:Hermes 等框架支持技能记忆,Agent 运行中生成、优化的技能会持久存入记忆库,后续会话可直接调用复用

下面是五类范式在记忆管理维度上的演进路径总览:
#mermaid-svg-azXcu9ThgHyeNU7F{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-azXcu9ThgHyeNU7F .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-azXcu9ThgHyeNU7F .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-azXcu9ThgHyeNU7F .error-icon{fill:#552222;}#mermaid-svg-azXcu9ThgHyeNU7F .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-azXcu9ThgHyeNU7F .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-azXcu9ThgHyeNU7F .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-azXcu9ThgHyeNU7F .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-azXcu9ThgHyeNU7F .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-azXcu9ThgHyeNU7F .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-azXcu9ThgHyeNU7F .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-azXcu9ThgHyeNU7F .marker{fill:#333333;stroke:#333333;}#mermaid-svg-azXcu9ThgHyeNU7F .marker.cross{stroke:#333333;}#mermaid-svg-azXcu9ThgHyeNU7F svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-azXcu9ThgHyeNU7F p{margin:0;}#mermaid-svg-azXcu9ThgHyeNU7F .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-azXcu9ThgHyeNU7F .cluster-label text{fill:#333;}#mermaid-svg-azXcu9ThgHyeNU7F .cluster-label span{color:#333;}#mermaid-svg-azXcu9ThgHyeNU7F .cluster-label span p{background-color:transparent;}#mermaid-svg-azXcu9ThgHyeNU7F .label text,#mermaid-svg-azXcu9ThgHyeNU7F span{fill:#333;color:#333;}#mermaid-svg-azXcu9ThgHyeNU7F .node rect,#mermaid-svg-azXcu9ThgHyeNU7F .node circle,#mermaid-svg-azXcu9ThgHyeNU7F .node ellipse,#mermaid-svg-azXcu9ThgHyeNU7F .node polygon,#mermaid-svg-azXcu9ThgHyeNU7F .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-azXcu9ThgHyeNU7F .rough-node .label text,#mermaid-svg-azXcu9ThgHyeNU7F .node .label text,#mermaid-svg-azXcu9ThgHyeNU7F .image-shape .label,#mermaid-svg-azXcu9ThgHyeNU7F .icon-shape .label{text-anchor:middle;}#mermaid-svg-azXcu9ThgHyeNU7F .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-azXcu9ThgHyeNU7F .rough-node .label,#mermaid-svg-azXcu9ThgHyeNU7F .node .label,#mermaid-svg-azXcu9ThgHyeNU7F .image-shape .label,#mermaid-svg-azXcu9ThgHyeNU7F .icon-shape .label{text-align:center;}#mermaid-svg-azXcu9ThgHyeNU7F .node.clickable{cursor:pointer;}#mermaid-svg-azXcu9ThgHyeNU7F .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-azXcu9ThgHyeNU7F .arrowheadPath{fill:#333333;}#mermaid-svg-azXcu9ThgHyeNU7F .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-azXcu9ThgHyeNU7F .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-azXcu9ThgHyeNU7F .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-azXcu9ThgHyeNU7F .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-azXcu9ThgHyeNU7F .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-azXcu9ThgHyeNU7F .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-azXcu9ThgHyeNU7F .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-azXcu9ThgHyeNU7F .cluster text{fill:#333;}#mermaid-svg-azXcu9ThgHyeNU7F .cluster span{color:#333;}#mermaid-svg-azXcu9ThgHyeNU7F div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-azXcu9ThgHyeNU7F .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-azXcu9ThgHyeNU7F rect.text{fill:none;stroke-width:0;}#mermaid-svg-azXcu9ThgHyeNU7F .icon-shape,#mermaid-svg-azXcu9ThgHyeNU7F .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-azXcu9ThgHyeNU7F .icon-shape p,#mermaid-svg-azXcu9ThgHyeNU7F .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-azXcu9ThgHyeNU7F .icon-shape .label rect,#mermaid-svg-azXcu9ThgHyeNU7F .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-azXcu9ThgHyeNU7F .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-azXcu9ThgHyeNU7F .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-azXcu9ThgHyeNU7F :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 无持久化 / 无压缩 / 无分层
基础治理:截断 / 摘要
Thread / Turn / Item 三级分层
Checkpointer 快照 / 分支回溯
Session Lane / 长期记忆库 / 跨渠道共享
第一类:显式 ReAct

线性堆叠的原始记忆
第二类:结构化 Tool-Calling ReAct

结构化消息型记忆
第三类:状态机 / 事件驱动 Runtime

分层结构化状态记忆
第四类:持久化状态图范式

可回溯的共享状态记忆
第五类:常驻 Gateway 范式

跨会话长效记忆体系

典型项目的记忆管理细节

OpenClaw:中心化网关统一记忆

  • Gateway 作为唯一记忆中心,统一管理所有会话、工具、事件流的状态
  • 记忆流转链路:接收消息 → 组装上下文 → 调用模型 → 执行工具 → 持久化结果 → 判断是否继续
  • 提供 Hook 扩展点,可在模型调用前后、工具执行前后注入自定义记忆处理逻辑(如敏感信息过滤、自定义摘要策略)
  • 单会话串行执行模型,从根源上避免并发写记忆的一致性问题

OpenCode:Client-Server 分离的服务端记忆

  • 所有会话记忆全部维护在后端 Server,客户端仅做展示与交互,不持有状态
  • 完整记忆流程:加载会话历史与 Agent 配置 → 判断是否触发上下文压缩 → 注册可用工具 → 流式调用模型 → 解析执行工具 → 结果写回消息历史
  • 原生支持会话分支(Fork),可从任意历史节点分叉出独立记忆的新会话,并支持不同分支的记忆 diff 对比

LangGraph:可持久化可回溯的状态记忆

  • 采用类似 Pregel 的批量同步执行模型,每轮执行分 Plan、Execution、Update 三阶段,Update 阶段统一更新状态记忆,保障并行执行时的状态一致性
  • Checkpointer 机制是记忆管理的核心:每步都落盘快照,中断后可从断点精确恢复,人工修改状态后也可无缝续跑
  • 记忆是结构化的共享状态,而非线性对话,更适合承载复杂业务流程的全链路数据

Codex CLI:工业级分层事件记忆

  • 严格的 Thread / Turn / Item 三级记忆分层,粒度精细到每一条命令、每一次文件修改
  • 全流式记忆更新:turn/starteditem/*turn/completed 等事件实时推送,客户端可同步看到每一步执行细节,而非等待最终结果
  • 权限、沙箱相关的执行结果都会记入会话记忆,作为后续安全策略决策的依据

Pi Agent Harness:极简轻量的内存记忆

  • 核心 Loop 仅维护消息队列,内层处理模型推理与工具调用,外层消费引导/跟进消息,记忆结构极简
  • 默认无持久化、无压缩、无分层,所有记忆保存在进程内存中,足够轻薄
  • 适合源码研读与二次开发,生产环境的记忆管理能力需要开发者自行扩展补齐

OpenManus:教科书式线性记忆

  • 完全对应 ReAct 论文的记忆模型:BaseAgent 主循环驱动,每轮 think() + act() + 观测结果依次追加到上下文
  • 仅靠 max_steps 控制轮次上限,没有任何额外的记忆治理能力
  • 优势是逻辑清晰无冗余,是学习 Agent 记忆原理的标准样本

五类范式关键维度横向对比

下表从记忆载体、持久化能力、并发隔离、上下文压缩、生命周期管理五个维度,横向对比五类范式的核心差异:

维度 第一类:显式 ReAct 第二类:结构化 Tool-Calling ReAct 第三类:状态机 / 事件驱动 Runtime 第四类:持久化状态图范式 第五类:常驻 Gateway 范式
记忆载体 纯线性对话历史序列 ,每轮 think() / act() / Observation 依次追加 结构化消息类型:用户消息、模型回复、tool_call、tool_result Thread / Turn / Item 三级分层状态体系 完整共享 State 对象,含业务数据、中间结果、工具输出、执行进度 跨会话长效记忆库,可检索历史对话、沉淀知识与技能
持久化能力 无持久化,记忆保存在进程内存,随会话结束释放 会话级序列化导出,但无体系化持久化与恢复机制 会话生命周期持久化,原生支持暂停、中断、恢复 Checkpointer 快照落盘,每步持久化,支持断点恢复与分支回溯 长期记忆库持久化,单次会话结束后记忆不清空
并发隔离 无并发控制,单会话串行执行 无并发控制,仍以单次会话为生命周期 多端状态同步,服务端维护唯一记忆,多客户端经事件总线同步 状态读写隔离 + 分支版本管理,节点按 schema 读写,Fork 分支互不干扰 Session Lane 并发隔离,隔离多任务记忆,保证数据一致性
上下文压缩 无压缩 ,仅靠 max_steps 间接限制长度 基础治理:自动检测 token 长度,超限触发简单截断或摘要 自动上下文压缩:内置策略,对早期对话、冗余工具结果做摘要或合并 依赖 Checkpointer 快照,通过状态回溯与分支管理控制上下文 跨会话检索复用,通过长期记忆库按需检索,避免全量上下文堆积
生命周期管理 随会话结束即释放,无独立状态标识 以单次会话为生命周期,无暂停 / 恢复能力 独立状态标识,原生支持暂停、中断、恢复 任意节点可中断恢复,人工介入后可无缝续跑 跨会话长效生命周期,新会话可复用历史记忆与技能

核心差异点 :第一类范式胜在结构直白、贴近 ReAct 论文,但完全没有记忆治理能力 ;第二类开始引入结构化消息与基础压缩,但仍以单次会话为生命周期 ;第三类通过三级分层与事件驱动实现工程级状态管理 ;第四类以 Checkpointer 快照实现可回溯、可恢复的共享状态 ;第五类则突破会话边界,实现跨会话、跨渠道的长效记忆与自我进化

演进总结

从早期线性堆叠的对话历史,到分层结构化的会话状态,再到可持久化可回溯的共享状态,最终走向跨会话的长效记忆体系------Agent 会话记忆管理的演进,本质是 Agent 从「单次对话工具」到「长期运行系统」的必然结果。

记忆管理能力的强弱,已经成为区分 Demo 级框架与工业级 Runtime 的核心标志:简单框架只需要把对话喂给模型,而成熟的 Agent 体系必须解决记忆的一致性、持久化、安全性、可回溯、跨渠道共享等一系列工程问题。

下面用一张对比图总结五类范式在关键维度上的能力差异:
#mermaid-svg-9KbOhuldI1CXYdZ8{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-9KbOhuldI1CXYdZ8 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-9KbOhuldI1CXYdZ8 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-9KbOhuldI1CXYdZ8 .error-icon{fill:#552222;}#mermaid-svg-9KbOhuldI1CXYdZ8 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-9KbOhuldI1CXYdZ8 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-9KbOhuldI1CXYdZ8 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-9KbOhuldI1CXYdZ8 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-9KbOhuldI1CXYdZ8 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-9KbOhuldI1CXYdZ8 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-9KbOhuldI1CXYdZ8 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-9KbOhuldI1CXYdZ8 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-9KbOhuldI1CXYdZ8 .marker.cross{stroke:#333333;}#mermaid-svg-9KbOhuldI1CXYdZ8 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-9KbOhuldI1CXYdZ8 p{margin:0;}#mermaid-svg-9KbOhuldI1CXYdZ8 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-9KbOhuldI1CXYdZ8 .cluster-label text{fill:#333;}#mermaid-svg-9KbOhuldI1CXYdZ8 .cluster-label span{color:#333;}#mermaid-svg-9KbOhuldI1CXYdZ8 .cluster-label span p{background-color:transparent;}#mermaid-svg-9KbOhuldI1CXYdZ8 .label text,#mermaid-svg-9KbOhuldI1CXYdZ8 span{fill:#333;color:#333;}#mermaid-svg-9KbOhuldI1CXYdZ8 .node rect,#mermaid-svg-9KbOhuldI1CXYdZ8 .node circle,#mermaid-svg-9KbOhuldI1CXYdZ8 .node ellipse,#mermaid-svg-9KbOhuldI1CXYdZ8 .node polygon,#mermaid-svg-9KbOhuldI1CXYdZ8 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-9KbOhuldI1CXYdZ8 .rough-node .label text,#mermaid-svg-9KbOhuldI1CXYdZ8 .node .label text,#mermaid-svg-9KbOhuldI1CXYdZ8 .image-shape .label,#mermaid-svg-9KbOhuldI1CXYdZ8 .icon-shape .label{text-anchor:middle;}#mermaid-svg-9KbOhuldI1CXYdZ8 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-9KbOhuldI1CXYdZ8 .rough-node .label,#mermaid-svg-9KbOhuldI1CXYdZ8 .node .label,#mermaid-svg-9KbOhuldI1CXYdZ8 .image-shape .label,#mermaid-svg-9KbOhuldI1CXYdZ8 .icon-shape .label{text-align:center;}#mermaid-svg-9KbOhuldI1CXYdZ8 .node.clickable{cursor:pointer;}#mermaid-svg-9KbOhuldI1CXYdZ8 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-9KbOhuldI1CXYdZ8 .arrowheadPath{fill:#333333;}#mermaid-svg-9KbOhuldI1CXYdZ8 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-9KbOhuldI1CXYdZ8 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-9KbOhuldI1CXYdZ8 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-9KbOhuldI1CXYdZ8 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-9KbOhuldI1CXYdZ8 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-9KbOhuldI1CXYdZ8 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-9KbOhuldI1CXYdZ8 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-9KbOhuldI1CXYdZ8 .cluster text{fill:#333;}#mermaid-svg-9KbOhuldI1CXYdZ8 .cluster span{color:#333;}#mermaid-svg-9KbOhuldI1CXYdZ8 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-9KbOhuldI1CXYdZ8 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-9KbOhuldI1CXYdZ8 rect.text{fill:none;stroke-width:0;}#mermaid-svg-9KbOhuldI1CXYdZ8 .icon-shape,#mermaid-svg-9KbOhuldI1CXYdZ8 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-9KbOhuldI1CXYdZ8 .icon-shape p,#mermaid-svg-9KbOhuldI1CXYdZ8 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-9KbOhuldI1CXYdZ8 .icon-shape .label rect,#mermaid-svg-9KbOhuldI1CXYdZ8 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-9KbOhuldI1CXYdZ8 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-9KbOhuldI1CXYdZ8 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-9KbOhuldI1CXYdZ8 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 并发与隔离
持久化能力
记忆载体
线性对话历史
结构化消息
分层状态体系
共享 State 对象
跨会话长效记忆库
无持久化
会话级序列化
会话生命周期持久化
Checkpointer 快照落盘
长期记忆库持久化
无并发控制
无并发控制
多端状态同步
状态读写隔离 / 分支
Session Lane 并发隔离

演进时间线总览

下面用一张时间线图,横向展示五类范式在记忆管理能力上的演进阶段,每个阶段标注其核心能力关键词:
#mermaid-svg-OdtOi8l9P3SbaBFR{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-OdtOi8l9P3SbaBFR .error-icon{fill:#552222;}#mermaid-svg-OdtOi8l9P3SbaBFR .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-OdtOi8l9P3SbaBFR .marker{fill:#333333;stroke:#333333;}#mermaid-svg-OdtOi8l9P3SbaBFR .marker.cross{stroke:#333333;}#mermaid-svg-OdtOi8l9P3SbaBFR svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-OdtOi8l9P3SbaBFR p{margin:0;}#mermaid-svg-OdtOi8l9P3SbaBFR .edge{stroke-width:3;}#mermaid-svg-OdtOi8l9P3SbaBFR .section--1 rect,#mermaid-svg-OdtOi8l9P3SbaBFR .section--1 path,#mermaid-svg-OdtOi8l9P3SbaBFR .section--1 circle,#mermaid-svg-OdtOi8l9P3SbaBFR .section--1 path{fill:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .section--1 text{fill:#ffffff;}#mermaid-svg-OdtOi8l9P3SbaBFR .node-icon--1{font-size:40px;color:#ffffff;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-edge--1{stroke:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-depth--1{stroke-width:17;}#mermaid-svg-OdtOi8l9P3SbaBFR .section--1 line{stroke:hsl(60, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OdtOi8l9P3SbaBFR .lineWrapper line{stroke:#ffffff;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled circle,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:lightgray;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:#efefef;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-0 rect,#mermaid-svg-OdtOi8l9P3SbaBFR .section-0 path,#mermaid-svg-OdtOi8l9P3SbaBFR .section-0 circle,#mermaid-svg-OdtOi8l9P3SbaBFR .section-0 path{fill:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-OdtOi8l9P3SbaBFR .section-0 text{fill:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .node-icon-0{font-size:40px;color:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-edge-0{stroke:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-depth-0{stroke-width:14;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-0 line{stroke:hsl(240, 100%, 83.5294117647%);stroke-width:3;}#mermaid-svg-OdtOi8l9P3SbaBFR .lineWrapper line{stroke:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled circle,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:lightgray;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:#efefef;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-1 rect,#mermaid-svg-OdtOi8l9P3SbaBFR .section-1 path,#mermaid-svg-OdtOi8l9P3SbaBFR .section-1 circle,#mermaid-svg-OdtOi8l9P3SbaBFR .section-1 path{fill:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .section-1 text{fill:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .node-icon-1{font-size:40px;color:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-edge-1{stroke:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-depth-1{stroke-width:11;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-1 line{stroke:hsl(260, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OdtOi8l9P3SbaBFR .lineWrapper line{stroke:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled circle,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:lightgray;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:#efefef;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-2 rect,#mermaid-svg-OdtOi8l9P3SbaBFR .section-2 path,#mermaid-svg-OdtOi8l9P3SbaBFR .section-2 circle,#mermaid-svg-OdtOi8l9P3SbaBFR .section-2 path{fill:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .section-2 text{fill:#ffffff;}#mermaid-svg-OdtOi8l9P3SbaBFR .node-icon-2{font-size:40px;color:#ffffff;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-edge-2{stroke:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-depth-2{stroke-width:8;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-2 line{stroke:hsl(90, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OdtOi8l9P3SbaBFR .lineWrapper line{stroke:#ffffff;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled circle,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:lightgray;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:#efefef;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-3 rect,#mermaid-svg-OdtOi8l9P3SbaBFR .section-3 path,#mermaid-svg-OdtOi8l9P3SbaBFR .section-3 circle,#mermaid-svg-OdtOi8l9P3SbaBFR .section-3 path{fill:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .section-3 text{fill:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .node-icon-3{font-size:40px;color:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-edge-3{stroke:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-depth-3{stroke-width:5;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-3 line{stroke:hsl(120, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OdtOi8l9P3SbaBFR .lineWrapper line{stroke:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled circle,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:lightgray;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:#efefef;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-4 rect,#mermaid-svg-OdtOi8l9P3SbaBFR .section-4 path,#mermaid-svg-OdtOi8l9P3SbaBFR .section-4 circle,#mermaid-svg-OdtOi8l9P3SbaBFR .section-4 path{fill:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .section-4 text{fill:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .node-icon-4{font-size:40px;color:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-edge-4{stroke:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-depth-4{stroke-width:2;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-4 line{stroke:hsl(150, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OdtOi8l9P3SbaBFR .lineWrapper line{stroke:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled circle,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:lightgray;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:#efefef;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-5 rect,#mermaid-svg-OdtOi8l9P3SbaBFR .section-5 path,#mermaid-svg-OdtOi8l9P3SbaBFR .section-5 circle,#mermaid-svg-OdtOi8l9P3SbaBFR .section-5 path{fill:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .section-5 text{fill:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .node-icon-5{font-size:40px;color:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-edge-5{stroke:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-depth-5{stroke-width:-1;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-5 line{stroke:hsl(180, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OdtOi8l9P3SbaBFR .lineWrapper line{stroke:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled circle,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:lightgray;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:#efefef;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-6 rect,#mermaid-svg-OdtOi8l9P3SbaBFR .section-6 path,#mermaid-svg-OdtOi8l9P3SbaBFR .section-6 circle,#mermaid-svg-OdtOi8l9P3SbaBFR .section-6 path{fill:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .section-6 text{fill:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .node-icon-6{font-size:40px;color:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-edge-6{stroke:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-depth-6{stroke-width:-4;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-6 line{stroke:hsl(210, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OdtOi8l9P3SbaBFR .lineWrapper line{stroke:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled circle,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:lightgray;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:#efefef;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-7 rect,#mermaid-svg-OdtOi8l9P3SbaBFR .section-7 path,#mermaid-svg-OdtOi8l9P3SbaBFR .section-7 circle,#mermaid-svg-OdtOi8l9P3SbaBFR .section-7 path{fill:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .section-7 text{fill:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .node-icon-7{font-size:40px;color:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-edge-7{stroke:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-depth-7{stroke-width:-7;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-7 line{stroke:hsl(270, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OdtOi8l9P3SbaBFR .lineWrapper line{stroke:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled circle,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:lightgray;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:#efefef;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-8 rect,#mermaid-svg-OdtOi8l9P3SbaBFR .section-8 path,#mermaid-svg-OdtOi8l9P3SbaBFR .section-8 circle,#mermaid-svg-OdtOi8l9P3SbaBFR .section-8 path{fill:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .section-8 text{fill:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .node-icon-8{font-size:40px;color:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-edge-8{stroke:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-depth-8{stroke-width:-10;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-8 line{stroke:hsl(330, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OdtOi8l9P3SbaBFR .lineWrapper line{stroke:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled circle,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:lightgray;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:#efefef;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-9 rect,#mermaid-svg-OdtOi8l9P3SbaBFR .section-9 path,#mermaid-svg-OdtOi8l9P3SbaBFR .section-9 circle,#mermaid-svg-OdtOi8l9P3SbaBFR .section-9 path{fill:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .section-9 text{fill:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .node-icon-9{font-size:40px;color:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-edge-9{stroke:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-depth-9{stroke-width:-13;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-9 line{stroke:hsl(0, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OdtOi8l9P3SbaBFR .lineWrapper line{stroke:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled circle,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:lightgray;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:#efefef;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-10 rect,#mermaid-svg-OdtOi8l9P3SbaBFR .section-10 path,#mermaid-svg-OdtOi8l9P3SbaBFR .section-10 circle,#mermaid-svg-OdtOi8l9P3SbaBFR .section-10 path{fill:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .section-10 text{fill:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .node-icon-10{font-size:40px;color:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-edge-10{stroke:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .edge-depth-10{stroke-width:-16;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-10 line{stroke:hsl(30, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OdtOi8l9P3SbaBFR .lineWrapper line{stroke:black;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled circle,#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:lightgray;}#mermaid-svg-OdtOi8l9P3SbaBFR .disabled text{fill:#efefef;}#mermaid-svg-OdtOi8l9P3SbaBFR .section-root rect,#mermaid-svg-OdtOi8l9P3SbaBFR .section-root path,#mermaid-svg-OdtOi8l9P3SbaBFR .section-root circle{fill:hsl(240, 100%, 46.2745098039%);}#mermaid-svg-OdtOi8l9P3SbaBFR .section-root text{fill:#ffffff;}#mermaid-svg-OdtOi8l9P3SbaBFR .icon-container{height:100%;display:flex;justify-content:center;align-items:center;}#mermaid-svg-OdtOi8l9P3SbaBFR .edge{fill:none;}#mermaid-svg-OdtOi8l9P3SbaBFR .eventWrapper{filter:brightness(120%);}#mermaid-svg-OdtOi8l9P3SbaBFR :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 第一类:显式 ReAct 线性堆叠的原始记忆 纯线性对话历史 无持久化 / 无压缩 /无分层 仅靠 max_steps间接控制长度 第二类:结构化Tool-Calling ReAct 结构化消息型记忆 用户消息 / 模型回复/ tool_call /tool_result 基础治理:token检测 + 截断 / 摘要 会话级序列化导出 第三类:状态机 /事件驱动 Runtime 分层结构化状态记忆 Thread / Turn / Item三级分层 事件驱动更新 +自动上下文压缩 多端状态同步 +生命周期管理 第四类:持久化状态图范式 可回溯的共享状态记忆 完整共享 State 对象 Checkpointer快照落盘 + 断点恢复 状态读写隔离 +分支版本管理 第五类:常驻Gateway 范式 跨会话长效记忆体系 Session Lane并发隔离 长期记忆库 +跨渠道共享 自我进化技能记忆 Agent 会话记忆管理能力演进时间线

这张时间线图与正文的演进路径一一对应:第一类范式停留在「线性堆叠」的原始阶段,记忆随会话结束即释放;第二类引入「结构化消息」与基础压缩,但生命周期仍局限于单次会话;第三类通过「分层状态」与事件驱动,把记忆升级为可管理的工程级状态;第四类以「可回溯快照」实现任意节点的中断恢复与分支回溯;第五类最终突破会话边界,走向「跨会话长效记忆」。整条时间线正是正文所描述的「线性堆叠 → 结构化消息 → 分层状态 → 可回溯快照 → 跨会话长效记忆」这一演进路径的可视化呈现,也印证了 Agent 从「单次对话工具」到「长期运行系统」的必然转变。

相关推荐
高工智能汽车21 分钟前
从“借船”到“造船”,汽车芯片出海迎历史性一跃
人工智能·汽车
l12586521 分钟前
# LangGraph Deep Research Agent 全流程设计:多轮研究、人机协同与真实来源管理
数据库·人工智能·python·算法·自然语言处理·oracle·langchain
leoZ23123 分钟前
AI+前端提效- 06 AI辅助调试排错:前端报错、白屏、兼容问题极速定位
前端·人工智能·chatgpt·状态模式·超分辨率重建·openvino·dreamfusion
方银的技术分享23 分钟前
五、AI训练师:数据标注-视频标注
人工智能·音视频
SelectDB27 分钟前
开源!Apache Doris 上线 Profile 可视化诊断:基于 Doris Skills 破解 AI 误诊难题
数据库·agent·自动化运维
李昊哲小课29 分钟前
SpringBoot4 云端咖啡站 阶段五:交付与进阶
人工智能·spring boot·大模型·log4j·智能体
阿里云大数据AI技术34 分钟前
一套 Spark SQL,打通多种 Catalog:EMR Serverless Spark 统一数据处理实践
人工智能·sql·spark
BFT白芙堂35 分钟前
Franka & DROID :面向真实场景的机器人操作数据集
人工智能·学习·机器学习·机器人·具身智能·franka·robotiq
深圳讯鹏科技39 分钟前
工业视觉计数落地实践:米厂米袋多目标检测与越线计数的边缘 AI 方案
人工智能·讯鹏科技·ai视觉计数传感器·ai 视觉计数传感器·ai视觉计数系统