Hermes 与 Claude CodeHermes 与 Claude Code第 13 章 · 14 章Chapter 13 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 两个系统的关键模块名

13 · 术语表

概念分组排列,不按字母序 —— 因为相关的术语放在一起更容易理解。每条都标了「哪一章详细讲」。

13.1 模型与调用

术语含义详见
大语言模型
Large Language Model,缩写 LLM
一个「文字续写器」:给它一段文字,它预测最可能的下一个字,然后接上去继续预测。最关键的性质是它完全没有记忆 —— 两次调用之间不保留任何信息。 1.1
token
也译作「词元」
模型处理文字的最小单位,也是计费单位。粗略估算:中文约「汉字数 × 1.5~2」,英文约「单词数 × 1.3」。输入 token 便宜、输出 token 贵,但智能体的成本大头是输入(因为每轮都要重发全部历史)。 1.2
上下文
context
你这一次念给模型听的全部内容:系统设定 + 工具清单 + 历史对话 + 工具执行结果 + 新问题。 1.3
上下文窗口
context window
模型一次最多能接受多少 token 的硬性上限。目前主流是 200,000。可以想象成一张固定大小的桌子。 1.3
系统提示词
system prompt
上下文最开头那段设定身份和规则的文字。因为在最开头,它是缓存最先比对的部分,绝对不能随意改动。 1.9
轮次
turn
一次「调用模型 → 执行工具」的完整往复。 1.5
流式输出
streaming
模型一个 token 一个 token 往外吐,不是憋足了一次给你。这不是动画效果,是它真实的工作方式。它带来一个优化机会:第一张便条一到手就可以开始执行,不用等整个响应结束。 1.6
API
Application Programming Interface
应用程序接口
一个程序向另一个程序提供服务的约定方式。这份文档里「调用 API」几乎总是指「把上下文通过网络发给模型服务商的服务器,拿回结果」。一次调用通常耗时 2~30 秒。 1.7
思考块
thinking block
较新的模型在正式回答前会做一段内部推理,这段推理可以被返回给调用方。它带有和模型绑定的加密签名 —— 换模型重放会被拒绝。而且它必须在整条模型轨迹内保持完整,这直接约束了所有压缩实现。 4.5

13.2 提示词缓存(全文最重要的概念组)

术语含义详见
提示词缓存
prompt cache
服务端把上次处理过的内容缓存起来。这次请求进来时从头逐字比对,开头一致的部分直接复用缓存结果,跳过重新计算。命中部分的价格通常只有原价 10%。 1.8
前缀匹配
prefix matching
缓存比对的方式。一旦某个位置对不上,从那里往后的全部内容都要重新处理。10 万 token 的上下文,在第 100 个 token 处改一个空格,后面 99,900 个全部作废。 1.8
缓存冷热 缓存有有效期(常见 5 分钟)。=刚请求过、缓存还在;=超过有效期、缓存已清除。这个状态应该成为压缩策略的输入 —— 热的时候别动前缀,凉的时候大刀阔斧清。 1.8 / 6.3
缓存分界点
cache breakpoint
服务端在上下文的某个位置放一个标记,表示「到这里为止的内容可以作为一个缓存单元」。Claude Code 里内建工具和外部工具分区排序,就是为了让这个分界点稳稳落在两者之间。 5.3
缓存编辑
cache editing / cache_edits
Anthropic 的私有能力:客户端本地一个字不改,只附带一条指令让服务端在自己的缓存里删掉某几条工具结果。这样前缀完全没变,缓存全部命中。全文最精彩的一处设计。 6.3

13.3 智能体与工具

术语含义详见
智能体
Agent,也译作「代理」
会调用外部工具、自己拆解任务、多轮往复直到完成的系统。和聊天机器人的区别是:聊天机器人只会说话,智能体会动手做事。 1.4
工具调用
tool_use
模型写的一张「便条」,内容是「请帮我执行某个操作,参数是……」。模型自己不能执行任何操作,它只能写便条让外部程序去做。每张便条有唯一的 id。 1.5
工具结果
tool_result
外部程序执行完便条上的操作后,回给模型的结果。每一个 tool_use 都必须有一个带相同 id 的 tool_result 与之配对,否则 API 直接报格式错误。这是中断处理的核心难点。 1.5 / 4.4
子智能体
subagent
主智能体创建的独立智能体实例,被派去做某个子任务。它的首要价值是上下文隔离(用一次性的上下文换一个结论),并行只是副产品。 8.1
分叉
fork
一种特殊的子智能体:完整继承父的对话历史和系统提示词。用于并行探索同一问题的多个方向。它为了缓存一致性做了四个「不优雅」的妥协。 8.3
渐进式披露
progressive disclosure
「目录常驻(便宜)+ 内容按需展开(贵)」的模式。在工具、技能、MCP、记忆四个场景反复出现,是智能体系统的通用扩展范式 9.4
工具集
toolset
Hermes 的概念:工具的投放策略(在什么场景下让模型看到哪些工具),和工具的实现彻底分离。按信任边界配置工具面是最有效的安全手段。 3.2
MCP
Model Context Protocol
模型上下文协议
一个让智能体接入外部工具服务的开放标准。接进来的工具名会加前缀,比如 mcp__服务名__工具名 9.4
钩子
hook
让用户在特定时机(工具执行前、执行后、会话开始、结束前等)插入自己的脚本。Claude Code 有 10 类钩子事件。 9.4

