ECC vs Headroom vs RTK vs claude-mem — AI Agent 增强工具对比
[!info] 知识库定位 这是一篇 工具对比笔记,对比四个 AI Agent 生态中的增强/优化工具,回答”它们有什么区别、能不能一起用、怎么选”。
一句话定位
| 工具 | 一句话 |
|---|---|
| ../开发工具/ECC | Agent 操作系统 — 全栈 harness 优化系统(63 Agent + 251 Skills + Hooks + 安全扫描 + 持续学习) |
| ../记忆与持久化/Headroom | 上下文压缩机 — 压缩发送给 LLM 的所有内容(工具输出、日志、文件、对话历史、图片) |
| ../开发工具/RTK | 命令输出手术刀 — 专门压缩 AI Agent 执行 shell 命令后的输出(git、npm、pytest 等 100+ 命令) |
| ../记忆与持久化/claude-mem | 跨会话记忆体 — 自动捕获会话观察,生成语义摘要,下次会话自动注入相关历史 |
核心差异
graph TB
subgraph "ECC 操作系统层"
E1[63 Agents] --> E2[251 Skills]
E2 --> E3[Rules & Hooks]
E3 --> E4[Security Scan]
E4 --> E5[持续学习]
end
subgraph "数据流"
A[Agent 发出命令] --> B[Shell 执行]
B --> C[RTK: 过滤命令输出]
C --> D[Headroom: 压缩整体上下文]
D --> F[LLM 处理]
F --> G[claude-mem: 捕获观察并总结]
G -->|下次会话| H[claude-mem: 注入历史记忆]
H --> D
end
E3 -.->|Hook 驱动| A
E3 -.->|Hook 驱动| G
| 维度 | ECC | Headroom | RTK | claude-mem |
|---|---|---|---|---|
| 本质 | Agent 操作系统 | 上下文压缩机 | 命令输出过滤器 | 跨会话记忆体 |
| 核心功能 | Skills + Hooks + 安全 + 学习 | 实时上下文压缩 | 命令输出过滤 | 跨会话持久记忆 |
| 作用时机 | Agent 全生命周期 | 每次消息发送前 | 命令执行时 | 会话结束 → 下次开始 |
| 压缩能力 | ✅ 中等(Strategic Compaction) | ✅ 强(ML + AST,60-95%) | ✅ 强(规则,60-90%) | ❌ 只总结不压缩 |
| 记忆管理 | ✅ Hook 持久化 | ❌ | ❌ | ✅ 强(向量语义搜索) |
| 安全扫描 | ✅ AgentShield(1282 测试) | ❌ | ❌ | ❌ |
| 语义搜索 | ❌ | ❌ | ❌ | ✅ Chroma 向量库 |
| 跨 Agent 共享 | ❌ | ✅ SharedContext | ❌ | ✅ 共享记忆库 |
| 多 Agent 编排 | ✅ PM2 | ❌ | ❌ | ❌ |
| 学习系统 | ✅ Instincts | ❌ | ❌ | ❌ |
| Web UI | ✅ Dashboard GUI | ❌ | ❌ | ✅ localhost:37777 |
| 安装复杂度 | 高(系统级) | 中(Python + extras) | 低(单一二进制) | 中(Node + Bun + uv) |
| 语言 | Shell / TS / Python | Python / TypeScript | Rust | TypeScript |
| Stars | 207k | 3k+ | 58.5k | 80.5k |
冲突分析
🟢 ECC + RTK — 无冲突,天然互补
| 维度 | 说明 |
|---|---|
| 作用层面 | ECC 在 Agent 框架层,RTK 在 shell 命令层,完全不同的层面 |
| Hook 点 | ECC 的 Agent hooks 和 RTK 的 shell rewrite hook 互不干扰 |
| 功能重叠 | 零——ECC 不过滤命令输出,RTK 不涉及 Agent 配置 |
结论:✅ 推荐组合。ECC 提供 Agent 工作流,RTK 节省命令输出 token。
⚠️ ECC + Headroom — 中度重叠,可共存需调优
| 摩擦点 | 说明 | 解决方案 |
|---|---|---|
| Compaction 重复 | ECC 有 Strategic Compaction,Headroom 有全面压缩 | 关闭 ECC 的 compaction,让 Headroom 专职压缩 |
| Hook 执行顺序 | ECC hooks 可能在 Headroom 压缩前修改上下文 | 确保 ECC hooks 先执行,Headroom 作为最后的中间件 |
| CLAUDE.md 冲突 | ECC 会覆盖项目的 CLAUDE.md | 安装备份,合并配置 |
结论:⚠️ 可以共存。关闭 ECC 的 compaction 功能,Headroom 专门负责上下文压缩。
🔴 ECC + claude-mem — 高度重叠,最大冲突点
| 冲突点 | 说明 | 严重程度 |
|---|---|---|
| Hook 重复 | 两者都在 PostToolUse、Stop 等相同 hook 点注入逻辑 | 🔴 高 |
| 记忆冲突 | ECC 的持久化和 claude-mem 的总结可能产生不一致的记忆 | 🔴 高 |
| 上下文膨胀 | 两套记忆系统同时注入,token 消耗翻倍 | 🔴 高 |
| 功能重叠 | 都提供跨会话记忆/上下文连续性 | 🔴 高 |
[!warning] 建议二选一 ECC 的 Hook 记忆系统和 claude-mem 的持久记忆系统在相同生命周期 hook 点工作,同时安装会导致 hook 重复执行、记忆冲突、上下文膨胀。选 ECC 的内置记忆,或选 claude-mem 的语义搜索记忆,不要同时启用。
选择依据:
- 选 ECC 内置记忆:如果你已全面采用 ECC,想要统一管理
- 选 claude-mem:如果你需要语义搜索、渐进式披露、Web UI 等高级记忆功能
🟢 Headroom + RTK + claude-mem(不用 ECC)— 三者互补
三者在不同层面解决不同问题,天然互补:
命令执行层 → RTK 过滤命令输出(第一层压缩)
上下文管理层 → Headroom 压缩整体上下文(第二层压缩)
跨会话层 → claude-mem 保存和注入历史记忆
| 摩擦点 | 说明 | 解决方案 |
|---|---|---|
| 上下文膨胀叠加 | claude-mem 注入 → Headroom 需额外压缩 | 限制 claude-mem 注入条数 |
| 信息二次压缩 | claude-mem 摘要再被 Headroom 压缩 | Headroom CCR 模式可按需 retrieve |
| Hook 执行顺序 | 两者都用生命周期 hooks | claude-mem 先注入 → Headroom 再压缩 |
组合使用方案
方案一:ECC 全家桶 + RTK(推荐)
┌────────────────────────────────────────────────┐
│ ECC (操作系统层) │
│ 63 Agents · 251 Skills · Hooks · Security │
│ ┌──────────────────────────────────────────┐ │
│ │ Hook 系统 (记忆持久化 + Compaction) │ │
│ └──────────────────────────────────────────┘ │
└────────────────────┬───────────────────────────┘
│
▼
┌────────────────────────────────────────────────┐
│ RTK (命令输出层) │
│ 过滤 git/npm/pytest 等命令输出 │
└────────────────────┬───────────────────────────┘
│
▼
┌────────────────────────────────────────────────┐
│ LLM Provider │
└────────────────────────────────────────────────┘
适用:想要全面的 Agent 增强 + 命令输出 token 节省 配置:ECC 默认配置 + RTK 默认配置,无需特殊调优
方案二:Headroom + RTK + claude-mem(轻量组合)
┌────────────────────────────────────────────────┐
│ claude-mem (SessionStart hook) │
│ → 注入相关历史记忆(限制 5-10 条) │
└────────────────────┬───────────────────────────┘
│
▼
┌────────────────────────────────────────────────┐
│ RTK (shell command hook) │
│ → 过滤压缩命令输出 │
└────────────────────┬───────────────────────────┘
│
▼
┌────────────────────────────────────────────────┐
│ Headroom (上下文中间件) │
│ → 压缩整体上下文 │
└────────────────────┬───────────────────────────┘
│
▼
┌────────────────────────────────────────────────┐
│ LLM Provider │
└────────────────────────────────────────────────┘
适用:不需要 ECC 的全栈框架,只需要 token 节省 + 跨会话记忆
配置:claude-mem 限制注入条数,RTK 默认,Headroom MODE=optimize
方案三:ECC + Headroom + RTK(不要 claude-mem)
适用:已用 ECC 全面管理 Agent,但仍需要更强的上下文压缩 配置:关闭 ECC 的 compaction,Headroom 专职压缩
选型决策树
你的主要需求是什么?
│
├─ "我要全面增强 Agent 能力"
│ └─ → ECC(Skills + Hooks + 安全 + 学习)
│ └─ 还需要压缩命令输出? → 加 RTK
│
├─ "我只关心 token 节省"
│ ├─ 主要是命令输出 → RTK
│ ├─ 整体上下文 → Headroom
│ └─ 都要 → RTK + Headroom
│
├─ "我只关心跨会话记忆"
│ └─ → claude-mem(语义搜索最成熟)
│
├─ "以上都要,但不想用 ECC"
│ └─ → Headroom + RTK + claude-mem(三者互补)
│
└─ "以上都要,包括 ECC"
└─ → ECC + RTK(ECC 覆盖记忆和部分压缩,RTK 补充命令输出)
└─ ECC 的压缩不够? → ECC + RTK + Headroom(关闭 ECC compaction)
总结
| 工具 | 本质 | 类比 | 体量 |
|---|---|---|---|
| ../开发工具/ECC | Agent 的操作系统 | Windows/macOS — 什么都有 | 大(系统级) |
| ../开发工具/RTK | 命令输出的精准过滤器 | 手术刀 — 只切命令输出 | 小(单一功能) |
| ../记忆与持久化/Headroom | 整体上下文的智能压缩机 | 压缩机 — 把所有内容变小 | 中 |
| ../记忆与持久化/claude-mem | 跨会话的知识记忆体 | 大脑 — 记住上次学到了什么 | 中 |
核心结论:
- ECC 是全家桶,其他三个是单品 — ECC 已内置记忆管理和部分压缩,与 claude-mem 功能高度重叠
- ECC + RTK 是最省心的组合 — 一个管 Agent 工作流,一个管命令输出,无冲突
- 不用 ECC 时,Headroom + RTK + claude-mem 三者互补 — 各司其职,配置好注入限制即可
- 不要同时用 ECC 和 claude-mem — Hook 重复、记忆冲突、上下文膨胀
相关笔记
- ../开发工具/ECC — 详细工具评估
- ../记忆与持久化/Headroom — 详细工具评估
- ../开发工具/RTK — 详细工具评估
- ../记忆与持久化/claude-mem — 详细工具评估
- Token 优化 — 底层概念
- 上下文窗口 — 底层概念
- Agent 记忆系统 — 底层概念