Hermes 与 Claude CodeHermes 与 Claude Code第 10 章 · 14 章Chapter 10 of 14
全文目录Contents
  1. 这个网页怎么用
  2. 1 · 零基础前置知识
    1. 1.1 大语言模型是什么
    2. 1.2 token 是什么
    3. 1.3 上下文与上下文窗口是什么
    4. 1.4 智能体与聊天机器人的区别
    5. 1.5 工具调用是什么,它到底怎么工作
    6. 1.6 什么是流式输出
    7. 1.7 什么是 API
    8. 1.8 提示词缓存 —— 全文最重要的技术概念
    9. 1.9 还会遇到的几个词
  3. 2 · 两个系统的宏观定位与架构总图
    1. 2.1 用一句话说清各自的定位
    2. 2.2 架构总图
    3. 2.3 关键数字对照
    4. 2.4 第一个值得记住的洞察
  4. 3 · 垂直分层与水平分区
    1. 3.1 垂直分层:六层模型
    2. 3.2 水平分区:同一层内部怎么切
    3. 3.3 一个反直觉的观察:巨型文件
    4. 3.4 分层之外:穿透所有层的四类逻辑
  5. 4 · 智能体主循环与错误恢复状态机
    1. 4.1 教科书版本的循环,以及它会死在哪
    2. 4.2 Claude Code 的做法:写成显式状态机
    3. 4.3 错误扣留:可恢复的错误不能立刻往外发
    4. 4.4 中断的正确处理姿势
    5. 4.5 切换备用模型:一个想不到的坑
    6. 4.6 Hermes 的做法:预算驱动的循环
    7. 4.7 Hermes 独有的能力:轮次中途插话
    8. 4.8 两家对照与取舍
  6. 5 · 工具抽象层与工具执行编排
    1. 5.1 Claude Code 的工具接口:一个教科书级抽象
    2. 5.2 渐进式工具加载:工具搜索机制
    3. 5.3 工具清单的装配:一个只有深度用过缓存才知道的坑
    4. 5.4 执行编排:并发分区
    5. 5.5 流式工具执行器:边流边执行
    6. 5.6 Hermes 的工具层:中心分发 + 参数强制矫正
    7. 5.7 两家对照与取舍
  7. 6 · 上下文治理阶梯 ★ 全文核心
    1. 6.1 Claude Code 的做法:五级流水线
    2. 6.2 第 ① 级:工具结果预算与落盘
    3. 6.3 第 ③ 级:缓存编辑 —— 全文最精彩的一处
    4. 6.4 第 ⑤ 级:自动摘要压缩的工程细节
    5. 6.5 上下文真的超了之后:三级恢复瀑布
    6. 6.6 Hermes 的做法:把整条阶梯抽象成一个插座
    7. 6.7 两家横向对照
  8. 7 · 权限模型与安全边界
    1. 7.1 Claude Code 的做法:十级决策级联
    2. 7.2 自动模式:用模型判断安全性,加三级快速通道
    3. 7.3 Hermes 的做法:正则红线 + 对抗性解析
    4. 7.4 Hermes 的第二道防线:执行环境隔离
    5. 7.5 一个常被忽略的攻击面:错误消息回灌
    6. 7.6 两家对照与取舍
  9. 8 · 多智能体协作编排
    1. 8.1 子智能体到底解决什么问题
    2. 8.2 Claude Code 的三种子智能体形态
    3. 8.3 分叉子智能体:把提示词缓存用到极致
    4. 8.4 子智能体的工具限制
    5. 8.5 Hermes 的做法:任务委派 + 看板协作
    6. 8.6 一个两家共同的硬约束:中断的级联
  10. 9 · 记忆系统与扩展体系
    1. 9.1 记忆:两种截然不同的答案
    2. 9.2 Hermes 的全息记忆值得单独看
    3. 9.3 Claude Code 的记忆预取:藏在流水线里的优化
    4. 9.4 扩展体系:四种扩展点
    5. 9.5 Hermes 的网关层:Claude Code 完全没有的一层
  11. 10 · 两个系统的横向对照总表
    1. 10.1 机制对照
    2. 10.2 两条架构路线各自的账本
    3. 10.3 两家一致的地方 = 事实上的行业共识
  12. 11 · 可以搬到自己项目里的实现范式
    1. 11.1 骨架一:带恢复状态机的主循环
    2. 11.2 骨架二:上下文治理阶梯
    3. 11.3 骨架三:工具抽象 + 并发分区
    4. 11.4 骨架四:按信任边界配置工具面
    5. 11.5 骨架五:不可绕过的安全底座
    6. 11.6 自建智能体的决策清单
    7. 11.7 一页纸检查清单
  13. 12 · 面试话术卡
    1. Q1 · 说说你理解的智能体架构
    2. Q2 · 上下文满了怎么办
    3. Q3 · 怎么防止智能体执行危险命令
    4. Q4 · 多工具并行怎么保证不出竞态
    5. Q5 · 智能体循环怎么防止无限循环
    6. Q6 · 什么时候该用子智能体
    7. Q7 · 智能体的长期记忆怎么做
    8. Q8 · 你怎么优化智能体的成本和延迟
    9. Q9 · 反问环节可以问的问题
    10. 最后:这份文档的正确用法
  14. 13 · 术语表
    1. 13.1 模型与调用
    2. 13.2 提示词缓存(全文最重要的概念组)
    3. 13.3 智能体与工具
    4. 13.4 上下文治理
    5. 13.5 编程与架构概念
    6. 13.6 两个系统的关键模块名

