欢迎光临
我们一直在努力

AI Agent 记忆机制全景对比:OpenClaw vs QwenPaw vs Hermes vs HiClaw

在这里插入图片描述

在理解了记忆机制的通用原理之后,最关键的问题来了:当前主流的开源 Agent,到底是怎么实现记忆的?它们之间有什么本质差异?

本文将四大主流 Agent——OpenClaw、QwenPaw、Hermes Agent、HiClaw——的记忆系统逐层拆解,从存储架构、检索策略、写入机制到核心设计哲学,做一次彻底的横向对比。

在这里插入图片描述

一、四大 Agent 一句话定位

Agent定位记忆核心关键词
OpenClaw 插件化记忆后端,让任何 LLM 都能"记住" SQLite + Markdown + 混合检索 + memory-host-sdk
Hermes Agent 与你共同成长的自进化个人智能体 四层记忆栈 + Agent 策展 + KEPA 反向传播 + Honcho 建模
QwenPaw 本地优先的个人助理型"Agent 操作系统" 每 Agent 独立记忆 + Multi-Agent 协作共享 + 本地模型
HiClaw 多 Agent 协作系统,Manager-Workers 架构 专属 Manager Claw 统筹 + Matrix 实时通信 + 记忆隔离

二、记忆架构逐层对比

🧠 2.1 存储架构对比

维度OpenClawHermes AgentQwenPawHiClaw
核心存储介质 SQLite + Markdown 文件 SQLite WAL + FTS5 + MEMORY.md / USER.md 本地文件系统 + SQLite(AgentScope Runtime) 每个 Claw 独立存储
长期记忆文件 MEMORY.md(工作区根目录) MEMORY.md(2200字符)+ USER.md(1375字符) 每个 Agent 独立的 memory 目录 各 Claw 独立记忆
短期/会话记忆 memory/YYYY-MM-DD.md 每日日志 SQLite 原始对话记录(Session Memory) Agent 内部 memory(对话历史 + 执行记录) Worker Claw 会话记忆
是否向量化 ✅ LanceDB(可选扩展) ❌ 无向量数据库(FTS5 + LLM 摘要) ✅ 支持(通过 AgentScope Runtime) ❌ 偏关键词检索
字符硬限制 ❌ 无显式限制 ✅ MEMORY.md ≤2200 chars,USER.md ≤1375 chars ❌ 无 ❌ 无

🔑 核心差异:OpenClaw 和 QwenPaw 走"向量化"路线,Hermes 故意不用向量库,用 FTS5 + LLM 摘要实现"轻量级语义检索"——这是 Hermes 最独特的设计选择。


🔍 2.2 检索策略对比

策略OpenClawHermes AgentQwenPawHiClaw
关键词检索 ✅ FTS5 / BM25 ✅ FTS5(SQLite 全文索引) ✅ 支持 ✅ 支持
向量语义检索 ✅ LanceDB(混合检索,默认 7:3 权重) ❌ 不使用 ✅ AgentScope Runtime 内置
LLM 摘要检索 ✅ 检索后 LLM 提炼摘要再注入 ✅ 核心策略:检索→LLM 摘要→注入 ✅ Planner 驱动按需检索 ⚠️ Manager 统筹
混合检索权重 70% 向量 + 30% 关键词 无(纯 FTS5 + LLM) 动态(Runtime 调度) N/A
去重策略 ✅ MMR(最大边际相关性) ✅ Jaccard 相似度去重 ✅ Runtime 内置 ⚠️ 依赖 Manager
时间衰减 ✅ 指数衰减(半衰期 30 天),常青记忆不衰减 ✅ 定时提醒 + 字符限制自然控制 ⚠️ 无显式衰减 ⚠️ 无

| 检索效果对比 | OpenClaw | Hermes Agent | QwenPaw |
|————-|———-|————–|
| 语义理解深度 | ⭐⭐⭐⭐⭐(向量检索) | ⭐⭐⭐(FTS5 + LLM 摘要) | ⭐⭐⭐⭐(向量 + LLM) |
| 精确匹配能力 | ⭐⭐⭐⭐(BM25 保留) | ⭐⭐⭐⭐⭐(FTS5 关键词强) | ⭐⭐⭐⭐ |
| 部署复杂度 | ⭐⭐⭐(需 LanceDB) | ⭐⭐⭐⭐⭐(零额外依赖) | ⭐⭐⭐ |
| 检索成本 | 中(Embedding 计费) | 低(纯 SQLite) | 中 |


