开源Agent项目记忆设计决策对比

开源 Agent 项目记忆设计决策对比

引言

在 AI Agent 系统中,"记忆"是决定 Agent 能否从经验中学习、跨会话保持上下文、以及随时间变聪明的核心能力。本文档对比分析了七个主流开源 Agent 项目的记忆架构设计决策:LangGraph、CrewAI、Dify、Hermes Agent、OpenClaw、OpenHands 和 DeerFlow,梳理它们各自的技术选型、架构思路与取舍。


一、LangGraph:检查点驱动的状态持久化

设计哲学

LangGraph 的记忆设计围绕"状态即记忆"的理念展开。它将 Agent 的每一步执行状态(State)自动快照保存,通过 Checkpoint 机制实现会话的断点续跑、时间旅行和人机协同。

记忆架构:双存储体系

LangGraph 将记忆存储划分为两套独立体系:

存储层 核心角色 核心用途 数据隔离维度 写入时机 生命周期
Checkpointer(检查点) 会话短期记忆 保存 Graph 运行 state、消息历史、节点执行断点,支持中断后恢复执行 以 thread_id 为核心隔离,不同会话数据完全隔离 自动写入:graph.invoke() 执行过程自动保存 跟随会话 thread,可配置过期清理
Store(通用外部存储) 跨线程长期记忆 存储用户画像、用户偏好、事实记忆、业务知识库,多个会话可共享读取 以 namespace + key 隔离,同一用户下全部 thread 可共享记忆 手动操作:业务代码主动调用 put/get/search/delete 用户级长期记忆,独立于会话

存储后端选型

后端 适用场景 特点
InMemorySaver 开发调试 内存存储,进程重启丢失
SqliteSaver 单机部署 文件持久化,轻量级
PostgresSaver 生产环境 支持多实例并发与高可用
RedisSaver 高并发场景 低延迟

设计取舍

  • 优势:状态快照天然支持"时间旅行"调试;Checkpointer 与 Store 职责分离清晰,短期会话状态与长期用户记忆不混淆。
  • 局限:Checkpointer 本质是"全量快照",高频执行场景下存储开销较大;Store 需要业务代码手动管理,没有自动的记忆提取与压缩机制。

二、CrewAI:三层记忆系统

设计哲学

CrewAI 的记忆设计面向"多 Agent 协作"场景,强调让 Agent 从历史经验中学习,并维护对实体(人物、组织、概念)的一致认知。

三层记忆架构

记忆层 技术实现 作用 更新频率
短期记忆(Short-term Memory) 基于 RAG 的向量检索 存储当前 Crew 执行过程中的最近 N 条交互记录,使 Agent 能在当前任务上下文中回忆相关信息 每次任务执行
长期记忆(Long-term Memory) 向量数据库 + SQLite 保留从过去执行中获得的见解和学习,将"成功路径"提取出来写入本地,下次遇到同类问题直接复用经验 跨 Crew 执行持久化
实体记忆(Entity Memory) 向量数据库 + 知识图谱 捕获并维护关于核心实体(人物、地点、概念)的关键信息,构建实体关系图谱,保证多轮协作中所有 Agent 对同一概念的认知对齐 任务执行中持续抽取

上下文记忆(Context Memory)

CrewAI 还提供了一个 Context Memory 概念,将短期记忆、长期记忆、外部记忆和实体记忆统一组装后注入 Agent 的上下文窗口,实现"全维度记忆检索"。

设计取舍

  • 优势:三层记忆覆盖从瞬态到持久的完整记忆光谱;实体记忆支持知识图谱构建,适合复杂协作场景。
  • 局限:每个 Agent 都是独立的 LLM 调用,记忆检索增加 Token 消耗;串行模式下总延迟叠加明显。

三、Dify:RAG 驱动的知识库记忆

设计哲学

Dify 的记忆设计本质上是"企业级 RAG 系统"------将知识库作为 Agent 的长期记忆源,通过文档摄取、文本分割、向量化、检索增强生成的完整管线,让 Agent 拥有"外接大脑"。