10 · 两个系统的横向对照总表

这一章把前面七章压缩成可以快速回顾的表格。「谁更好」的答案永远是「取决于约束」,所以最后一列写的是什么情况下该选哪个

10.1 机制对照

机制 Claude Code Hermes 选型判据
主循环
第 4 章
显式的 State 结构体 + 7 条具名转移边;恢复路径分层递进 状态挂在 agent 对象属性上;三重预算闸门 + 一次宽限调用做软着陆 可测试的错误恢复 → 显式状态机
快速迭代 → 对象属性够用
工具抽象
第 5 章
富接口 Tool<输入,输出,进度>,40 多个成员,分七组正交能力 普通函数注册 + 中心分发 + 运行时参数强制矫正 单一模型、强类型 → 富接口
多模型、含弱模型 → 必须有矫正层
工具投放
第 3 章
权限规则过滤 + 延迟加载(工具搜索) 按场景与信任边界配置的工具集 多入口、多信任级别 → 必须有工具集概念
执行编排
第 5 章
贪心并发分区 + 流式边收边执行 + 两级中止作用域 顺序执行;并行靠委派子智能体 追求单轮延迟 → 流式执行
追求实现简单 → 顺序执行
上下文治理
第 6 章 ★
五级写死的阶梯;缓存编辑让服务端删除 ContextEngine 抽象基类,整体可替换;selectcompress 双动词 单一供应商 → 榨干私有能力
多供应商 → 定义契约交出去
权限模型
第 7 章 ★
10 级判定级联 + 模型分类器 + 三级快速通道;1d–1g 构成 bypass 免疫层 12 条无条件正则红线 + 命令位置锚定 + 引号遮蔽 + 反混淆 需要理解意图 → 模型分类器
需要零成本 + 确定性 → 正则
执行隔离
第 7 章
操作系统级沙箱,默认开启 7 种可插拔环境;⚠️ 本机模式默认无沙箱 任何生产部署都必须有硬隔离层,这一项没有取舍空间
多智能体
第 8 章
调用栈模型;分叉追求字节级缓存一致 工作流模型;看板 + 插话 + 心跳 秒级探索任务 → 调用栈
长时任务 → 工作流 + 可干预
记忆
第 9 章
纯文本文件 + 预取 + 模型判断相关性 SQLite + FTS5 全文索引 + HRR 向量 + 信任分数 + 8 种外部服务 指令性记忆 → 纯文本全量加载
事实性记忆 → 混合检索
扩展体系
第 9 章
技能 / 插件 / MCP / 钩子(10 类事件) 插件(3 个发现源)/ 技能 / MCP / 钩子 / 工具集 两家都要区分可叠加能力互斥策略
入口形态
第 2 章
交互终端 / 无头模式 / 开发工具包 / 编程软件桥接 网关层:22 个聊天平台 + 命令行 + 编程软件 + MCP 服务端 3 个以上入口 → 必须有独立的网关抽象层

10.2 两条架构路线各自的账本

收敛型(Claude Code)的账

拿到了什么:

  • 缓存编辑 —— 删上下文内容而不破坏缓存
  • 跨用户共享系统提示词缓存 —— 所有用户共用同一份缓存前缀
  • 分叉的字节级前缀复用 —— 扇出时后 N−1 个全命中
  • 思考块、任务预算等一系列私有能力

付出了什么:

  • 换供应商基本等于重写循环层
  • 上下文策略无扩展点,第三方改不了
  • 大量代码在处理单一接口的边角语义(思考块签名规则、缓存字段的累积语义)
发散型(Hermes)的账

拿到了什么:

  • 十余种模型后端随意切换 + 凭据轮转
  • 上下文引擎、记忆提供者可整体替换
  • 22 个平台统一触达,跨设备会话连续
  • 一千多位贡献者带来的生态扩张速度

付出了什么:

  • 整整一层参数矫正代码,用来兜住弱模型
  • 拿不到任何供应商的私有优化
  • 191 万行体量,单文件超过 1 MB
  • 安全模型受限于「所有平台的最低公分母」

10.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=3protect_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 条里缺了任何一条,大概率就是你未来的线上事故。

下一章会把它们变成可以直接抄的骨架代码和检查清单。