✏️ 2.3 记忆写入机制对比

机制OpenClawHermes AgentQwenPawHiClaw
写入触发 Agent 主动调用 memory_search / 压缩前自动刷新 定时提醒(每 120 秒)+ Agent 主动 memory 工具 Agent Loop 中每轮 read→write Manager 统筹 + Worker 自主
写入方式 LLM 提炼 → 写入 Markdown → SQLite 索引增量更新 字符截断 → 写入 MEMORY.md / USER.md → SQLite 写入 Agent 独立 memory 目录 各 Claw 独立写入
总结/压缩 ✅ Memory Flush:压缩前触发记忆刷新,LLM 主动提炼持久事实 ✅ ContextCompressor:五阶段压缩(工具输出裁剪→头部保护→尾部预算→LLM 摘要→flush) ✅ Runtime 内置压缩 ⚠️ 依赖 Manager
Agent 策展 ❌ 无(全量记录) ✅ 核心特色:Agent 自主决定保存什么,不是自动录制一切 ⚠️ 部分(Skill 驱动) ⚠️ Manager 统筹
元记忆/反思 ❌ 无显式元记忆 ✅ KEPA 反向传播:失败信号 → 更新提示模板和技能定义 ⚠️ Planner 隐式反思
双状态管理 ✅ 快照注入 + 实时落盘 ✅ MemoryStore 双状态:系统提示快照(冻结)+ 实时状态(工具修改) ✅ Profile 冻结 + Memory 动态 ⚠️ Claw 隔离

🔄 2.4 记忆生命周期

#mermaid-svg-5V8gPhaohHvl1Lz2{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-5V8gPhaohHvl1Lz2 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-5V8gPhaohHvl1Lz2 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-5V8gPhaohHvl1Lz2 .error-icon{fill:#552222;}#mermaid-svg-5V8gPhaohHvl1Lz2 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-5V8gPhaohHvl1Lz2 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-5V8gPhaohHvl1Lz2 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-5V8gPhaohHvl1Lz2 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-5V8gPhaohHvl1Lz2 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-5V8gPhaohHvl1Lz2 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-5V8gPhaohHvl1Lz2 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-5V8gPhaohHvl1Lz2 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-5V8gPhaohHvl1Lz2 .marker.cross{stroke:#333333;}#mermaid-svg-5V8gPhaohHvl1Lz2 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-5V8gPhaohHvl1Lz2 p{margin:0;}#mermaid-svg-5V8gPhaohHvl1Lz2 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-5V8gPhaohHvl1Lz2 .cluster-label text{fill:#333;}#mermaid-svg-5V8gPhaohHvl1Lz2 .cluster-label span{color:#333;}#mermaid-svg-5V8gPhaohHvl1Lz2 .cluster-label span p{background-color:transparent;}#mermaid-svg-5V8gPhaohHvl1Lz2 .label text,#mermaid-svg-5V8gPhaohHvl1Lz2 span{fill:#333;color:#333;}#mermaid-svg-5V8gPhaohHvl1Lz2 .node rect,#mermaid-svg-5V8gPhaohHvl1Lz2 .node circle,#mermaid-svg-5V8gPhaohHvl1Lz2 .node ellipse,#mermaid-svg-5V8gPhaohHvl1Lz2 .node polygon,#mermaid-svg-5V8gPhaohHvl1Lz2 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-5V8gPhaohHvl1Lz2 .rough-node .label text,#mermaid-svg-5V8gPhaohHvl1Lz2 .node .label text,#mermaid-svg-5V8gPhaohHvl1Lz2 .image-shape .label,#mermaid-svg-5V8gPhaohHvl1Lz2 .icon-shape .label{text-anchor:middle;}#mermaid-svg-5V8gPhaohHvl1Lz2 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-5V8gPhaohHvl1Lz2 .rough-node .label,#mermaid-svg-5V8gPhaohHvl1Lz2 .node .label,#mermaid-svg-5V8gPhaohHvl1Lz2 .image-shape .label,#mermaid-svg-5V8gPhaohHvl1Lz2 .icon-shape .label{text-align:center;}#mermaid-svg-5V8gPhaohHvl1Lz2 .node.clickable{cursor:pointer;}#mermaid-svg-5V8gPhaohHvl1Lz2 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-5V8gPhaohHvl1Lz2 .arrowheadPath{fill:#333333;}#mermaid-svg-5V8gPhaohHvl1Lz2 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-5V8gPhaohHvl1Lz2 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-5V8gPhaohHvl1Lz2 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-5V8gPhaohHvl1Lz2 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-5V8gPhaohHvl1Lz2 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-5V8gPhaohHvl1Lz2 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-5V8gPhaohHvl1Lz2 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-5V8gPhaohHvl1Lz2 .cluster text{fill:#333;}#mermaid-svg-5V8gPhaohHvl1Lz2 .cluster span{color:#333;}#mermaid-svg-5V8gPhaohHvl1Lz2 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-5V8gPhaohHvl1Lz2 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-5V8gPhaohHvl1Lz2 rect.text{fill:none;stroke-width:0;}#mermaid-svg-5V8gPhaohHvl1Lz2 .icon-shape,#mermaid-svg-5V8gPhaohHvl1Lz2 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-5V8gPhaohHvl1Lz2 .icon-shape p,#mermaid-svg-5V8gPhaohHvl1Lz2 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-5V8gPhaohHvl1Lz2 .icon-shape .label rect,#mermaid-svg-5V8gPhaohHvl1Lz2 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-5V8gPhaohHvl1Lz2 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-5V8gPhaohHvl1Lz2 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-5V8gPhaohHvl1Lz2 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