记忆架构

Dify 的记忆能力主要通过其 RAG 知识系统实现:

复制代码
文档加载 → 文本提取 → 文档分割 → 向量化(Embedding) → 存储(Indexing) → 检索(Retrieval) → 重排(Reranking) → 上下文注入

关键技术选型

组件 选型 说明
向量数据库 Weaviate / Qdrant / Pinecone(可选) 存储语义化向量及轻量化关联信息
元数据库 PostgreSQL 存储结构化业务元数据
Embedding Sentence-Transformers 文本向量化
重排 Cross-Encoder 检索结果重排序

检索优化策略

  • 混合检索:结合向量检索(语义)和全文检索(关键词),取长补短
  • 父子分段:解决"召回粒度"与"上下文完整性"的矛盾
  • 上下文压缩/重排:在送入 LLM 前对检索结果进行筛选和排序,节省 Token 并提升质量
  • 动态 RAG:根据查询复杂度动态调整检索块大小(128~2048 tokens),多路召回策略加权排序

设计取舍

  • 优势:企业级 RAG 管线成熟,支持多种向量数据库后端可替换;低代码界面降低使用门槛;混合检索策略成熟。
  • 局限:记忆能力主要依赖外部知识库文档,缺乏 Agent 自主学习和经验沉淀机制;对话上下文管理相对简单,不像 LangGraph 那样有完整的状态持久化体系。

四、Hermes Agent:自进化的三层记忆架构

设计哲学

Hermes Agent 的核心定位是"自我进化的 AI Agent 框架",遵循"Agent 优先、进化第一"的理念。它的记忆设计目标是让 Agent"越用越聪明"------技能不是人写的,是 Agent 从经验中长出来的;记忆不是手动维护的,是 Agent 自己管理的。

三层记忆架构

记忆层 实现方式 特点 容量限制
第一层:内置记忆 MEMORY.md + USER.md(Markdown 文件) Agent 个人笔记与用户画像,会话开始时自动注入 System Prompt MEMORY.md 上限 2200 字符,USER.md 上限 1375 字符
第二层:外部记忆提供者 可插拔 Provider 接口(Honcho / Holographic / Mem0) 支持大规模语义搜索、知识图谱及结构化查询,遵循单 Provider 激活原则 取决于外部后端
第三层:会话搜索 SQLite + FTS5 全文索引 精确检索历史会话中的工具调用与对话内容,结合 LLM 摘要技术提取关键信息 取决于 SQLite 数据库大小

自进化闭环:GEPA 引擎

Hermes 独有的"遗传-帕累托提示进化"(GEPA)引擎,实现"执行→评估→优化→学习"的自动迭代:

  • 反思性变异:基于 LLM 反思生成提示词的变异版本
  • 帕累托前沿选择:在多目标(准确率、效率、稳定性)中选择最优解
  • 自然语言反馈作为变异信号:用户反馈直接驱动提示词进化

技能自进化系统

  • 自主创建:完成涉及 5 次以上工具调用的复杂任务、错误恢复或用户纠正时,自动生成可复用技能文件(SKILL.md)
  • 持续改进:记录技能调用反馈,通过 skill_manage 工具进行增量式补丁更新,支持版本控制与回滚
  • 技能组合:规划器理解技能依赖关系,将原子操作编排为复合技能工作流
  • 周期性自省(Periodic Nudge):默认每 10 个 turn 自动触发,评估信息保存价值、新技能创建需求及现有技能优化点

用户建模

集成 Honcho 框架实现深层用户建模,包含 12 个身份维度,通过辩证推理追踪用户任务偏好、决策习惯与工作模式变化。

设计取舍

  • 优势:记忆完全由 Agent 自主管理,无需人工维护;技能自进化系统独特,真正实现"越用越聪明";字符数限制而非 Token 限制更直观。
  • 局限:GEPA 进化引擎计算开销大;Markdown 文件作为记忆源在大规模数据下检索效率有限;外部记忆 Provider 生态尚不成熟。

