目录

1.概述:Hermes 是什么?

2.Harness 九大组件全景

3. 核心架构

3.1 统一执行引擎 AIAgent

3.2 Provider 抽象层

3.3 工具注册与暴露分离

3.4 技能系统与渐进式加载

4. 四层记忆系统

Layer 1: Prompt Memory(MEMORY.md + USER.md)

Layer 2: Session Retrieval(SQLite + FTS5)

Layer 3: Skills(程序性记忆 / 操作手册)

Layer 4: Honcho(辩证用户建模,可选)

5. 自进化学习循环

学习循环四机制

机制 1:自主记忆策展(Memory Curation)

机制 2:自动技能生成(Skill Generation)

机制 3:技能自我修补(Skill Patching)

机制 4:跨会话搜索与 LLM 摘要

Nudge Engine(后台反思引擎)

闭环逻辑

6. 上下文压缩

7. 会话持久化(SQLite + FTS5)

Schema 架构

核心设计决策

FTS5 搜索能力(Agent 自带搜历史工具)

8. Gateway 多平台网关

9. 权限与安全模型

10. 与Claude Code Harness对比

上下文压缩对比

Claude Code

Hermes

记忆系统对比

Claude Code

Hermes

架构哲学的根本分歧

11. 11个Harness设计模式

总结

Hermes 的核心创新



1.概述:Hermes 是什么?

        Hermes Agent (社区俗称“爱马仕”)是 NousResearch 开发的开源(MIT License)AI Agent 框架。

核心理念:一个Agent 的能力应该随使用时间叠加增长——它不是每次会话都从零开始的聊天机器人,而是一个会从经验中学习积累技能建立用户模型的持久智能体。

与claude code 的关系:

  • Claude Code 是 Anthropic 的专有编程 Agent(闭源,专注代码)
  • Hermes Agent 是通用 Agent 框架(开源,多平台多模型)
  • 两者都实现了 Harness 架构模式,但哲学不同

2.Harness 九大组件全景

        Arize 这类做 Agent 观测、评测的行业公司,总结出一套能稳定商用、不出乱子的 AI 智能体必备 9 件配套能力,Hermes 全部做齐了,一件没缺。

# 组件 Hermes 如何实现
1 外层迭代循环:AI 自动思考 - 调用工具的主流程 固定一套流水线,无限循环:
        标准 model-call → tool-dispatch → result-append → repeat,通过 Provider 抽象层归一化不同 API
2 上下文管理与压缩:防止对话太长 AI 失忆、超限

        问题:聊久了所有历史、工具返回内容全堆在上下文,会超模型窗口、AI 记不住重点、计费变贵。 Hermes 五步精简逻辑:
        五阶段压缩管线:工具输出裁剪 → 头部保护 → 尾部预算 → LLM 摘要 → flush_memories()

  • 工具返回的长内容先砍废话
  • 关键开头信息绝不删掉(比如任务要求、身份设定)
  • 预留固定窗口给最新对话
  • 太久远的历史让大模型浓缩成简短摘要
  • 冗余历史直接清空释放空间

简单说:自动给聊天记录 “瘦身”,长对话也不崩。

3 技能与工具管理:按需给 AI 开放工具,不全部暴露

        注册与暴露分离;70+ 工具,28 个工具集;按场景决定模型可见的工具子集

        手里一共 70 多个工具,打包成 28 套工具组(文件操作、网络、数据库等)。 不是一次性把所有工具全塞给 AI,干什么活只给对应工具

        例:只让 AI 写文档时,就屏蔽代码执行、系统命令工具,减少 AI 乱调用出错。 工具注册和对外展示分开,新增工具不用改核心流程。

4 子代理管理:AI 派小助手单独处理复杂子任务

        delegate_task,独立 task_id + 终端上下文,结构化摘要返回;危险命令默认拒绝;递归深度封顶

复杂任务拆分交给小代理去单独干活:

  • 每个小任务独立编号、独立聊天空间,互不干扰
  • 小代理干完只返回精简总结,不把一堆冗余信息塞主对话
  • 有安全限制:高危命令直接拦截,还限制嵌套层级,防止无限递归卡死