13.4 上下文治理

术语含义详见
压缩 / 摘要
compact / autocompact
让模型把前面一大段对话总结成短摘要,用摘要替换原文。有损、不可逆,所以是五级阶梯里的最后一级。 6.4
微压缩
microcompact
按工具调用 id 精确删除旧的工具执行结果,不调用模型,成本为 0。是阶梯的第 3 级。 6.3
上下文折叠
context collapse
把一段交互折叠成可展开的摘要,保留结构和可重放性。比整段摘要温和,是阶梯的第 4 级。 6.1
413 / prompt_too_long 上下文超过窗口上限时 API 返回的错误。后面章节里「413」就是指这个。另有一个 400 错误表示「请求格式不合法」(比如工具调用和结果没配对)。 1.3
保护窗口 压缩时必须原样保留的头部和尾部消息。Hermes 的默认值是头 3 条、尾 6 条。切点必须落在思考块轨迹的缝隙上,不能落在轨迹中间。 4.5 / 6.6
草稿纸模式 让模型先写一段带标签的思考(<analysis>),消费端把这段剥掉只保留结论。付一次输出 token 的钱,省掉后续每轮的输入 token。 6.4
死亡螺旋
death spiral
源码里的原话。指「上下文超长 → 质量检查钩子要求重试 → 钩子自己又往上下文注入反馈 → 更超了」这类恢复逻辑互相触发的无限循环。 6.5

13.5 编程与架构概念

术语含义详见
状态机
state machine
把程序的运行情况归纳成有限的几个具名状态,并明确规定「什么条件下从哪个状态跳到哪个」。好处是可以穷举所有路径并逐条测试 4.2
幂等 / 幂等锁
idempotent
一个操作执行一次和多次效果相同。这份文档里主要指「幂等锁」—— 一个标记,确保某个恢复动作在一轮里只做一次。没有幂等锁 = 生产事故。 4.2
fail-closed
失败时闭合
出问题时倒向「拒绝 / 保守」而不是「放行 / 乐观」。Claude Code 的工具默认值全部如此:忘了声明并发安全 → 当成不安全;忘了声明只读 → 当成会写。 5.1
中止信号
AbortController / abort signal
可以在程序各处传递的「取消开关」。用户按 Ctrl+C 时拉一下,所有正在进行的操作都能感知并停下。关键陷阱:中止时必须为每个未完成的工具调用补齐合成结果。 1.9 / 4.4
两级中止作用域 建一个「子开关」专管一批工具。批内失败拉子开关杀兄弟进程,父开关不动所以本轮不结束,模型还能收到错误并重试。 5.5
抽象基类
Abstract Base Class,缩写 ABC
编程里的「插座标准」:规定「任何想接进来的东西必须提供哪几个功能」,但不规定怎么实现。Hermes 大量使用这个模式,这是它和 Claude Code 最根本的架构差异。 1.9 / 6.6
横切关注点
cross-cutting concern
穿透所有分层、没法归到任何一层的逻辑。这份文档里指四类:中断、预算、可观测、缓存保护。 3.4
正则表达式
regular expression
用特殊符号描述「文字模式」的写法。Hermes 用 59 条正则拦截危险命令,难点不在写正则,而在避免误伤(把参数里的字面量当成命令)。 1.9 / 7.3
沙箱
sandbox
权限被严格限制的隔离运行环境。程序在里面跑,就算想删系统文件也删不掉,因为根本没有那个权限。纵深防御里唯一真正的硬边界。 1.9 / 7.4
提示词注入攻击
prompt injection
攻击者把恶意指令藏在智能体会读到的内容里(issue 标题、文件名、错误消息回显)。智能体无法区分「这是数据」和「这是新指令」,可能真的照做。目前没有完美解法,只能靠收窄工具面。 3.2 / 7.5

13.6 两个系统的关键模块名

模块名属于哪个系统 / 干什么详见
queryLoopClaude Code 的智能体主循环。整个系统的心脏,1,730 行。4.2
QueryEngineClaude Code 的会话层。一场对话一个实例,持有全部跨轮次状态。2.2
Tool<I,O,P>Claude Code 的工具接口契约。40 多个成员,分七组正交能力。5.1
StreamingToolExecutorClaude Code 的流式工具执行器。边流边执行,含兄弟中止控制器。5.5
run_conversationHermes 的智能体主循环,8,676 行。入口条件就带三个预算约束。4.6
GatewayHermes 独有的网关层。长驻进程,把 22 个聊天平台的差异抹平。1.55 MB 单文件。9.5
ContextEngineHermes 的上下文引擎抽象基类。可整体替换。selectcompress 是两个正交动词。6.6
HARDLINE_PATTERNSHermes 的 12 条无条件安全红线。用户配了什么都没用,永远拦。7.3
HRR
Holographic Reduced
Representations
Hermes 的全息记忆技术。用 SHA-256 确定性生成向量,跨机器完全一致,但没有语义泛化能力9.2
FTS5
Full-Text Search 5
SQLite 内置的全文搜索引擎。做词法检索(关键词精确匹配),不理解语义9.1

如果这份术语表里还有你不理解的条目 —— 选中那一行文字,点「提问」。我会展开讲。