五、OpenClaw:本地优先的混合存储

设计哲学

OpenClaw 采用"本地优先(Local-First)"的设计哲学,一切记忆以纯 Markdown 文件为单一源真理(Source of Truth),模型仅读取磁盘上显式写入的内容。核心架构为中心辐射式分层:Gateway 网关 → Agent 运行时 → Channel 渠道适配层 → Skills 技能与工具层 → Memory 记忆与状态管理层。

记忆架构:混合存储

存储层 技术实现 存储内容 特点
Markdown 文件 SOUL.md / AGENTS.md 等 长期记忆与配置 纯文本可读、可版本控制、人类可编辑
向量数据库 ChromaDB / LanceDB 语义检索 本地嵌入,隐私友好
SQLite 本地数据库 会话日志与结构化数据 轻量、零配置

会话生命周期

OpenClaw 的会话设计仿照操作系统进程模型:

  • 会话隔离 :每个会话有唯一 Session ID(格式:agent:<agentId>:<type> 或 group:discord:...)
  • 上下文重置 :/new 或 /reset 命令触发短期内存清零,重新加载 workspace 根目录核心文件
  • 持久化 :所有对话以 append-only JSONL 形式落盘于 ~/.openclaw/agents/<agentId>/sessions/
  • Gateway 路由:Gateway 负责 Session Resolution 与消息路由,是系统的唯一调度中枢

模型编排与故障转移

  • 支持 Anthropic、OpenAI、Gemini、Ollama 等多模型接入
  • Auth Profile 轮换(按 lastUsed 排序、冷却跳过)
  • 故障转移(Fallback 链)机制

设计取舍

  • 优势:Markdown 文件作为记忆源完全透明、可版本控制、人类可读可编辑;本地优先设计隐私保护好;插件化扩展能力强。
  • 局限:纯文本记忆在大规模数据下检索能力弱于向量数据库;缺少自动化的记忆提取与压缩机制;依赖外部向量数据库提供语义检索能力。

六、OpenHands:事件驱动的记忆管理

设计哲学

OpenHands 是一个自主编程 Agent 框架,其记忆设计围绕"事件驱动"和"沙盒化执行"展开。V1 版本引入了四项核心设计原则:沙盒化可选、默认无状态(单一真值来源)、严格的相关项分离、可组合且可安全扩展。

记忆架构

OpenHands 的记忆由 Memory 类管理,包含以下组件:

记忆组件 内容 作用
repository_info 代码仓库名称和路径 Agent 服务的代码仓库上下文
runtime_info 可用主机、额外 Agent 指令 运行时环境信息
repo_microagents 代码仓库级微代理指令 仓库特定的 Agent 行为规范
knowledge_microagents 通用知识微代理 跨仓库的通用知识指令

事件流架构

OpenHands 采用基于 EventStream 的发布-订阅机制:

复制代码
用户消息 → EventStream → AgentController → Runtime → 工具执行 → ObservationEvent → EventStream → 客户端

事件类型分层:

事件层 事件类型 说明
对话与推理输入层 MessageEvent、SystemPromptEvent、CondensationSummaryEvent 直接参与 LLM 上下文
工具调用层 ActionEvent Agent 发起的动作
工具反馈层 ObservationEvent、UserRejectObservation、AgentErrorEvent 环境返回的结果
会话控制与记忆管理层 ConversationStateUpdateEvent、PauseEvent、CondensationRequest、Condensation 不一定直接是对话内容

Condensation(上下文压缩)

OpenHands 内置上下文压缩机制,当对话历史过长时自动摘要压缩,保留关键信息同时控制上下文窗口大小。

设计取舍

  • 优势:事件驱动架构模块解耦清晰、易于拓展和可观测;沙盒化执行保证安全;V1 的"单一真值来源"设计实现确定性重放和强一致性。
  • 局限:记忆能力主要面向编程场景,缺乏面向通用对话的长期记忆和语义检索能力;microagent 机制偏向指令配置而非自主记忆学习。

