乐于分享
好东西不私藏

Hermes Agent vs OpenClaw 内存占用深度对比分析

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 进程)

三、定量对比表

指标
Hermes Agent v0.12.0
OpenClaw 2026.5.4
安装大小
937MB (venv)
101MB (含 node_modules)
启动内存 (空跑)
~300-500MB
~200-400MB
单子任务增量
~50-150MB (线程)
~100-250MB (子进程)
最大并发
3 (可配置)
取决于进程池
子任务隔离
⚠️ 弱 (线程共享)
✅ 强 (独立进程)
持久化存储
SQLite/FTS5
可选 LanceDB 插件
上下文压缩
ContextCompressor
无内置压缩
后台 Agent
Curator + Self-improvement Loop
无内置后台 Agent
热启动优化
lazy init + lazy import (~57%)
compile cache + 细粒度 chunks

四、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 + skills only
  • 通过 child.close() 清理 terminal/browser 等资源

OpenClaw — 子进程隔离 + 插件工具

  • 通过 worker_threads 或独立 child_process 运行
  • 工具通过 pi-agent-core 暴露
  • MCP 集成: @modelcontextprotocol/sdk
  • file-transfer 插件提供二进制文件操作

六、记忆/上下文系统差异

Hermes Agent — 三层记忆

  1. BuiltinMemoryProvider — SQLite 持久化,垮会话搜索
  2. SessionDB — FTS5 全文索引,支持 semantic search
  3. 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 原生开发体验

内存占用总结

Hermes Agent v0.12.0
OpenClaw 2026.5.4
空跑内存
~300-500MB
~200-400MB
单子任务增量
~50-150MB
~100-250MB
后台常驻内存
Curator + Self-improvement Loop
最大并发子任务
3 (线程)
取决于进程池

核心差异: 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 结构化内容增强