这一章把前面七章压缩成可以快速回顾的表格。「谁更好」的答案永远是「取决于约束」,所以最后一列写的是什么情况下该选哪个。
| 机制 | Claude Code | Hermes | 选型判据 |
|---|---|---|---|
| 主循环 第 4 章 |
显式的 State 结构体 + 7 条具名转移边;恢复路径分层递进 | 状态挂在 agent 对象属性上;三重预算闸门 + 一次宽限调用做软着陆 | 要可测试的错误恢复 → 显式状态机 要快速迭代 → 对象属性够用 |
| 工具抽象 第 5 章 |
富接口 Tool<输入,输出,进度>,40 多个成员,分七组正交能力 |
普通函数注册 + 中心分发 + 运行时参数强制矫正 | 单一模型、强类型 → 富接口 多模型、含弱模型 → 必须有矫正层 |
| 工具投放 第 3 章 |
权限规则过滤 + 延迟加载(工具搜索) | 按场景与信任边界配置的工具集 | 有多入口、多信任级别 → 必须有工具集概念 |
| 执行编排 第 5 章 |
贪心并发分区 + 流式边收边执行 + 两级中止作用域 | 顺序执行;并行靠委派子智能体 | 追求单轮延迟 → 流式执行 追求实现简单 → 顺序执行 |
| 上下文治理 第 6 章 ★ |
五级写死的阶梯;缓存编辑让服务端删除 | ContextEngine 抽象基类,整体可替换;select 与 compress 双动词 |
单一供应商 → 榨干私有能力 多供应商 → 定义契约交出去 |
| 权限模型 第 7 章 ★ |
10 级判定级联 + 模型分类器 + 三级快速通道;1d–1g 构成 bypass 免疫层 | 12 条无条件正则红线 + 命令位置锚定 + 引号遮蔽 + 反混淆 | 需要理解意图 → 模型分类器 需要零成本 + 确定性 → 正则 |
| 执行隔离 第 7 章 |
操作系统级沙箱,默认开启 | 7 种可插拔环境;⚠️ 本机模式默认无沙箱 | 任何生产部署都必须有硬隔离层,这一项没有取舍空间 |
| 多智能体 第 8 章 |
调用栈模型;分叉追求字节级缓存一致 | 工作流模型;看板 + 插话 + 心跳 | 秒级探索任务 → 调用栈 长时任务 → 工作流 + 可干预 |
| 记忆 第 9 章 |
纯文本文件 + 预取 + 模型判断相关性 | SQLite + FTS5 全文索引 + HRR 向量 + 信任分数 + 8 种外部服务 | 指令性记忆 → 纯文本全量加载 事实性记忆 → 混合检索 |
| 扩展体系 第 9 章 |
技能 / 插件 / MCP / 钩子(10 类事件) | 插件(3 个发现源)/ 技能 / MCP / 钩子 / 工具集 | 两家都要区分可叠加能力 与 互斥策略 |
| 入口形态 第 2 章 |
交互终端 / 无头模式 / 开发工具包 / 编程软件桥接 | 网关层:22 个聊天平台 + 命令行 + 编程软件 + MCP 服务端 | 3 个以上入口 → 必须有独立的网关抽象层 |
拿到了什么:
付出了什么:
拿到了什么:
付出了什么:
分歧很有意思,但共识更有指导意义 —— 下面这些是两个独立团队、用不同语言、抱着不同哲学,各自演化出来的相同答案:
| 共识 | 两家各自的实现 |
|---|---|
| 并发上限设为 10 | Claude Code 的环境变量 CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY / Hermes 的常量 _DEFAULT_MAX_CONCURRENT_CHILDREN |
| 子智能体默认扁平一层 | Claude Code 的分叉子级禁止再分叉 / Hermes 的 MAX_DEPTH = 1 |
| 子智能体不能向用户提问 | Claude Code 把「向用户提问」放进禁用清单 / Hermes 用 _subagent_auto_deny 自动拒绝 |
| 渐进式披露 | 工具、技能、MCP、记忆四处都是「目录常驻 + 内容按需展开」 |
| 压缩要保护头尾 | Claude Code 的压缩分界点 + 保留段 / Hermes 的 protect_first_n=3 与 protect_last_n=6 |
| 不调模型的廉价裁剪要单独成一层 | Claude Code 的微压缩 / Hermes 的 prune_tool_results_only() |
| 存在不可绕过的安全底座 | Claude Code 的 1d–1g bypass 免疫层 / Hermes 的 HARDLINE_PATTERNS 无条件红线 |
| 能力面随信任级别收缩 | Claude Code 的 ASYNC_AGENT_ALLOWED_TOOLS(后台只读白名单) / Hermes 的 _HERMES_WEBHOOK_SAFE_TOOLS |
| 恢复路径必须限次 | Claude Code 每条转移边独立幂等锁 / Hermes 的 compression_attempts 上限 |
| 中断时必须补齐工具结果 | Claude Code 的 yieldMissingToolResultBlocks / Hermes 的子智能体中止级联 |
| 把慢操作藏进模型流式输出的时间窗 | Claude Code 的记忆预取、技能预取、小模型摘要 / Hermes 的外部记忆预取 |
两个团队、两种语言、两种哲学,独立收敛到了同样的 11 条。如果你自己写一个智能体,这 11 条里缺了任何一条,大概率就是你未来的线上事故。
下一章会把它们变成可以直接抄的骨架代码和检查清单。