七、DeerFlow:三级记忆架构与置信度机制

设计哲学

DeerFlow 定位为"Super Agent Harness",其记忆系统设计目标是支撑 Super Agent 完成长周期复杂任务,定位为"认知基础设施"而非独立存储层。记忆系统与上下文工程深度耦合,嵌入 14 层中间件管道。

三级记忆架构

层级 类型 更新频率 生命周期 核心作用
User Context(用户上下文) 短期/活跃记忆 每次对话 小时/天 实时反映当下状态,支撑即时响应
History(历史分层) 中期/长期记忆 按月/季度 月/年 沉淀过往行为轨迹,提炼行为规律
Facts(事实列表) 结构化长期记忆 低频 永久/半永久 固化离散知识点,供快速检索调用

记忆流转机制

DeerFlow 设计了一个精妙的记忆流转管道:

  • user 层的旧快照不会凭空消失,而是作为"历史行为轨迹"的一部分进入 history 层,形成从短期到长期的平滑过渡
  • 旧状态自动沉淀到 History 的 recentMonths 字段
  • 提炼为行为规律进入 longTermBackground
  • 离散知识固化进入 Facts 列表

每条记忆分配 0.0~1.0 置信度评分,低置信度的 fact 在注入时会被后置或过滤。

异步更新管道

复制代码
MemoryMiddleware(事件入口)→ 消息预处理层(清洗+信号检测)→ MemoryUpdateQueue(防抖队列)→ MemoryUpdater(LLM结构化生成)→ storage.py(持久化存储)→ Prompt注入层(Token预算感知)

关键设计:

  • 防抖异步更新:不阻塞主流程,批量聚合后统一更新
  • 置信度机制:LLM 提取记忆时附带置信度评分,支持按阈值过滤低质量记忆
  • Token 预算感知注入:按置信度排序 facts,优先保留高置信度、高相关性的内容;在 Token 预算内为 LLM 提供最有价值的记忆信息

多级记忆隔离

  • 支持全局用户记忆(跨 Agent 共享)与专属 Agent 记忆(独立空间)两级隔离
  • 主 Agent 与子 Agent 上下文完全独立,防止信息污染

上下文压缩策略

采用两阶段压缩管道:先对工具返回内容进行截断压缩,再按"保留前缀+最新消息"策略丢弃中间旧消息,确保长时任务信息连续性。

设计取舍

  • 优势:三级记忆分类清晰,覆盖从瞬态到持久的完整光谱;置信度机制保证记忆质量;异步更新不阻塞主流程;多级隔离防止信息污染。
  • 局限:记忆更新依赖 LLM 提取,Token 消耗较大;结构化 JSON 存储在跨平台共享场景下不如 Markdown 文件灵活。

八、横向对比总结

记忆存储方案对比

项目 主要存储方式 是否支持语义检索 是否支持跨会话 自动化程度
LangGraph Checkpointer + Store(PostgreSQL/SQLite/Redis) Store 层支持 是(Store 层) 中等(需手动管理 Store)
CrewAI 向量数据库 + SQLite 是 是 高(内置三层记忆自动管理)
Dify 向量数据库(Weaviate/Qdrant)+ PostgreSQL 是(混合检索) 是(知识库) 高(RAG 管线全自动)
Hermes Agent Markdown 文件 + SQLite FTS5 + 外部 Provider 是(FTS5 + 外部 Provider) 是 极高(Agent 自主管理 + 自进化)
OpenClaw Markdown 文件 + ChromaDB/LanceDB + SQLite 是(向量数据库) 是 中等(文件手动管理 + 向量检索)
OpenHands 事件流 + Memory 类 + microagents 有限 有限 中等(上下文压缩自动化)
DeerFlow 结构化 JSON(memory.json) 是(按 Agent 检索) 是 高(异步 LLM 提取 + 置信度过滤)

设计哲学对比