OpenClaw 记忆生命周期

会话开始

加载 MEMORY.md + 最近2天 daily.md

注入 System Prompt

每轮对话 → messages 追加

上下文达到压缩阈值?

Memory Flush → LLM 提炼

写入 MEMORY.md

会话结束

写入 memory/YYYY-MM-DD.md

SQLite 索引增量更新

跨会话 → memory_search 检索


#mermaid-svg-gTBpFbuKMNGz6Jjr{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-gTBpFbuKMNGz6Jjr .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-gTBpFbuKMNGz6Jjr .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-gTBpFbuKMNGz6Jjr .error-icon{fill:#552222;}#mermaid-svg-gTBpFbuKMNGz6Jjr .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-gTBpFbuKMNGz6Jjr .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-gTBpFbuKMNGz6Jjr .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-gTBpFbuKMNGz6Jjr .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-gTBpFbuKMNGz6Jjr .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-gTBpFbuKMNGz6Jjr .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-gTBpFbuKMNGz6Jjr .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-gTBpFbuKMNGz6Jjr .marker{fill:#333333;stroke:#333333;}#mermaid-svg-gTBpFbuKMNGz6Jjr .marker.cross{stroke:#333333;}#mermaid-svg-gTBpFbuKMNGz6Jjr svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-gTBpFbuKMNGz6Jjr p{margin:0;}#mermaid-svg-gTBpFbuKMNGz6Jjr .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-gTBpFbuKMNGz6Jjr .cluster-label text{fill:#333;}#mermaid-svg-gTBpFbuKMNGz6Jjr .cluster-label span{color:#333;}#mermaid-svg-gTBpFbuKMNGz6Jjr .cluster-label span p{background-color:transparent;}#mermaid-svg-gTBpFbuKMNGz6Jjr .label text,#mermaid-svg-gTBpFbuKMNGz6Jjr span{fill:#333;color:#333;}#mermaid-svg-gTBpFbuKMNGz6Jjr .node rect,#mermaid-svg-gTBpFbuKMNGz6Jjr .node circle,#mermaid-svg-gTBpFbuKMNGz6Jjr .node ellipse,#mermaid-svg-gTBpFbuKMNGz6Jjr .node polygon,#mermaid-svg-gTBpFbuKMNGz6Jjr .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-gTBpFbuKMNGz6Jjr .rough-node .label text,#mermaid-svg-gTBpFbuKMNGz6Jjr .node .label text,#mermaid-svg-gTBpFbuKMNGz6Jjr .image-shape .label,#mermaid-svg-gTBpFbuKMNGz6Jjr .icon-shape .label{text-anchor:middle;}#mermaid-svg-gTBpFbuKMNGz6Jjr .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-gTBpFbuKMNGz6Jjr .rough-node .label,#mermaid-svg-gTBpFbuKMNGz6Jjr .node .label,#mermaid-svg-gTBpFbuKMNGz6Jjr .image-shape .label,#mermaid-svg-gTBpFbuKMNGz6Jjr .icon-shape .label{text-align:center;}#mermaid-svg-gTBpFbuKMNGz6Jjr .node.clickable{cursor:pointer;}#mermaid-svg-gTBpFbuKMNGz6Jjr .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-gTBpFbuKMNGz6Jjr .arrowheadPath{fill:#333333;}#mermaid-svg-gTBpFbuKMNGz6Jjr .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-gTBpFbuKMNGz6Jjr .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-gTBpFbuKMNGz6Jjr .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-gTBpFbuKMNGz6Jjr .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-gTBpFbuKMNGz6Jjr .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-gTBpFbuKMNGz6Jjr .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-gTBpFbuKMNGz6Jjr .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-gTBpFbuKMNGz6Jjr .cluster text{fill:#333;}#mermaid-svg-gTBpFbuKMNGz6Jjr .cluster span{color:#333;}#mermaid-svg-gTBpFbuKMNGz6Jjr 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-gTBpFbuKMNGz6Jjr .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-gTBpFbuKMNGz6Jjr rect.text{fill:none;stroke-width:0;}#mermaid-svg-gTBpFbuKMNGz6Jjr .icon-shape,#mermaid-svg-gTBpFbuKMNGz6Jjr .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-gTBpFbuKMNGz6Jjr .icon-shape p,#mermaid-svg-gTBpFbuKMNGz6Jjr .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-gTBpFbuKMNGz6Jjr .icon-shape .label rect,#mermaid-svg-gTBpFbuKMNGz6Jjr .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-gTBpFbuKMNGz6Jjr .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-gTBpFbuKMNGz6Jjr .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-gTBpFbuKMNGz6Jjr :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

