
从 Harness 到 Hermes:当 AI 学会为自己套上缰绳,自改进智能体时代已来
从 Prompt 到 Context 再到 Harness,深度拆解 Hermes Agent 如何将手动“驾驭工程”转化为全自动“自进化飞轮”
前言:一个 10 周增长 11 万 Star 的背后
2026 年 2 月 25 日,Nous Research 开源了 Hermes Agent。10 周后,它的 GitHub Star 突破 11 万,日均 Token 消耗量从 20 亿飙升至 3000 亿,登顶 OpenRouter 全球 AI Agent 调用量榜首。与此同时,一个更接地气的术语在开发者社群中流行开来——“养马”,与 OpenClaw 的“养龙虾”并肩成为圈内黑话。
11 万 Star 是表象,真正让开发者为之兴奋的,是 Hermes 喊出的那句口号:“运行时间越长,能力就越强。”Hermes Agent 并不是一个绑定在 IDE 中的编程 Copilot,也不是仅封装了单一 API 的聊天机器人外壳,它是一个部署在服务器上的自主智能体,能够记住所学内容,并且运行时间越长,能力就越强。
这句话之所以掷地有声,是因为它触及了一个行业痛点:大多数 AI Agent 每次会话结束就归零,像金鱼一样只有 7 秒记忆。而 Hermes 宣称要让 Agent 真正“学会学习”。
这一切,根植于 2026 年 AI 工程领域最核心的方法论——Harness Engineering(驾驭工程)。
一、从 Harness 到 Hermes:一条认知重构的线索
1.1 什么是 Harness Engineering?30 秒讲懂
Harness 一词的本意是“马具”——缰绳、马鞍、嚼子、马蹄铁。2026 年,这个概念被引入 AI 工程语境,完成了一个朴素但深刻的认知重构:
Agent(智能体) = Model(模型) + Harness(驾驭系统)
在这个等式中,模型是那匹强大的野马——它能跑、能跳、有无限潜能,但它自己不知道该往哪跑。Harness 是套在马身上的缰绳和马具,骑手(人类工程师)给出方向,Harness 把力量转化为可控行动。
Harness Engineering(驾驭工程)本质上是在回答一个问题:决定 Agent 能否上线的,不是你写了哪条 Prompt,甚至不只是你选了哪个模型,而是你给模型搭了什么样的运行系统。
它处理的是模型外面的那一整层工程问题——任务怎么拆解、上下文怎么管理、工具怎么编排、权限怎么设定、状态怎么交接、做完怎么验证、失败怎么恢复。这不是一条 Prompt 能解决的,而是完整的系统设计问题。
1.2 AI 工程的二次跃迁:从提示词到上下文再到 Harness
要真正理解 Harness Engineering 的分量,需要把视野拉长到更宏大的技术史维度。
| Prompt Engineering | 怎么跟模型说话 | 2022-2024 | 学会喊“驾” |
| Context Engineering | 模型应该看到什么 | 2025 | 给马看地图、讲地形 |
| Harness Engineering | 怎么让模型可靠地工作 | 2026 起 | 给马套上整套缰绳、鞍具和马车 |
Prompt Engineering 解决的是“怎么跟模型说话”,通过精心雕琢指令措辞、Few-shot、Chain-of-Thought 来诱导模型给出正确答案。Context Engineering 聚焦于“模型应该看到什么”,通过 RAG、知识库、动态上下文注入等方式,让模型拥有实时、准确的外部知识。
而 Harness Engineering 突破的是“让 AI 可靠落地”的瓶颈——把模型看作一个“不可控的引擎”,需要在外部构建复杂的 Harness 来驯服它。最有效的 Harness 不是纯粹依赖 AI,而是结合传统的静态代码分析工具、结构测试等确定性方法,与 LLM 的灵活推理能力。
1.3 Harness Engineering 的三个决定性瞬间
2025 年 11 月,Anthropic 发布《Effective Harnesses for Long-Running Agents》,率先在实践层面提出了 Harness 的概念。
2026 年 2 月 5 日,HashiCorp 联合创始人 Mitchell Hashimoto 在博客中写下了一段影响深远的定义:“Harness engineering is the idea that anytime you find an agent makes a mistake, you take the time to engineer a solution such that the agent will not make that mistake again in the future.”——每当发现 Agent 犯错,就工程化一个方案,让它未来不再重蹈覆辙。
六天后,OpenAI 在官方博客中正式采用了这一术语;Martin Fowler 随后撰文深度解析。一个月内,Harness Engineering 成为了 2026 年 AI 工程领域最核心的新范式。
1.4 Harness 的六大核心组件
一套完整的 Harness 系统大致包含以下六个核心部分:
Google DeepMind 的 Staff Engineer Philipp Schmid 甚至给出了一个更尖锐的判断:“Harness is the Dataset.”——Harness 本身就是数据集。现在的竞争壁垒,在于你的 Harness 能捕获到怎样的执行轨迹。
1.5 Hermes 与 OpenClaw:两种 Harness 哲学的正面交锋
Hermes 和 OpenClaw 分别代表了两种截然不同的 Harness 设计哲学:
OpenClaw 诞生于 2025 年 11 月,累计斩获超过 34.6 万 GitHub Stars。它是一个中央 WebSocket 网关,设计哲学是“最大化覆盖面”——让 Agent 在尽可能多的平台上运行。其 Harness 核心是连接。
Hermes 则走了一条完全不同的路。它的设计哲学是“让 AI 从经验中学习”,而不是每次会话结束就归零。其 Harness 核心是进化。
| 核心定位 | 多渠道协同的 AI 网关 | 具备自进化能力的智能体引擎 |
| Harness 重点 | 消息路由、协议适配、平台覆盖 | 学习循环、技能沉淀、记忆系统 |
| Skill 来源 | 人工手写,ClawHub 市场有 2000+ | 自动生成,从实践中学、在进化中优化 |
| 记忆模型 | MEMORY.md 纯追加,长期膨胀 | 三层记忆 + 容量约束 + 自动压缩 |
| 受众人群 | 企业级稳定环境 | 前沿开发者、科研机构 |
| 技术路线 | TypeScript,网关调度型 | Python,学习闭环型 |
在 2026 年 5 月的数据中,Hermes 以日均 2710 亿 Token 调用量正式超越 OpenClaw(2450 亿),位居 OpenRouter 全球调用量第一。这并非简单的“排名变化”,而是两种 Harness 哲学在市场竞争中的分野信号。
二、Hermes 的五大核心组件:一个手工 Harness 如何进化为全自动系统
如果我们把 Harness 的六大组件映射到 Hermes 身上,会发现 Hermes 把这套体系全部实现了,而且关键区别在于——它不是人类工程师在维护这套 Harness,而是 Agent 自己在维护和升级自己的 Harness。
2.1 组件一:指令(系统提示词 + Persona)
指令层定义 Agent 的身份、目标和行为边界。Hermes 通过 SOUL.md 文件定义 Agent 的人格,通过系统提示词约束 Agent 的角色定位和行为准则。
与传统 Harness 的区别在于:Hermes 的指令层会动态进化。当 Agent 发现某种表达方式更容易被用户理解、或者某种提示词结构更容易触发正确工具时,它会通过 GEPA(Generalized Evolutionary Prompt Adaptation)算法自行微调系统提示词的表达方式。
2.2 组件二:约束(护栏与安全边界)
约束层限定 Agent 的行动边界。Hermes 通过 forbidden_tools 白名单、Shell 执行沙箱(Docker/SSH 后端)和 config.yaml 中的安全开关来实现约束。
但 Hermes 不仅仅执行静态约束。当 Agent 在某个 Skill 的执行过程中发现某个操作会反复触发安全边界导致任务失败时,它会在 SKILL.md 中自动添加对应的“禁止操作”条目。也就是说,约束不是人类程序员一次性写死的,而是 Agent 在执行中自己学出来的。
2.3 组件三:反馈(验证与纠正信号)
反馈层是最能体现 Hermes 核心优势的地方。Hermes 的反馈回路包含:
- 显式反馈:用户直接给出的评分或修正指令
- 隐式信号:对话时长、任务完成率、用户修正指令发出的次数等行为数据
- 工具调用失败信号:当某个工具调用返回错误码时,Hermes 会将其记录为失败样本,供后续优化使用
传统 Harness 的反馈通常是人类给 Agent。而在 Hermes 架构中,反馈信号的一部分来自 Agent 自己的执行复盘。当 Agent 累计完成 15 次工具调用后,它会自动触发反思流程,从成功和失败的执行中提取经验。
什么是 15 次工具调用的触发逻辑?Hermes 内置了调用计数器,当某个工具的调用频次达到 15 次时,自动触发 GEPA 进化流程——对错误样本做 SHAP 归因分析,在参数空间内蒙特卡洛搜索,生成 3 组候选提示词变体,通过 A/B 测试选择最优组合。
2.4 组件四:记忆(上下文与状态持久化)
记忆层是 Harness 的核心支柱。Hermes 的三层记忆体系让“记忆”从功能变成了机制:
| L1 | 会话记忆 | SQLite + FTS5 | 当前会话的历史上下文 |
| L2 | 持久记忆 | MEMORY.md / USER.md | 跨会话的客观事实与用户偏好 |
| L3 | 技能记忆 | ~/.hermes/skills/*.md | 可复用的任务执行方案 |
MEMORY.md(上限 2,200 字符)存储环境事实和项目约定;USER.md(上限 1,375 字符)存储用户偏好和沟通风格。两个文件容量设定极紧,倒逼 Agent 在有限空间内做信息压缩——超过上限时,memory_tool.py 的执行路径会直接失败并返回当前所有条目,由模型自己决定删除或替换哪些不重要的信息,而不是静默丢弃或无限膨胀。对比 OpenClaw 的纯追加模式,这种“信息蒸馏”式的设计让 Hermes 的记忆始终维持在高密度的可用状态。
2.5 组件五:编排(任务拆解与子 Agent 调度)
编排层解决的是“大型复杂任务如何处理”。Hermes 支持主 Agent 通过 delegate_task 工具派生子 Agent,每个子 Agent 拥有隔离的上下文和独立的工具集。Hermes 的受限资源限制最多支持 3 个并行子 Agent。
编排层同样具备“自学习”能力。当一个多步骤任务通过子 Agent 编排成功完成时,Hermes 会自动将这一整条执行链路(主 Agent 拆解 → 子 Agent 分工 → 结果聚合)封装为一个 SKILL.md 文件。下次遇到类似任务,Agent 直接调用该 Skill,无需重新规划编排策略。
这意味着,Hermes 不仅仅是一个执行 Harness 的 Agent,它还是一个自我迭代的 Harness——指令、约束、反馈、记忆、编排这五大组件,都不是静态配置,而是 Agent 在使用过程中不断自优化的动态系统。
三、Hermes 如何把手工 Harness 变成全自动系统
理解五大组件之后,现在需要回答一个更关键的问题:这一切是怎么自动发生的?
答案藏在 Hermes 的学习循环中。
3.1 学习循环:从经验到能力的转化引擎
Hermes 的学习循环贯穿 Agent 的每一次任务执行。当 Hermes 完成一个任务(调用工具较多、从错误中恢复、用户给了修正指令)后,它会自动执行三阶段处理:
这个闭环的本质是将“能力生产”的工作从开发者手中交给了 Agent 本身——Hermes 让 Agent 自己生长能力。
3.2 主动反思:Nudge Engine 的定期复盘
除了任务完成后的被动生成,Hermes 还有一个主动机制:Nudge Engine。它就像一个“定时闹钟”,定期提醒 Agent 回头看看有没有值得记忆的东西。通过配置 nudge_interval,Agent 会在指定时间间隔后主动复盘近期对话,提取值得长期保存的信息,写入 MEMORY.md 或 USER.md。
这种“被动触发 + 主动复盘”的双重设计,确保了经验的流失率降到最低。每次交互产生的结构化数据会被三阶段化处理,形成一个“执行 → 反思 → 进化 → 再执行”的持续飞轮。
3.3 GEPA 算法:离线的批量进化引擎
真正支撑 Hermes“越用越强”的底层技术是 GEPA(Generalized Evolutionary Prompt Adjustment) 算法。
| 失败归因分析 | SHAP 值量化各提示词要素对失败的影响权重 | 定位问题根源 |
| 参数空间探索 | 贝叶斯优化 + MCTS,迭代生成 3 组候选变体 | 生成最优候选 |
| 验证与收敛 | 在评估集上做 A/B 测试,连续 5 次迭代提升 <2% 时终止 | 确保改进可测量 |
实验数据显示,在代码生成场景中,经过 200 次任务迭代后,Hermes 的代码通过率从初始的 67% 提升至 92%,而传统智能体在相同任务量下性能仅提升 5%。
四、五步循环 vs 五大组件的映射:当 Harness 学会自己迭代
让我们用一个完整的视角来审视 Hermes 的架构——五步运行循环(学习循环)如何映射到五大组件(Harness 系统)上,构成一个双向约束、持续进化的自改进闭环。
#mermaid-svg-lyBzHvma3TyLtCys{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-lyBzHvma3TyLtCys .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-lyBzHvma3TyLtCys .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-lyBzHvma3TyLtCys .error-icon{fill:#552222;}#mermaid-svg-lyBzHvma3TyLtCys .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-lyBzHvma3TyLtCys .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-lyBzHvma3TyLtCys .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-lyBzHvma3TyLtCys .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-lyBzHvma3TyLtCys .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-lyBzHvma3TyLtCys .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-lyBzHvma3TyLtCys .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-lyBzHvma3TyLtCys .marker{fill:#333333;stroke:#333333;}#mermaid-svg-lyBzHvma3TyLtCys .marker.cross{stroke:#333333;}#mermaid-svg-lyBzHvma3TyLtCys svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-lyBzHvma3TyLtCys p{margin:0;}#mermaid-svg-lyBzHvma3TyLtCys .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-lyBzHvma3TyLtCys .cluster-label text{fill:#333;}#mermaid-svg-lyBzHvma3TyLtCys .cluster-label span{color:#333;}#mermaid-svg-lyBzHvma3TyLtCys .cluster-label span p{background-color:transparent;}#mermaid-svg-lyBzHvma3TyLtCys .label text,#mermaid-svg-lyBzHvma3TyLtCys span{fill:#333;color:#333;}#mermaid-svg-lyBzHvma3TyLtCys .node rect,#mermaid-svg-lyBzHvma3TyLtCys .node circle,#mermaid-svg-lyBzHvma3TyLtCys .node ellipse,#mermaid-svg-lyBzHvma3TyLtCys .node polygon,#mermaid-svg-lyBzHvma3TyLtCys .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-lyBzHvma3TyLtCys .rough-node .label text,#mermaid-svg-lyBzHvma3TyLtCys .node .label text,#mermaid-svg-lyBzHvma3TyLtCys .image-shape .label,#mermaid-svg-lyBzHvma3TyLtCys .icon-shape .label{text-anchor:middle;}#mermaid-svg-lyBzHvma3TyLtCys .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-lyBzHvma3TyLtCys .rough-node .label,#mermaid-svg-lyBzHvma3TyLtCys .node .label,#mermaid-svg-lyBzHvma3TyLtCys .image-shape .label,#mermaid-svg-lyBzHvma3TyLtCys .icon-shape .label{text-align:center;}#mermaid-svg-lyBzHvma3TyLtCys .node.clickable{cursor:pointer;}#mermaid-svg-lyBzHvma3TyLtCys .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-lyBzHvma3TyLtCys .arrowheadPath{fill:#333333;}#mermaid-svg-lyBzHvma3TyLtCys .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-lyBzHvma3TyLtCys .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-lyBzHvma3TyLtCys .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-lyBzHvma3TyLtCys .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-lyBzHvma3TyLtCys .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-lyBzHvma3TyLtCys .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-lyBzHvma3TyLtCys .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-lyBzHvma3TyLtCys .cluster text{fill:#333;}#mermaid-svg-lyBzHvma3TyLtCys .cluster span{color:#333;}#mermaid-svg-lyBzHvma3TyLtCys div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-lyBzHvma3TyLtCys .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-lyBzHvma3TyLtCys rect.text{fill:none;stroke-width:0;}#mermaid-svg-lyBzHvma3TyLtCys .icon-shape,#mermaid-svg-lyBzHvma3TyLtCys .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-lyBzHvma3TyLtCys .icon-shape p,#mermaid-svg-lyBzHvma3TyLtCys .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-lyBzHvma3TyLtCys .icon-shape .label rect,#mermaid-svg-lyBzHvma3TyLtCys .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-lyBzHvma3TyLtCys .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-lyBzHvma3TyLtCys .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-lyBzHvma3TyLtCys :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
五步学习循环
Hermes Harness 五大组件
反馈到组件自动优化配置
更新约束边界
丰富反馈模式
扩充记忆库
优化编排策略
自改进成果
📁 Skill库持续增长
⚡ 工具调用次数下降
🎯 用户干预减少
🧠 组件一:指令SOUL.md + 系统提示词
🛡️ 组件二:约束forbidden_tools + 沙箱
🔄 组件三:反馈工具返回码 + 用户修正
📚 组件四:记忆MEMORY.md/USER.md + 技能库
🎯 组件五:编排delegate_task + 子Agent
1️⃣ 执行任务调用5+次工具
2️⃣ 自动识别可复用操作序列
3️⃣ 生成Skill结构化SKILL.md文件
4️⃣ 持续优化Nudge Engine主动复盘
5️⃣ 批量进化GEPA算法离线迭代
这张图揭示了一个关键事实:Hermes 不仅实现了 Harness 的全部组件,还让这些组件具备了自我优化的能力。 Harness 的五大组件不是静态配置文件,而是随着 Agent 的学习循环不断迭代的动态系统:
-
指令层在进化:通过 GEPA 算法,提示词结构和表达方式会持续优化。系统提示词不再是人类一次性写定的“宪法”,而是运行中不断修撰的“活文档”。
-
约束层在完善:当 Agent 在执行某个 Skill 时发现某个操作反复触发安全边界或工具调用失败,它会自动在 Skill 文件中添加对应的约束说明。安全护栏不是静态的规则表,而是由 Agent 自己的执行经验打磨出来的“行为边界”。
-
反馈层在扩展:每一轮执行生成的轨迹数据(成功与否、工具调用序列)都会进入经验缓冲区,作为 GEPA 下一轮进化的训练材料。feedback 不是单向的,而是闭环的。
-
记忆层在蒸馏:MEMORY.md 和 USER.md 的容量上限迫使 Agent 只保留高密度信息,而过时的内容会被自动挤出。冷记忆(SQLite + FTS5)承担全量归档,温记忆维持高密度的可用状态。
-
编排层在固化:成功的多子 Agent 协作链路会被自动封装为 Skill,下次遇到同类任务直接复用编排策略。复杂的编排逻辑不必人工维护,而是从实践中“长出来”的。
一句话总结:Hermes = 一个会自己优化自己 Harness 的 Agent。
五、思考:当 Harness 自己学会迭代,意味着什么?
5.1 AI 工程化的终极方向?
Harness Engineering 的兴起标志着 AI 竞争的焦点正在从“模型能力”转移到“系统能力”。能够跑通这条闭环的 Agent,不再是一个被动等待指令的工具,而是一个能够主动进化的“数字同事”。
Google DeepMind 工程师 Philipp Schmid 的论断“Harness is the Dataset”向行业传达了更深层的信息:Harness 的价值不仅在于保障 Agent 的稳定运行,更在于它持续产生的高质量执行轨迹。这些轨迹是下一代模型训练的最优质数据——用真实环境中的大量执行数据为未来更强的基础模型做燃料。
5.2 Agent = Model + Harness 的终极形态
在手工 Harness 时代,Agent = Model +(手动配置的指令、约束、反馈、记忆、编排)。Agent 的优化依赖人类工程师不断地配置、调试、迭代。
在 Hermes 的进化型 Harness 架构中,这个等式变成:
Agent = Model +(Agent 自己维护的 Harness)
Agent 通过学习循环不断从执行反馈中提取经验,自我优化自己的 Harness 组件。指令是 Agent 自己调优的,约束是 Agent 自己发现的,反馈是 Agent 自己利用的,记忆是 Agent 自己蒸馏的,编排是 Agent 自己固化的。
这是 Harness Engineering 的终点:人类不再调教 Agent,而是训练 Agent 自己调教自己。模型仍然是那匹野马,但缰绳不再握在骑手手中——马学会了给自己套缰绳。
📌 延伸阅读
- Hermes Agent GitHub 官方仓库
- 深度解析 Hermes Agent:Prompt / Context / Harness 的设计实践
- Harness is the New Dataset:模型智能提升的下一个关键方向
- 2026 AI智能体框架双雄争霸:自我进化型与企业级架构的巅峰对决
💬 你如何看待“Harness Engineering”这个新范式?Hermes 的自我进化能力让 AI 真正变强了吗?欢迎在评论区分享你的观点和实际体验!
原创不易,欢迎点赞、收藏、转发