项目 核心定位 记忆设计关键词
LangGraph 底层编排引擎 状态快照、检查点、双存储分离
CrewAI 多 Agent 角色协作 三层记忆、实体图谱、经验复用
Dify 低代码 AI 应用平台 RAG 管线、知识库、混合检索
Hermes Agent 自进化个人 Agent 自主管理、技能进化、字符限制
OpenClaw 本地优先 Agent 网关 Markdown 源真理、本地优先、插件化
OpenHands 自主编程 Agent 事件驱动、沙盒化、单一真值来源
DeerFlow Super Agent 运行时 三级记忆、置信度、异步管道

选型建议

场景 推荐项目 理由
需要精细的状态控制和调试能力 LangGraph Checkpoint 机制支持时间旅行和断点恢复
多 Agent 协作且需要经验积累 CrewAI 三层记忆 + 实体记忆覆盖协作场景
企业知识库问答 / RAG 应用 Dify 成熟的 RAG 管线 + 低代码界面
个人长期助手,追求"越用越聪明" Hermes Agent 自进化闭环 + 技能自生成 + 跨会话记忆
本地部署、隐私优先的个人 Agent OpenClaw Markdown 源真理 + 本地向量检索 + 多渠道接入
编程自动化 / 代码仓库 Agent OpenHands 事件驱动 + 沙盒执行 + 仓库级记忆
复杂长任务编排 + 企业级 Agent 运行时 DeerFlow 三级记忆 + 置信度机制 + 多级隔离

结语

这七个项目在记忆设计上展现了截然不同的设计哲学:

  • LangGraph 选择"状态即记忆",用检查点机制保证可控性和可调试性;
  • CrewAI 选择"三层记忆分层",用 RAG + 向量数据库实现经验复用;
  • Dify 选择"知识库即记忆",用成熟的 RAG 管线解决企业知识管理;
  • Hermes Agent 选择"Agent 自主管理记忆",用自进化闭环实现真正的持续学习;
  • OpenClaw 选择"Markdown 即真理",用纯文本文件保证透明性和可编辑性;
  • OpenHands 选择"事件即记忆",用事件流和单一真值来源保证一致性;
  • DeerFlow 选择"结构化记忆 + 置信度过滤",用异步管道保证生产级稳定性。

如果你的目标是搭建一个个人 Agent 系统,可以参考这些项目的优秀设计,取长补短:用 LangGraph 的状态管理做编排底座,用 CrewAI 的三层记忆思路组织经验,用 Hermes 的自进化理念设计技能沉淀闭环,用 OpenClaw 的本地优先理念保证隐私可控,用 DeerFlow 的置信度机制保证记忆质量。

相关推荐
vipxieliang3 小时前
Python 魔法方法:让自定义对象更 Pythonic
python
艾莉丝努力练剑3 小时前
【AI大模型接入SDK】ChatServer接口测试
网络·c++·人工智能·学习·ai·大模型·sdk
雨晨源码(同名B站)3 小时前
深度学习毕业设计选题推荐:基于YOLO11的交通标志检测系统设计与实现(Python+Django+Vue3+对接deepseek)
人工智能·python·深度学习·机器学习·django·课程设计
2601_967979124 小时前
python中str函数怎么用?使用方法与注意事项详解
python·使用方法·字符串转换·注意事项·str函数
青少儿编程课堂4 小时前
蓝桥杯青少组图形化+信息素养+电子学会Scratch考级:校园口算闯关解析
c++·python·算法·bfs·信息学竞赛
五萝卜4 小时前
AI 供应链 RAG 安全
人工智能·网络安全·ai编程
灵感__idea4 小时前
Claude Code:能干活只是初级目标,再提10倍
ai编程·claude·cursor
柳杉4 小时前
让 AI 学会审美、建模和剪片:我收藏夹里的 14 个仓库
前端·ai编程·three.js
万物智能信息科技4 小时前
指纹识别传感器驱动开发—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
驱动开发·华为·开源·harmonyos·鸿蒙