在理解了记忆机制的通用原理之后,最关键的问题来了:当前主流的开源 Agent,到底是怎么实现记忆的?它们之间有什么本质差异?
本文将四大主流 Agent——OpenClaw、QwenPaw、Hermes Agent、HiClaw——的记忆系统逐层拆解,从存储架构、检索策略、写入机制到核心设计哲学,做一次彻底的横向对比。
一、四大 Agent 一句话定位
|
|
|
|
| OpenClaw |
|
SQLite + Markdown + 混合检索 + memory-host-sdk
|
| Hermes Agent |
|
四层记忆栈 + Agent 策展 + KEPA 反向传播 + Honcho 建模
|
| QwenPaw |
|
每 Agent 独立记忆 + Multi-Agent 协作共享 + 本地模型
|
| HiClaw |
多 Agent 协作系统,Manager-Workers 架构
|
专属 Manager Claw 统筹 + Matrix 实时通信 + 记忆隔离
|
二、记忆架构逐层对比
🧠 2.1 存储架构对比
|
|
|
|
|
|
| 核心存储介质 |
|
SQLite WAL + FTS5 + MEMORY.md / USER.md
|
本地文件系统 + SQLite(AgentScope Runtime)
|
|
| 长期记忆文件 |
MEMORY.md
|
MEMORY.md
(2200字符)+ USER.md(1375字符)
|
|
|
| 短期/会话记忆 |
memory/YYYY-MM-DD.md
|
SQLite 原始对话记录(Session Memory)
|
Agent 内部 memory(对话历史 + 执行记录)
|
|
| 是否向量化 |
|
|
✅ 支持(通过 AgentScope Runtime)
|
|
| 字符硬限制 |
|
✅ MEMORY.md ≤2200 chars,USER.md ≤1375 chars
|
|
|
🔑 核心差异:OpenClaw 和 QwenPaw 走”向量化”路线,Hermes 故意不用向量库,用 FTS5 + LLM 摘要实现”轻量级语义检索”——这是 Hermes 最独特的设计选择。
🔍 2.2 检索策略对比
|
|
|
|
|
|
| 关键词检索 |
|
|
|
|
| 向量语义检索 |
✅ LanceDB(混合检索,默认 7:3 权重)
|
|
|
|
| LLM 摘要检索 |
|
|
|
|
| 混合检索权重 |
|
|
|
|
| 去重策略 |
|
|
|
|
| 时间衰减 |
|
|
|
|
| 检索效果对比 | OpenClaw | Hermes Agent | QwenPaw | |————-|———-|————–| | 语义理解深度 | ⭐⭐⭐⭐⭐(向量检索) | ⭐⭐⭐(FTS5 + LLM 摘要) | ⭐⭐⭐⭐(向量 + LLM) | | 精确匹配能力 | ⭐⭐⭐⭐(BM25 保留) | ⭐⭐⭐⭐⭐(FTS5 关键词强) | ⭐⭐⭐⭐ | | 部署复杂度 | ⭐⭐⭐(需 LanceDB) | ⭐⭐⭐⭐⭐(零额外依赖) | ⭐⭐⭐ | | 检索成本 | 中(Embedding 计费) | 低(纯 SQLite) | 中 |
✏️ 2.3 记忆写入机制对比
|
|
|
|
|
|
| 写入触发 |
Agent 主动调用 memory_search / 压缩前自动刷新
|
定时提醒(每 120 秒)+ Agent 主动 memory 工具
|
Agent Loop 中每轮 read→write
|
|
| 写入方式 |
LLM 提炼 → 写入 Markdown → SQLite 索引增量更新
|
字符截断 → 写入 MEMORY.md / USER.md → SQLite
|
|
|
| 总结/压缩 |
✅ Memory Flush:压缩前触发记忆刷新,LLM 主动提炼持久事实
|
✅ ContextCompressor:五阶段压缩(工具输出裁剪→头部保护→尾部预算→LLM 摘要→flush)
|
|
|
| Agent 策展 |
|
✅ 核心特色:Agent 自主决定保存什么,不是自动录制一切
|
|
|
| 元记忆/反思 |
|
✅ KEPA 反向传播:失败信号 → 更新提示模板和技能定义
|
|
|
| 双状态管理 |
|
✅ MemoryStore 双状态:系统提示快照(冻结)+ 实时状态(工具修改)
|
|
|
🔄 2.4 记忆生命周期对比
┌─────────────────────────────────────────────────────────────────┐
│ OpenClaw 记忆生命周期 │
│ │
│ 会话开始 → 加载 MEMORY.md + 最近2天 daily.md → 注入 System │
│ │ │
│ ▼ │
│ 每轮对话 → messages 追加 → 上下文累积 │
│ │ │
│ ▼ │
│ 上下文压缩 → Memory Flush → LLM 提炼 → 写入 MEMORY.md │
│ │ │
│ ▼ │
│ 会话结束 → session 快照写入 memory/YYYY-MM-DD.md → 索引增量更新 │
│ │ │
│ ▼ │
│ 跨会话 → memory_search() 语义/关键词检索 → 注入上下文 │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ Hermes Agent 记忆生命周期 │
│ │
│ 会话开始 → 加载 MEMORY.md + USER.md → 拼接为 System 前缀 │
│ │ │
│ ▼ │
│ 每轮对话 → MemoryStore 双状态:快照不动 + 实时状态落盘 │
│ │ │
│ ▼ │
│ 每 120 秒 → Memory Nudge 提醒 → Agent 判断是否保存 │
│ │ │
│ ▼ │
│ 上下文压缩 → ContextCompressor 五阶段 → flush_memories() │
│ │ │
│ ▼ │
│ 失败/纠错 → KEPA 反向传播 → 更新技能定义 + 提示模板 │
│ │ │
│ ▼ │
│ 跨会话 → session_search (FTS5) → LLM 摘要 → 注入上下文 │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ QwenPaw 记忆生命周期 │
│ │
│ Agent 初始化 → load_agents() → 每个 Agent 加载独立 memory │
│ │ │
│ ▼ │
│ Agent Loop → read memory → Planner 决策 → executor 执行 │
│ │ │ │
│ │ ▼ │
│ │ write back memory │
│ │ │
│ ▼ │
│ Multi-Agent → 消息通信 → 记忆共享(通过消息传递上下文) │
│ │ │
│ ▼ │
│ Mission Mode → 任务拆解 → 子 Agent 执行 → 结果整合 → 记忆沉淀 │
└─────────────────────────────────────────────────────────────────┘
三、核心设计哲学对比(最关键的差异)
|
|
|
|
|
|
| 设计哲学 |
“记忆是可插拔的后端” |
“记忆是 Agent 的核心能力” |
“记忆服务于多 Agent 协作” |
“记忆由 Manager 统筹” |
| 记忆是谁的? |
|
|
|
|
| 谁决定存什么? |
|
Agent 自主决定
|
|
|
| 谁决定怎么存? |
|
|
|
|
| 记忆能进化吗? |
|
|
|
|
| 可扩展性 |
|
|
|
|
| 数据主权 |
|
|
完全本地,支持本地模型 |
|
| 最大优势 |
|
|
|
|
| 最大局限 |
|
|
|
|
四、记忆能力详细对比表
五、记忆写入流程深度对比
OpenClaw 的写入
Agent 调用 memory 工具
│
▼
LLM 提炼关键信息
│
▼
写入 MEMORY.md(长期)或 memory/YYYY-MM-DD.md(短期)
│
▼
SQLite 索引增量更新:
├── 文件 hash 对比 → 没变就跳过(省钱)
├── chunk 重建 → tokens*4 字符分块
├── embedding 缓存复用 → 避免重复计费
└── id = sha256(source:path:line:chunk.hash:provider.model)
→ ON CONFLICT DO UPDATE
Hermes 的写入
每 120 秒 Memory Nudge 触发
│
▼
Agent 判断:是否有值得保存的内容?
│
├── 是 → 调用 memory 工具 → 字符截断 → 写入 MEMORY.md / USER.md
│ └── 截断规则:MEMORY.md ≤2200 chars,USER.md ≤1375 chars
│
└── 否 → 跳过(只有"忘记保存"的 Agent 才会被提醒)
│
▼
ContextCompressor 触发(上下文达阈值):
Phase 1: 工具输出裁剪
Phase 2: 头部保护(保留关键指令)
Phase 3: 尾部 token 预算
Phase 4: LLM 摘要
Phase 5: flush_memories() → 用户角色消息注入
│
▼
KEPA 反向传播(仅失败/纠错时):
失败点定位 → 生成替代提示 → 更新技能定义 → 写入长期记忆
QwenPaw 的写入
Agent Loop 每轮:
┌──────────────────────────────┐
│ read memory → think → act │
│ ↑ │ │
│ └── write back ┘ │
└──────────────────────────────┘
│
▼
Mission Mode(自动任务):
目标 → 任务拆解 → 子 Agent 执行 → 结果整合 → 记忆沉淀
│
▼
Multi-Agent 协作:
Agent A 完成 → 消息 → Agent B 接收(上下文即记忆传递)
六、检索注入流程深度对比
|
|
|
|
|
| 触发时机 |
|
|
Agent Loop 每轮 + Planner 按需
|
| 检索工具 |
memory_search(query) |
session_search(query) |
|
| 检索算法 |
|
|
|
| 注入方式 |
|
|
|
| 注入量控制 |
|
|
|
| 缓存策略 |
✅ embedding 缓存(provider+model+hash)
|
|
|
七、实战场景对比:谁更适合什么?
|
|
|
|
| 个人日常助理,需要跨会话记住偏好 |
|
Honcho 用户建模 + 字符限制 + KEPA 进化,真正”越用越懂你”
|
| 接入已有 LLM,快速加记忆能力 |
|
memory-host-sdk 生态最开放,任何 LLM 都能用
|
| 多 Agent 协作完成复杂任务 |
|
Multi-Agent + 记忆共享 + Mission Mode,协作能力最强
|
| 企业级多 Agent 分布式部署 |
|
Manager-Workers + Matrix 通信,架构最完整
|
| 追求语义检索精度 |
|
LanceDB 向量检索 + 混合检索,召回质量最高
|
| 追求零依赖、轻量部署 |
|
无向量库,纯 SQLite + FTS5,部署最简单
|
| 需要外部程序读写 Agent 记忆 |
|
memory-host-sdk 独立 SDK,6 个文件搞定
|
| 需要从失败中自动学习 |
|
|
| 数据完全本地、隐私敏感 |
|
|
八、一张图总结四大 Agent 记忆系统
记忆能力光谱
语义检索强度 ←──────────────────────────→ 精确检索强度
OpenClaw [████████████░░] 向量+关键词混合,最均衡
QwenPaw [███████████░░░] 向量为主,协作增强
Hermes [██████░░░░░░░░] FTS5+摘要,精确为主
HiClaw [█████░░░░░░░░░] 关键词为主,Manager统筹
记忆进化能力 ←──────────────────────────→ 部署简单度
Hermes [██████████████] KEPA+Honcho,进化最强
OpenClaw[███████████░░░] 记忆刷新,中等进化
QwenPaw [████████░░░░░░] Skill沉淀,协作进化
HiClaw [██████░░░░░░░░] 架构复杂,进化有限
┌──────────────┬──────────────┬──────────────┬──────────────┐
│ OpenClaw │ Hermes │ QwenPaw │ HiClaw │
├──────────────┼──────────────┼──────────────┼──────────────┤
│ 插件化后端 │ 自进化个体 │ Agent OS │ 多Agent协作 │
│ SQLite+MD │ 四层记忆栈 │ 每Agent独立 │ Claw隔离 │
│ LanceDB向量 │ FTS5+LLM摘要 │ 向量+LLM │ 关键词检索 │
│ 全量记录 │ Agent策展 │ Planner驱动 │ Manager统筹 │
│ memory-sdk │ KEPA反向传播 │ Multi-Agent │ Matrix通信 │
│ 生态最开放 │ 越用越懂你 │ 本地优先 │ 企业级架构 │
└──────────────┴──────────────┴──────────────┴──────────────┘
九、核心结论
|
|
|
| OpenClaw 是”记忆基础设施” |
它不追求记忆多智能,但提供了最开放、最标准化的记忆后端,任何项目都可以接入
|
| Hermes 是”记忆原生 Agent” |
记忆不是外挂,而是 Agent 的核心能力。四层栈 + 策展 + KEPA,代表了”Agent 记忆”的最前沿方向
|
| QwenPaw 是”记忆协作平台” |
单 Agent 记忆不是最强,但 Multi-Agent 记忆共享 + Mission Mode 让它在复杂任务场景下无敌
|
| HiClaw 是”记忆企业方案” |
架构最重,但对于需要多 Agent 分布式协作的企业场景,它是最完整的选择
|
🔥 2026 年的趋势判断:Hermes 的”Agent 策展 + KEPA 反向传播”代表了 Agent 记忆的未来方向——不是记得越多越好,而是 Agent 自主决定什么值得记、怎么记、怎么用。OpenClaw 的 memory-host-sdk 生态则代表了另一个方向——记忆标准化、可插拔、跨 Agent 互通。两者融合,才是最优解。
核心公式(更新版)