Hermes Agent vs OpenClaw 内存占用深度对比分析
分析版本(最新)
-
Hermes Agent: v0.12.0(2026.4.30, Nous Research) -
OpenClaw: 2026.5.4(Node.js ≥22.14.0)
分析基于代码实际检查,非理论推演。所有结论均来自两个项目的源码、CHANGELOG 及发布公告。
一、运行时架构与进程模型
Hermes Agent 和 OpenClaw 在子任务隔离上走了两条完全不同的路:
Hermes Agent → 线程模型
-
语言: Python 3.11+ + venv(启动时加载 torch/openai/httpx 等依赖) -
子任务: ThreadPoolExecutor线程池 +AIAgent实例 -
特点: 共享父进程地址空间,通过 GIL 约束并发
OpenClaw → 子进程模型
-
语言: Node.js v22 + TypeScript(预编译为 3740 个 chunk JS 文件) -
子任务: child_process.spawn独立进程 +worker_threads -
重大变化: 2026.5.4 的 openclaw.mjs启动器重写,新增 compile cache respawn + 信号转发机制
关键结论
Hermes Agent 的线程模型内存效率更高(共享堆),OpenClaw 的独立子进程模型隔离性更强(独立堆)。
二、内存占用构成对比
Hermes Agent v0.12.0 内存布局
进程地址空间 (共享堆)├── Python 解释器 (30-80MB)├── venv 依赖 (937MB, mmap 共享)│ ├── torch, transformers, openai, anthropic│ ├── playwright, httpx, rich, prompt_toolkit│ └── SQLite/FTS5 (会话持久化)├── AIAgent 主实例│ ├── run_agent.py (~12k LOC) — 完整对话循环│ ├── 消息历史 (List[dict]) — 每轮追加│ ├── ContextCompressor — 长上下文压缩│ └── model_tools — 工具注册表├── SessionDB (SQLite/FTS5)│ ├── ~/.hermes/*.db — 会话持久化│ └── FTS5 全文搜索索引├── MemoryManager│ ├── BuiltinMemoryProvider (SQLite-backed)│ └── StreamingContextScrubber (v0.12.0 新增)├── Autonomous Curator (v0.12.0 新增)│ ├── 后台 cron agent (7天周期)│ └── 自 Fork 一个独立 AIAgent 实例└── Self-improvement Loop (v0.12.0 大升级) ├── 每次 turn 后触发 └── Fork 一个受限的 AIAgent (memory + skills toolsets)
OpenClaw 2026.5.4 内存布局
整体目录: 101MB (含 node_modules)├── dist/ (3740 个编译 chunk,83MB)│ ├── agent-*.js — agent 核心│ ├── channel-*.js — 平台适配 (30+ 平台)│ ├── file-transfer 插件 (v2026.5.3 新增)│ └── ...└── node_modules/@mariozechner/ (pi-agent-core 0.73.0) ├── pi-agent-core — 核心代理循环 ├── pi-ai — LLM 调用封装 ├── pi-coding-agent — 编码专用 └── pi-tui — 终端 UI子进程内存 (每任务独立 Node.js 进程)
三、定量对比表
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
四、v0.12.0 / 2026.5.4 新变化对内存的影响
Hermes Agent v0.12.0 新增内存压力来源
① Autonomous Curator — 后台定时运行的 agent
hermes curator: 后台 cron agent (7天周期)├── Fork 一个独立 AIAgent 实例├── 运行 unbounded iterations└── 写 logs/curator/run.json + REPORT.md
-
hermes curator status排名技能使用频率 -
受 auxiliary.curator配置管理 -
内存影响: Curator agent 是独立 AIAgent 实例 + 自己的消息循环,后台常驻
② Self-improvement Loop — 每次 turn 后触发
# v0.12.0 以前: 简单评估
# v0.12.0: class-first rubric-based grade
background review fork:
├── 新增 active-update bias (优先更新刚加载的技能)
├── 处理 references/ + templates/ 子文件
├── Fork 受限 AIAgent (memory + skills toolsets only)
└── 父进程 runtime (provider/model/credentials) 真正传递
-
内存影响: 每个 turn 后多一个受限 fork,结束后清理
③ StreamingContextScrubber (v0.12.0 新增)
class StreamingContextScrubber:
"""流式文本净化器,处理 split memory-context spans"""
# 解决流式输出中 <memory-context> 跨越多个 delta 的问题
# 以前: 正则无法跨 chunk 边界工作,泄露到 UI
# 现在: 状态机 hold back 部分 tag,flush 时丢弃
-
内存影响: 每个 AIAgent 实例多一个 Scrubber 对象,轻量
④ 冷启动优化 (~57% 提升)
v0.12.0 冷启动优化:├── lazy agent init (延迟初始化)├── lazy imports (延迟导入 openai/anthropic/firecrawl)├── mtime-cached load_config()├── memoized get_tool_definitions() with TTL└── 预编译 dangerous-command patterns
-
内存影响: 冷启动时内存峰值显著降低,但热运行时无变化
OpenClaw 2026.5.4 新变化
① 编译产物膨胀 (3740 chunks vs 旧版 650)
-
dist/从旧版约 650 个文件暴涨到 3740 个 -
但总大小从 590MB 降到 101MB(新版不包含完整 node_modules) -
编译产物更细粒度,lazy load 潜力更大
② 启动器重写 + compile cache respawn
// 2026.5.4 openclaw.mjs 重大变化
import { spawn } from "node:child_process";
import { resolvePackagedCompileCacheDirectory } from "node:fs";
// compile cache 跨版本管理
// 信号转发到 respawn child
// 解决 SIGTERM 无法终止 orphaned security audit worker 的问题
-
内存影响: compile cache 改进可复用编译结果,第二次启动更快
③ Gateway 启动优化
v2026.5.4 Gateway 冷启动优化:├── model-catalog test helpers 移出热路径├── run-session lookup code 移出热路径├── QR pairing helpers 移出热路径└── TypeBox memory-tool schema 移出热路径
-
内存影响: Gateway 进程启动时内存峰值降低
④ sessions.list RPC 优化
v2026.5.4:├── memoize thinking-option enrichment├── skip unused cost fallback checks├── bound default sessions.list RPC responses└── report truncation metadata
-
内存影响: 大型 session 存储的内存占用降低
⑤ file-transfer 插件 (v2026.5.3 新增)
file_transfer 插件:├── file_fetch, dir_list, dir_fetch, file_write├── 默认拒绝路径策略 (per-node)├── symlink 遍历默认拒绝└── 16MB 每次往返上限
五、子任务工具系统差异
Hermes Agent — 线程池 + 受限工具集
# tools/delegate_tool.py
DELEGATE_BLOCKED_TOOLS = {
"delegate_task", # 防递归
"clarify", # 防用户交互
"memory", # 防写共享存储
"send_message", # 防跨平台副作用
"execute_code", # 防写脚本
}
with ThreadPoolExecutor(max_workers=max_concurrent_children) as pool:
futures = {pool.submit(_run_single_child, ...): i for i, task in enumerate(tasks)}
-
子 agent 工具受限(blocklist 而非 allowlist) -
v0.12.0 self-improvement fork 额外限制为 memory + skillsonly -
通过 child.close()清理 terminal/browser 等资源
OpenClaw — 子进程隔离 + 插件工具
-
通过 worker_threads或独立child_process运行 -
工具通过 pi-agent-core暴露 -
MCP 集成: @modelcontextprotocol/sdk -
file-transfer 插件提供二进制文件操作
六、记忆/上下文系统差异
Hermes Agent — 三层记忆
-
BuiltinMemoryProvider — SQLite 持久化,垮会话搜索 -
SessionDB — FTS5 全文索引,支持 semantic search -
ContextCompressor — token 预算超限时主动压缩历史
每次对话前 prefetch_all(),对话后 sync_all(),注入 <memory-context> 标签到 system prompt。
OpenClaw — 纯内存 context
// pi-agent-core/dist/agent-loop.js
currentContext = {
...context,
messages: [...context.messages, ...prompts],
}
-
所有消息存在 context.messages数组中 -
无内置 SQLite 持久化( memory-lancedb是可选插件) -
依赖消息累积,无主动压缩机制
七、总结与选型建议
选 Hermes Agent v0.12.0 如果你需要:
-
✅ 更高的内存效率(线程共享堆) -
✅ 垮会话持久化 + FTS5 搜索 -
✅ 主动上下文压缩 (ContextCompressor) -
✅ Autonomous Curator 自动维护 skill 库 -
✅ Self-improvement Loop 持续自我改进 -
✅ 丰富的 Python 工具生态
选 OpenClaw 2026.5.4 如果你需要:
-
✅ 更强的故障隔离(独立子进程) -
✅ 多平台消息聚合(30+ 平台插件) -
✅ 更快的启动速度(compile cache + 细粒度 chunks) -
✅ 更低的 Gateway 内存占用 -
✅ TypeScript 原生开发体验
内存占用总结
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
核心差异: v0.12.0 的 Autonomous Curator 和 Self-improvement Loop 让 Hermes Agent 在后台有持续的内存消耗(独立 AIAgent 实例),而 OpenClaw 2026.5.4 的 compile cache 和细粒度 lazy load 让它在重复启动场景更省内存。
八、附录
Hermes Agent v0.12.0 主要更新 (2026.4.30)
-
Autonomous Curator — 后台技能维护 agent(7天周期) -
Self-improvement Loop 大升级 — class-first rubric-based grade -
~57% 冷启动优化 -
StreamingContextScrubber — 流式 memory-context 标签净化 -
新增 LM Studio / GMI Cloud / Azure AI Foundry / MiniMax OAuth / Tencent Tokenhub provider -
Spotify 原生工具 + Google Meet 插件 -
ComfyUI v5 / TouchDesigner-MCP 移入默认捆绑 -
18th 消息平台 (Tencent 元宝) + 19th (Microsoft Teams) -
TTS provider registry + Piper local TTS -
Observability 插件 (Langfuse) + achievements 插件
OpenClaw 2026.5.4 主要更新
-
compile cache respawn 机制(子进程信号转发) -
Google Meet/Voice Call — realtime Gemini voice bridge + paced audio streaming -
file-transfer 插件(默认拒绝路径策略,16MB 上限) -
Gateway 冷启动优化(模块移出热路径) -
sessions.list RPC memoization + 响应边界限制 -
插件安全扫描改进(官方 npm 包白名单) -
Discord Gateway startup retry with backoff -
MCP conversations_list / messages_read 结构化内容增强
夜雨聆风