Hermes Agent 记忆生命周期

会话开始

加载 MEMORY.md + USER.md

拼接为 System 前缀

每轮对话 → MemoryStore 双状态

每 120 秒?

Memory Nudge 提醒

Agent 判断是否保存?

写入 MEMORY.md / USER.md

上下文达到阈值?

ContextCompressor 五阶段压缩

flush_memories

失败或纠错?

KEPA 反向传播

更新技能定义 + 提示模板

跨会话 → session_search FTS5

LLM 摘要 → 注入上下文


#mermaid-svg-tkdItZnagdo5qkeQ{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-tkdItZnagdo5qkeQ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-tkdItZnagdo5qkeQ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-tkdItZnagdo5qkeQ .error-icon{fill:#552222;}#mermaid-svg-tkdItZnagdo5qkeQ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-tkdItZnagdo5qkeQ .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-tkdItZnagdo5qkeQ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-tkdItZnagdo5qkeQ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-tkdItZnagdo5qkeQ .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-tkdItZnagdo5qkeQ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-tkdItZnagdo5qkeQ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-tkdItZnagdo5qkeQ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-tkdItZnagdo5qkeQ .marker.cross{stroke:#333333;}#mermaid-svg-tkdItZnagdo5qkeQ svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-tkdItZnagdo5qkeQ p{margin:0;}#mermaid-svg-tkdItZnagdo5qkeQ .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-tkdItZnagdo5qkeQ .cluster-label text{fill:#333;}#mermaid-svg-tkdItZnagdo5qkeQ .cluster-label span{color:#333;}#mermaid-svg-tkdItZnagdo5qkeQ .cluster-label span p{background-color:transparent;}#mermaid-svg-tkdItZnagdo5qkeQ .label text,#mermaid-svg-tkdItZnagdo5qkeQ span{fill:#333;color:#333;}#mermaid-svg-tkdItZnagdo5qkeQ .node rect,#mermaid-svg-tkdItZnagdo5qkeQ .node circle,#mermaid-svg-tkdItZnagdo5qkeQ .node ellipse,#mermaid-svg-tkdItZnagdo5qkeQ .node polygon,#mermaid-svg-tkdItZnagdo5qkeQ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-tkdItZnagdo5qkeQ .rough-node .label text,#mermaid-svg-tkdItZnagdo5qkeQ .node .label text,#mermaid-svg-tkdItZnagdo5qkeQ .image-shape .label,#mermaid-svg-tkdItZnagdo5qkeQ .icon-shape .label{text-anchor:middle;}#mermaid-svg-tkdItZnagdo5qkeQ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-tkdItZnagdo5qkeQ .rough-node .label,#mermaid-svg-tkdItZnagdo5qkeQ .node .label,#mermaid-svg-tkdItZnagdo5qkeQ .image-shape .label,#mermaid-svg-tkdItZnagdo5qkeQ .icon-shape .label{text-align:center;}#mermaid-svg-tkdItZnagdo5qkeQ .node.clickable{cursor:pointer;}#mermaid-svg-tkdItZnagdo5qkeQ .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-tkdItZnagdo5qkeQ .arrowheadPath{fill:#333333;}#mermaid-svg-tkdItZnagdo5qkeQ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-tkdItZnagdo5qkeQ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-tkdItZnagdo5qkeQ .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tkdItZnagdo5qkeQ .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-tkdItZnagdo5qkeQ .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tkdItZnagdo5qkeQ .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-tkdItZnagdo5qkeQ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-tkdItZnagdo5qkeQ .cluster text{fill:#333;}#mermaid-svg-tkdItZnagdo5qkeQ .cluster span{color:#333;}#mermaid-svg-tkdItZnagdo5qkeQ 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-tkdItZnagdo5qkeQ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-tkdItZnagdo5qkeQ rect.text{fill:none;stroke-width:0;}#mermaid-svg-tkdItZnagdo5qkeQ .icon-shape,#mermaid-svg-tkdItZnagdo5qkeQ .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tkdItZnagdo5qkeQ .icon-shape p,#mermaid-svg-tkdItZnagdo5qkeQ .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-tkdItZnagdo5qkeQ .icon-shape .label rect,#mermaid-svg-tkdItZnagdo5qkeQ .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tkdItZnagdo5qkeQ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-tkdItZnagdo5qkeQ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-tkdItZnagdo5qkeQ :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