5 内置技能包:现成标准化工具库,开箱即用         166 个技能(87 内置直接能用 + 79 可选按需开启),遵循 agentskills.io 开放标准
6 会话持久化与恢复:关掉程序下次打开继续聊

        SQLite + FTS5 全文搜索 + WAL 日志;跨平台会话衔接

        本地SQLite数据库存所有对话,支持全文检索历史聊天记录;日志防丢失;Windows/Mac/Linux 多端打开,能读取上次没做完的任务,无缝接续

7 System Prompt 组装:分层管理 AI 人设、规则

        三层提示词架构:stable(身份/SOUL.md)→ context(AGENTS.md)→ volatile(时间戳/元数据)

  1. Stable 固定层:AI 永久人设、核心行为准则(不会变)
  2. Context 场景层:当前任务规则、可用工具说明
  3. Volatile 临时层:实时变动数据(当前时间、本次任务元信息) 好处:改场景规则不用动基础人设,结构清晰好维护。
8 生命周期钩子:全程可插自定义逻辑(插件机制)

两面:进程内插件钩子 + 文件系统驱动的 Gateway 钩子

分两种自定义入口,你能在 Agent 任意阶段插入自己代码:

  1. 进程内钩子:程序运行中,AI 开始 / 结束调用工具、启动任务时触发插件
  2. 文件网关钩子:监控本地文件变动,文件更新自动触发 Agent 逻辑 举例:工具执行完自动同步结果到本地表格、任务结束自动发通知。
9 权限与安全层:防泄密、防 AI 执行危险操作

智能审批(学习安全命令)、PII 脱敏、密钥脱敏、危险命令检测

一套安全防护全套功能:

  1. 智能审批:AI 会学习区分安全 / 危险指令,高危操作主动询问确认
  2. 隐私脱敏:手机号、身份证等 PII 隐私自动隐藏
  3. 密钥脱敏:数据库、API 密钥不会明文出现在对话里泄露
  4. 高危命令检测:删盘、格式化、高危系统命令直接拦截

核心流程


3. 核心架构

3.1 统一执行引擎 AIAgent

        所有入口共享同一个核心类 AIAgentrun_agent.py),无论消息来自 CLI、Telegram、Discord 还是 API:

CLI (cli.py)  │  Gateway (gateway/run.py)  │  ACP (acp_adapter/)  │  API Server  │  Batch Runner
       │                     │                        │                  │               │
       └─────────────────────┴────────────────────────┴──────────────────┴───────────────┘
                                          │
                                   AIAgent Core
                    ┌─────────────────┼─────────────────┐
              Prompt Builder     Provider Resolution    Tool Dispatch
              Compression        (3 API modes)          Registry (70+ tools)

设计原则

  • Prompt 稳定性:System prompt 在会话期间永不改变(保护 Anthropic prefix caching)
  • 平台无关核心:一个 AIAgent 类服务所有入口
  • 松耦合:可选子系统使用注册模式 + check_fn 门控,无硬依赖
  • Profile 隔离:每个 profile 有独立的 HERMES_HOME、配置、记忆、会话

执行循环

Message Arrives → Generate Task ID
  → Load System Prompt (冻结快照: MEMORY.md/USER.md + skill 索引)
  → Compression Pre-check (上下文是否接近阈值?)
  → LLM API Call
  → If tool call → Execute tool → Append result → Loop
  → If final text → Store session in SQLite → Deliver response

        总结:一套共用的 AI 核心执行引擎 AIAgent,不管是命令行、机器人、接口还是批量任务,全都走它统一处理,内置提示词、模型适配、工具调度三大模块,按固定标准化流程处理消息,兼顾缓存优化、多配置隔离、模块解耦。

3.2 Provider 抽象层

Hermes 支持 18+ LLM 提供商,通过三种 API 模式归一化:

API 模式 适用提供商
chat_completions OpenAI, DeepSeek, 兼容端点
anthropic_messages Anthropic (原生)
codex_responses GitHub Copilot, Codex

Provider 路由