QwenPaw 记忆生命周期

Agent 初始化

load_agents 加载独立 memory

Agent Loop 开始

read memory

Planner 决策

executor 执行

write back memory

任务完成?

Multi-Agent 消息通信

记忆共享与传递

Mission Mode 任务拆解

子 Agent 执行

结果整合 → 记忆沉淀


┌─────────────────────────────────────────────────────────────────┐
│ 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 执行 → 结果整合 → 记忆沉淀 │
└─────────────────────────────────────────────────────────────────┘

三、核心设计哲学对比(最关键的差异)

维度OpenClawHermes AgentQwenPawHiClaw
设计哲学 “记忆是可插拔的后端” “记忆是 Agent 的核心能力” “记忆服务于多 Agent 协作” “记忆由 Manager 统筹”
记忆是谁的? LLM 的外部插件 Agent 自主策展 每个 Agent 独立 每个 Claw 独立
谁决定存什么? LLM(通过记忆工具) Agent 自主决定(策展式) Planner + Skill Manager Claw
谁决定怎么存? 统一后端(SQLite + LanceDB) 四层栈 + 字符硬限制 Runtime 统一管理 各 Claw 自管
记忆能进化吗? ⚠️ 被动积累 ✅ KEPA 反向传播 + Honcho 建模 ✅ Skill 沉淀 ⚠️ 有限
可扩展性 ⭐⭐⭐⭐⭐ memory-host-sdk ⭐⭐⭐⭐ MemoryProvider 插件 ⭐⭐⭐⭐ Skill 插件系统 ⭐⭐⭐ Claw 定制
数据主权 本地(SQLite) 完全自托管 完全本地,支持本地模型 自托管
最大优势 生态最开放,任何 LLM 都能用 越用越懂你,真正的"自进化" 多 Agent 协作 + 本地优先 分布式协作 + 企业级
最大局限 Agent 不主动策展,噪声多 无向量检索,语义召回弱 单 Agent 记忆深度有限 架构复杂,上手门槛高

四、记忆能力详细对比表