model_routing:
  default: anthropic/claude-sonnet-4-6
  high_precision: anthropic/claude-opus-4-8
  low_latency: deepseek/deepseek-v4-pro
  fallback_providers:
    - openai/gpt-5.1
    - google/gemini-3-pro

三层弹性架构

层级 机制 作用域
Credential Pools 同一 Provider 多 API Key 轮转 同 Provider 内
Primary Model Fallback fallback_providers 列表自动切换 跨 Provider,每轮
Auxiliary Task Fallback 辅助任务独立 Provider 解析(视觉、压缩、标题生成等) 按任务维度

        总结:Hermes 统一兼容 18 + 大模型厂商,分三类接口做格式归一,还通过密钥轮询、跨模型兜底、任务专属模型三套机制实现高可用弹性调度。

3.3 工具注册与暴露分离

Hermes 的工具系统最关键的架构决策:注册 ≠ 暴露

tools/registry.py          ← 零依赖,被所有工具文件导入
       ↑
tools/*.py                 ← 每个文件在 import 时自注册: registry.register()
       ↑
model_tools.py             ← 导入 registry + 触发工具发现
       ↑
run_agent.py, cli.py       ← Agent 核心和 CLI

核心机制

# 每个工具文件自注册
registry.register(
    name="example_tool",
    toolset="example",
    schema={"name": "example_tool", "description": "...", "parameters": {...}},
    handler=lambda args, **kw: example_tool(...),
    check_fn=check_requirements,      # 门控函数:环境是否满足?
    requires_env=["EXAMPLE_API_KEY"],  # 所需环境变量
)

关键设计

  • 70+ 注册工具,但模型每次只看到相关的子集
  • check_fn 决定工具是否可用(API Key 是否配置?依赖是否安装?)
  • 按场景(CLI / 某聊天平台 / 某 Profile)暴露不同工具组合
  • 新增一个工具只需改 3 个文件:工具实现 → model_tools.py 导入 → toolsets.py 注册

        总结:所有工具统一注册入库,但不会全部一次性给 AI 使用,依靠门控函数、场景分组按需开放,新增工具接入流程简单。

3.4 技能系统与渐进式加载

Hermes 的技能系统实现了三级渐进式披露(Progressive Disclosure)

Tier 0: 分类名                        (~50 tokens)
  └─ Tier 1: 技能名 + 一行描述         (~20 tokens/skill)
       └─ Tier 2: 完整 SKILL.md 内容   (~500–5,000 tokens, 按需加载)
            └─ Tier 3: 附件文件         (references/, templates/, scripts/)

Tier1:

        作用:让模型知道 “我有哪些技能、大概能干什么”,用于意图匹配选工具,仅此而已

Tier2:

        只有模型判定要使用某技能时,才调用skill_view(name)拉取完整技能规则、入参、流程

Tier3:

        仅执行阶段才加载配套 API 文档、模板、案例,绝大多数对话完全不会走到这一层,几乎不增加基线开销

        这意味着 200 个技能的上下文开销 ≈ 40 个技能。

        技能遵循 agentskills.io 开放标准(Markdown + YAML frontmatter),跨 Agent 可移植——在 Hermes 中创建的技能可以被 Claude Code、Cursor、Copilot 等使用。


4. 四层记忆系统

Hermes 最核心的设计——将记忆按时间尺度和用途分为四个独立层:

Layer 1: Prompt Memory(MEMORY.md + USER.md

属性 详情
存储 ~/.hermes/memories/ 下的扁平 Markdown 文件
加载方式 每次会话第一条消息前注入 system prompt
容量限制 MEMORY: 2,200 字符 / USER: 1,375 字符 / 总计: 3,575 字符
管理方式 Agent 使用 memory 工具(add / replace / delete)
生效时机 修改在下次会话生效(本会话内冻结,保护 prompt caching)

强制字符限制的哲学:只让真正高价值的信息存活。

Layer 2: Session Retrieval(SQLite + FTS5)

属性 详情
存储 SQLite + FTS5 全文索引
加载方式 按需搜索——Agent 自行判断何时需要历史上下文
处理方式 检索匹配对话 → LLM 生成聚焦摘要(绝不把整个旧对话倒入上下文窗口)

关键区分:Memory 文件始终加载(持久事实);Session 存档按需搜索(特定历史上下文)。

Layer 3: Skills(程序性记忆 / 操作手册)

属性 详情
存储 ~/.hermes/skills/ 下结构化 Markdown + YAML
加载方式 渐进式披露(见 3.4 节)
格式 agentskills.io 开放标准
用途 "怎么做"——SOP、工作流、陷阱、验证步骤

Layer 4: Honcho(辩证用户建模,可选)

属性 详情
存储 Plastic Labs 的 Honcho 外部服务
机制 被动观察——跨会话构建用户画像,无需显式写入
模型 12 层身份模型,同时建模用户和 Agent 与用户的关系
是否必需 否——大多数任务型部署不需要

四层总结

Layer 1: Prompt Memory    ← "你是谁,我喜欢什么"(始终加载,高信号)
Layer 2: Session Archive  ← "上次发生了什么"(按需搜索,低延迟)
Layer 3: Skills           ← "某任务怎么做"(渐进加载,操作手册)
Layer 4: Honcho           ← "你的行为模式"(被动建模,长期画像)

5. 自进化学习循环

这是 Hermes 区别于其他 Agent 框架的核心差异点

        普通 Agent:干完活就完事,不会总结经验,下次遇到同类问题还要重新摸索。

        Hermes 自带自动进化闭环,不用你手动改配置、写工具,后台悄悄复盘优化,四步循环循环往复。

学习循环四机制

┌──────────────────────────────────────────────────┐
│                 Self-Improving Loop               │
│                                                   │
│  ┌─────────┐  ┌──────────┐  ┌─────────┐  ┌──────┐│
│  │ Memory  │  │  Skill   │  │ Skill   │  │Cross ││
│  │Curation │→│Generation│→│Patching │→│Session││
│  │         │  │          │  │         │  │Search ││
│  └─────────┘  └──────────┘  └─────────┘  └──────┘│
│       ↑                              ↓            │
│       └──────── Nudge Engine ────────┘            │
└──────────────────────────────────────────────────┘

机制 1:自主记忆策展(Memory Curation)

        在会话中每隔固定间隔,Agent 收到内部系统提示,回顾最近活动并判断是否有值得永久保存的内容。无需用户干预。

        每聊 10 轮,后台悄悄复盘聊天,自动挑出长期有用信息存入永久记忆(L1 MEMORY.md),没用的垃圾自动丢掉,不用你手动记录偏好、关键规则。

例:你多次强调报表要导出 Excel,它自动把这条要求永久存起来,以后不用反复提醒。

机制 2:自动技能生成(Skill Generation)

任务完成后,Agent 判断是否将此次工作流编码为可复用技能。触发条件:

  • 5+ 工具调用
  • 任务中恢复了错误
  • 用户给出了纠正指导
  • 发现了非平凡的工作流

        只要单次任务满足:连续调用 5 次以上工具 / 踩坑修复过报错 / 你纠正过它的操作 / 流程复杂有复用价值,就自动把整套操作写成标准化技能存入技能库。

例:你让它批量下载表格、清洗数据、汇总图表重复操作 3 次,它自动生成一套「批量数据报表」工具,下次一键调用。

机制 3:技能自我修补(Skill Patching)

        技能不会冻结——未来使用时如果发现缺失步骤、过时命令或新陷阱,Agent 会用  skill_manage(action='patch') 原地修补。这是精准的 find-and-replace,而非全量重写,既保持正确性又最小化 token 开销。

        之前生成的技能不是一成不变,下次使用发现步骤漏了、命令失效、有新坑,只精准修改出错片段,不重写全部技能,省 Token、不破坏原有逻辑。

例:旧技能里某 API 地址过期,它只替换这一行地址,其余流程不动。

机制 4:跨会话搜索与 LLM 摘要

        所有对话归档在 SQLite + FTS5 中。Agent 需要历史上下文时,搜索归档并用 LLM 仅总结相关内容

        所有历史对话存在数据库,复盘 / 执行任务时只检索相关历史,用大模型精简摘要,不会把几万条聊天全塞进上下文。

Nudge Engine(后台反思引擎)

记忆和技能的写入需要一个触发器——这就是 Nudge Engine:

        相当于内置两个定时器,到点自动开一个隐形后台小 Agent偷偷进化:

计数器 粒度 默认间隔
Memory Nudge 用户轮次计数 每 10 轮
Skill Nudge 工具迭代计数 每 10 次迭代

触发时分叉一个后台 Agent 实例(独立线程):

  • 输出重定向到 /dev/null(用户无感)
  • 最多 8 次工具调用以控制成本
  • 共享主 Agent 的 Memory 存储
  • 自身 Nudge 关闭防止无限递归

后台小 Agent 特点:你看不到输出、限制工具调用次数控成本、不会无限循环、和主程序共用记忆库。

闭环逻辑

        跨会话检索拿到历史经验 → 触发记忆整理 → 产出新技能 → 使用中自动修补技能 → 再检索历史持续迭代,全程后台静默运行。

总结:

        Hermes 靠定时后台反思引擎驱动一套闭环自学流程:自动沉淀长期记忆、把复杂工作流做成工具、随时修补失效技能、调取历史对话辅助优化,全程无需人工干预,越用越适配你的使用习惯。


6. 上下文压缩

        对话记录相当于行李箱,模型窗口是行李箱固定容量。 行李装到一半(50%)自动走五步精简流水线,只丢没用的、保住关键内容; 万一没压好、快塞满(85%),网关还有一道兜底强制压缩,防止直接超限报错。

        Hermes 实现了五阶段压缩管线(顺序不能乱),由 ContextCompressoragent/context_compressor.py)管理:

触发标准:上下文 Token 占到模型窗口一半(50%)

触发条件: Token 使用量达到上下文窗口的 50%
    │
    ▼
Stage 1: 工具输出裁剪(粗剪)         ← 廉价预裁剪,修整冗长工具结果
    |                   AI 查文件、联网、运行代码返回一大段原始文本,先无脑砍掉冗余换行、重复日志、无效长文本,低成本先瘦身一轮。
    │
    ▼
Stage 2: 头部保护(不动核心规则)     ← 保护关键开头上下文(身份、指令)
    |                    最开头的人设、任务要求、固定指令全程不动,绝不删减,保障 AI 基础逻辑不变。
    │
    ▼
Stage 3: 尾部 Token 预算   ← 保证最近消息完整保留(compression.protect_last_n,默认 20)
    |                    强制保留最近 20 条聊天完整原文,最新沟通不做摘要,保证当前对话不脱节。
    │
    ▼
Stage 4: LLM 摘要          ← 中间部分由辅助模型调用压缩摘要
    |                    夹在 “头部固定规则” 和 “最新聊天” 中间的老旧内容,交给小模型浓缩成简短总结,大幅省 Token。
    │
    ▼
Stage 5: flush_memories()  ← 压缩前 Agent 获得一次机会将重要信息存入 Layer 1 记忆
                         正式压缩清空旧内容前,AI 先自动把长期有用信息存进一层永久记忆,避免压缩把重要内容彻底删掉。

会话血统(Session Lineage): 压缩触发分裂时,新会话的 parent_session_id 链接到旧会话——在 SQLite 中保留完整历史,同时保持活跃上下文精简。

        压缩会生成一段全新精简上下文,新会话会记录父会话 ID 绑定旧记录。

        活跃对话是精简版方便 AI 处理,完整原始聊天全部存在数据库可回溯,不会丢失记录。

双层安全网:(错开阈值避免频繁压缩)

压缩器 触发阈值 位置

Agent Compressor

主Agent压缩器

上下文窗口的 50% 工具循环内,精确 token 计数

Gateway Safety Net

网关兜底压缩

上下文窗口的 85% Gateway 层,粗略字符估算。最后防线,防止窗口溢出报错

        两个阈值故意错开——如果都设在 50%,会导致每次轮次都过早压缩。不会每次对话都反复压缩、浪费算力。

总结:

        对话内容过半就启动五阶分层精简,死守开头规则、保留最新聊天、中间老内容做摘要,压缩前自动沉淀关键信息;同时设置 50%/85% 两级错开压缩阈值,既保证上下文短小好用,又不会丢失全部历史记录。


7. 会话持久化(SQLite + FTS5)

        所有聊天记录、会话数据全部存在本地单个文件 state.db,不用额外装数据库服务;开启 WAL 读写分离,多人 / 多端同时访问不卡顿。

数据库位置~/.hermes/state.db

Schema 架构

state.db (WAL mode, schema version 11)
├── sessions              — 会话总表,每一轮独立对话一条记录。元数据、token 计数、计费、血统(父子会话关联、来自哪个平台-命令行/电报/Discord等)
├── messages              — 完整消息历史,每一句用户提问、AI回复、工具调用原始完整内容,永久留存原始数据,不会因为上下文压缩被删掉。
├── messages_fts          — 全文检索索引表,FTS5 虚拟表 (content + tool_name + tool_calls)。自动同步所有消息内容,专门用来快速搜关键词,不用全库遍历翻记录。
├── messages_fts_trigram  — 中文 / 短句增强索引,FTS5 trigram 分词器 (CJK / 子串搜索)。适配中文、零散片段搜索,搜半句话、词语碎片也能匹配到结果。
├── state_meta            — key/value 元数据。全局配置键值对
└── schema_version        — 迁移追踪,跟踪数据库结构升级,更新 Hermes 时自动迁移数据不丢失。

核心设计决策

特性 实现
并发 WAL 模式——多读一写(可以同时很多地方读聊天记录(查询、检索、前端展示);写入对话时单独排队,不会出现 “一边读一边写卡死”。)
全文搜索 FTS5 + 自动同步触发器(INSERT/UPDATE/DELETE)
会话血统 parent_session_id 链(压缩触发的分裂)----上下文压缩后会生成新会话,新记录会标注上一代会话 ID,形成完整链路。 前台 AI 只用精简后的新上下文,但后台数据库能顺着链条查到全部历史对话。
来源标记 source 字段:cli, telegram, discord, slack...  搜索时可以只查某一个平台的聊天记录。
写竞争处理

1s SQLite 超时 + 应用层重试(20-150ms 随机抖动,最多 15 次)+ BEGIN IMMEDIATE

        

多线程同时保存消息容易锁库,Hermes 三层防护:

  • 数据库锁等待 1 秒超时
  • 写入失败随机等 20~150 毫秒重试,最多重试 15 次
  • 写入时强制独占事务,避免同时争抢

WAL Checkpoint

定时归档

        每 50 次成功写入触发一次(PASSIVE 模式)

每成功写入 50 条消息,自动同步缓存到数据库文件,防止断电丢最近记录。

FTS5 搜索能力(Agent 自带搜历史工具)

  • 完整 FTS5 查询语法:关键词(隐式 AND)、引号短语、OR/NOT 布尔、前缀匹配(deploy*
  • 按来源平台、角色、日期范围过滤
  • 返回带 >>>match<<< 标记的摘录、±1 条消息上下文、会话元数据
  • session_search 工具让 Agent 自动执行跨会话召回
  • 支持标准搜索语法:精准短语引号、或 / 非逻辑、前缀模糊匹配;
  • 可筛选:只查某平台、指定时间段、仅工具调用记录;
  • 搜索结果高亮匹配文字,顺带带出前后相邻消息,附带会话基础信息;
  • Agent 内置 session_search 技能,AI 自己能主动检索几年前的历史对话,调取过往经验辅助当前任务。

        总结:用单文件 SQLite 搭配中文友好全文检索存全部对话,靠 WAL、重试机制解决多端并发读写;压缩拆分的会话通过父子 ID 完整串联历史,AI 可自主跨会话关键词检索旧记录,所有原始消息永久留存不丢失。


8. Gateway 多平台网关

        Gateway 就是 Hermes 的常驻后台总调度服务,开机启动后一直挂着不退出,统一对接 20 多款聊天软件,不用分开开多个程序。

Gateway 是一个守护进程hermes gateway),保持 Agent 在所有平台上持久在线:

                          ┌─────────────┐
                          │   Gateway   │
                          │  (daemon)   │
                          └──────┬──────┘
                                 │
        ┌────────────┬───────────┼───────────┬──────────┬──────┐
        ▼            ▼           ▼           ▼          ▼      ▼
     Telegram    Discord     WhatsApp    Slack/Email  SMS   CLI/Web

支持平台(20+):Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost, Email, SMS, DingTalk, 飞书/Lark, 企业微信, 微信, QQBot, LINE, SimpleX Chat, IRC, Microsoft Teams, Google Chat, Home Assistant...

关键特性

  • 跨平台对话连续性:Telegram 上开始,CLI 上继续,记忆、上下文互通,不分平台隔离对话。
  • Telegram "项目主题":每个主题绑定特定技能 + 独立上下文
  • 消息路由、投递、定时任务触发全部流经同一 Gateway

        好比一个统一客服总后台: Telegram、飞书、企业微信、Discord、网页端、命令行全是各个客户进线渠道,所有消息、定时提醒、指令全部先发给这个网关,再统一转给底层 AIAgent 核心处理。

        所有平台的消息分发、消息推送、定时任务(定时提醒、定时执行任务)都由网关统一管控,不用给每个聊天客户端单独写一套调度逻辑,一套底层 Agent 引擎对接全部渠道。


9. 权限与安全模型

        Hermes 的安全哲学与 Claude Code 不同——它明确声明:保护操作者免受 LLM 行为影响,但不防御恶意共驻者(co-tenant)

安全机制 实现
智能审批 学习哪些命令是安全的,自动批准已知安全模式
PII 脱敏 输出中自动检测和脱敏个人信息
密钥脱敏 API Key、Token、数据库密码自动遮蔽
危险命令检测 rm -rf /chmod 777 等默认阻断
/stop 中断 随时中断 Agent 执行
DM 配对授权 消息平台上的 DM 访问需要配对确认
5 层防御模式 记忆威胁扫描、上下文注入扫描、OSV 恶意软件检查、凭证剥离、结构化上下文压缩

10. 与Claude Code Harness对比

这是理解两种 Harness 哲学的关键:

维度 Claude Code Hermes Agent
核心关注 权限系统 + 上下文管理 Agent Loop 密度 + 多平台消息
语言 TypeScript(CLI-first) Python(多平台 Agent)
模型锁 Claude only 任意模型(200+ via Provider 适配器)
开源 否(专有) 是(MIT License, 96K+ Stars)
设计赌注

Harness 应该做减法——模型变强就移除脚手架

        认为大模型能力会越来越强,现在加的复杂配套功能以后都能删掉;脚手架只是临时补丁。

Harness 应该做加法——随时间积累经验、技能、记忆

        就算模型再厉害,它也记不住你几个月前的需求、不会自动沉淀工作流程,所以要永久配套记忆、技能、历史检索整套底座,长期持续积累经验。

上下文压缩对比

Claude Code Hermes
方式 服务端 Compaction API(单参数,完全托管) 客户端五阶段管线(精确控制)
触发 达到 Token 阈值,API 自动压缩 Agent 50% + Gateway 85% 双层触发
可控性 低——压缩块不透明 高——结构化模板,可追踪 Resolved/In Progress/Pending
哲学 简单优先 控制优先

Claude Code

  • 压缩交给 Anthropic 服务端黑盒 API,你只能设一个阈值,内部怎么精简看不到、改不了
  • 到 token 上限自动压缩,人无法干预细节
  • 追求简单省事,牺牲自定义控制能力

Hermes

  • 本地五层自定义压缩流水线,每一步逻辑完全透明可改
  • 双保险:AI 运行到 50% 容量先精细压缩;网关 85% 紧急兜底,防止溢出报错
  • 能查看每段内容状态(已归档 / 待压缩 / 使用中),精细化管控上下文内容

记忆系统对比

Claude Code Hermes
方式 文件驱动、模型驱动 分层、系统驱动
主存储 CLAUDE.md + MEMORY.md(max 200 行, 25KB) SQLite + FTS5 + 8 个外部 Provider 插件
检索 文件加载到 System Prompt——模型"全看" Prefetch-inject 循环:先搜索后预加载
跨会话 有限——完全依赖 CLAUDE.md 质量 深度——会话血统、父子压缩链、session_search 工具
哲学 "模型够聪明——给它文件就行" "模型需要帮助在多个时间尺度上积累"

Claude Code

  • 极简文件记忆,只有两个 md 文件,严格限制行数大小
  • 每次对话直接把文件全文塞进提示词,模型一次性读完
  • 跨会话记忆很弱,只能靠手动写文件留存信息,没法自动检索历史对话
  • 逻辑:模型足够聪明,把文档丢给它自己看懂就行

Hermes

  • 四层分级记忆体系 + SQLite 带全文检索数据库,完整保存全部聊天记录
  • 不会一次性灌入所有历史,先检索匹配相关内容,再摘要注入上下文
  • 支持会话父子链路,压缩拆分的对话完整溯源,AI 能主动调用工具搜索几个月前的跨会话历史
  • 逻辑:人脑都没法记住所有往事,模型也需要专门存储、检索、摘要系统辅助调取长期信息

架构哲学的根本分歧

  • Claude Code:把对模型局限性的假设编码进 Harness,模型变强后移除这些功能。(如 Opus 4.6 移除了 "Sprint" 机制)
  • Hermes:建造不随模型变强而过期的东西——记忆层、技能文件、跨会话搜索、用户建模。"模型会变强,但它仍然需要知道你上周问了什么。"

11. 11个Harness设计模式

业界从 Claude Code 和 Hermes 两个代码库中提炼出 15 个通用 Harness 设计模式:

# 模式 核心思想
1 The Harness Paradigm 模型本身不是产品——需要编排层
2 Tool Architecture & Tool Contract 推理与执行后果之间的边界设计
3 The Query/Agent Loop 模型 tool call 与下一轮之间发生了什么
4 Permission Systems & Safety Guardrails 对破坏性操作的门控
5 Tool Orchestration & Execution 安全操作与串行操作的分区
6 Context Management at Scale 压缩前的五种策略
7 Multi-Agent Coordination 一个 Agent 不够时的协调模式
8 Memory Systems & State Persistence 三层记忆,一种缓存
9 Observability & Debugging 非确定性系统的分布式追踪
10 Production Deployment Patterns SDK-first vs Gateway-first
11 Hook/Event-Driven Automation Loop 之上的自动化层
12 The Skill System Pattern 能力即内容,而非代码
13 MCP Integration 将 Agent 连接到世界
14 Model Routing & Provider Abstraction 失败时优雅降级
15 Structured Output & Schema-Constrained Generation 当自由文本不够时

总结

Hermes 的核心创新

创新点 说明
自进化能力 Agent 从经验中学习,自动生成和改进技能——不是每次从零开始
四层记忆 按时间尺度和用途分层的记忆架构,让 Agent 既有"常识"也有"经验"
注册与暴露分离 70+ 工具注册但按需暴露,不浪费上下文窗口
渐进式技能加载 200 个技能的上下文开销等于 40 个——只在需要时才加载完整内容
Provider 无关 18+ LLM Provider,三层弹性 fallback,不被任何一家锁定
多平台统一 CLI、Telegram、Discord、Slack...同一 Agent 跨平台服务
会话即基础设施 SQLite + FTS5 + WAL + 会话血统——把会话当作一等公民的基础设施

越来越多的生产实践采用 Hermes(编排)+ Claude Code(编码) 的双栈模式:

  • Hermes 作为持久编排层:管理会话、记忆、多平台接入、定时任务
  • Claude Code 作为专业编码执行器:通过 MCP 桥接,处理复杂代码任务
  • 两者互补——Hermes 提供"永远不会忘记"的持久性,Claude Code 提供最顶级的代码智能

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