能力OpenClawHermes AgentQwenPawHiClaw
跨会话记忆 ✅ MEMORY.md ✅ MEMORY.md + USER.md ✅ 独立 memory ✅ 各 Claw 独立
语义检索 ✅✅ LanceDB ⚠️ FTS5 + LLM 摘要 ✅ 向量检索
精确检索 ✅✅ BM25 ✅✅ FTS5
主动总结 ✅ Memory Flush ✅ 定时提醒 + KEPA ✅ Runtime 压缩 ⚠️
Agent 策展 ✅✅ 核心特色 ⚠️ ⚠️
失败学习 ✅✅ KEPA 反向传播 ⚠️
用户建模 ✅✅ Honcho 辩证建模 ⚠️ Profile ⚠️
技能沉淀 ✅✅ Skill Memory ✅ Skill 系统 ⚠️
多 Agent 记忆共享 ❌(单 Agent) ✅✅ 核心能力 ✅✅ Manager 统筹
外部程序读写记忆 ✅ memory-host-sdk ✅ MemoryProvider 插件 ⚠️ API
本地模型支持 ✅ 200+ 模型 ✅✅ Ollama/llama.cpp ⚠️
字符限制防膨胀 ✅✅ 硬限制 3575 chars
缓存友好 ⚠️ ✅✅ 快照冻结不破坏 system_and_3 ⚠️ ⚠️

五、记忆写入流程深度对比

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 接收(上下文即记忆传递)


六、检索注入流程深度对比

步骤OpenClawHermes AgentQwenPaw
触发时机 任务开始前 + 推理中按需 会话启动自动加载 + 相似度>0.82 自动注入 Agent Loop 每轮 + Planner 按需
检索工具 memory_search(query) session_search(query) Runtime 内存检索
检索算法 FTS5 + LanceDB 混合(7:3) FTS5 全文 → LLM 摘要 向量 + 关键词
注入方式 注入 System Prompt 拼接为 System 前缀(§ 分隔) 注入 Agent memory 上下文
注入量控制 MMR 去重 + 数量限制 字符硬限制 + 摘要压缩 Token 预算
缓存策略 ✅ embedding 缓存(provider+model+hash) ✅ 快照冻结不破坏 system_and_3 ⚠️ Runtime 内置

七、实战场景对比:谁更适合什么?

场景推荐 Agent理由
个人日常助理,需要跨会话记住偏好 ⭐⭐⭐⭐⭐ Hermes Honcho 用户建模 + 字符限制 + KEPA 进化,真正"越用越懂你"
接入已有 LLM,快速加记忆能力 ⭐⭐⭐⭐⭐ OpenClaw memory-host-sdk 生态最开放,任何 LLM 都能用
多 Agent 协作完成复杂任务 ⭐⭐⭐⭐⭐ QwenPaw Multi-Agent + 记忆共享 + Mission Mode,协作能力最强
企业级多 Agent 分布式部署 ⭐⭐⭐⭐ HiClaw Manager-Workers + Matrix 通信,架构最完整
追求语义检索精度 ⭐⭐⭐⭐ OpenClaw LanceDB 向量检索 + 混合检索,召回质量最高
追求零依赖、轻量部署 ⭐⭐⭐⭐⭐ Hermes 无向量库,纯 SQLite + FTS5,部署最简单
需要外部程序读写 Agent 记忆 ⭐⭐⭐⭐⭐ OpenClaw memory-host-sdk 独立 SDK,6 个文件搞定
需要从失败中自动学习 ⭐⭐⭐⭐⭐ Hermes KEPA 反向传播是独家能力,其他三家都没有
数据完全本地、隐私敏感 ⭐⭐⭐⭐ QwenPaw / Hermes 两者都支持 100% 本地部署 + 本地模型

八、一张图总结四大 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 互通。两者融合,才是最优解。


核心公式(更新版)

$ \\boxed{\\text{Agent 能力} = (\\text{推理能力} \\times \\text{上下文窗口}) + \\text{记忆系统质量} \\times \\text{协作系数}} $

Agent记忆质量协作系数综合评估
OpenClaw ⭐⭐⭐⭐ ⭐⭐ 适合单 Agent + 外接 LLM
Hermes ⭐⭐⭐⭐⭐ ⭐⭐ 适合个人助理,越用越强
QwenPaw ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 适合复杂多步任务
HiClaw ⭐⭐⭐ ⭐⭐⭐⭐⭐ 适合企业多 Agent 部署
赞(0)
未经允许不得转载:171主机测评 » AI Agent 记忆机制全景对比:OpenClaw vs QwenPaw vs Hermes vs HiClaw
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址