跳到主要内容

Hermes

Harness Engineering是什么

2026年初,AI编程圈出现了一个共识:瓶颈不是模型,是环境。LangChain团队做了一个实验,用同一个模型(GPT-5.2- Codex),只调整周围的「缰绳」配置,成绩从52.8%涨到66.5%,排名从Top 30跳到Top 5。模型一行没改。

Mitchell Hashimoto(Terraform的创造者)第一个给这件事命名:Harness Engineering。他的做法很朴素,每次AI犯 错,就加一条规则,让它永远不再犯同一个错。文件是活的,一直在长。

五组件映射

Harness Engineering讲的是方法论,是「你应该给AI造什么样的缰绳」。但方法论有一个问题:执行全靠人。你得自己写 CLAUDE.md,自己配hooks,自己搭记忆系统,自己设计工作流。

Hermes做的事情是:把这五个组件全部内建了。

Harness五组件手动实现方式Hermes内建系统
指令层手写CLAUDE.md / AGENTS.mdSkill系统(markdown skill文件,自动创建+自改进)
约束层配置hooks / linter / CITool permissions + sandbox + toolset按需启用
反馈层人工审查 / 评估者Agent自改进学习循环(完成任务后自动复盘优化)
记忆层手动维护knowledge base三层记忆(会话/持久/Skill)+ Honcho用户建模
编排层自己搭多Agent pipeline子Agent委派 + cron调度

看左列和右列的对比。左边全是手动操作,你得是一个有经验的工程师才能搭出来。右边是开箱即用,装完就有

这就是Hermes和OpenClaw的本质区别。OpenClaw给你一套配置即行为的系统,你写SOUL.md,它变成你想要的样子。它的记忆系统功能完善(Daily Logs + MEMORY.md + 语义搜索),Skill生态庞大,但主要靠人工编写和维护。Hermes把这五个维度全部内建了,而且让它们自动运转。

架构一张图

Hermes Agent的架构可以用一条线串起来:

  • 学习循环是Hermes的心脏。每次完成一个任务,它会自动复盘:该记住什么、该提炼什么Skill、现有Skill需不需要优化。这个循环是持续运转的,不需要你手动触发。
  • 三层记忆是Hermes的大脑。会话记忆记住「刚才发生了什么」,持久记忆记住「你是谁、你喜欢什么」,Skill记忆记住「怎么做事」。三层各司其职,用SQLite + FTS5索引存储,按需检索而不是全量加载。
  • Skill系统是Hermes的技能库。每个Skill是一个独立的markdown文件,存在 ~/.hermes/skills/ 目录下。来源有三种:仓库自带的、Agent自己创建的、从社区Hub安装的。关键特性:Skill不是静态的,会在使用中自我改进。
  • 40+内置工具是Hermes的手脚。分五大类:执行(跑代码、操作文件)、信息(搜索、抓取)、媒体(图片、视频)、记忆(读写存储)、协调(子Agent委派)。再加上MCP集成,可以连接6000+外部应用。
  • 多平台Gateway是Hermes的入口。Telegram、Discord、Slack、WhatsApp、Signal、CLI,12+平台支持。你可以在Telegram上给它发消息,它在VPS后台处理,跨平台对话连续。

和OpenClaw的关键区别

维度Hermes AgentOpenClaw
核心理念自改进学习循环配置即行为(SOUL.md)
记忆三层自改进(会话/持久/Skill)多层记忆(Daily Logs/MEMORY.md/语义搜索),人工维护为主
Skill维护Agent自动创建+自改进人工编写和维护
用户建模Honcho辩证建模(多维身份推断)基于SOUL.md配置
多平台接入12+平台Gateway50+消息平台(Telegram/Discord/WhatsApp/Slack/Signal等)
生态规模40+内置工具 + MCP6000+ ClawHub 44000+ 社区Skill
部署方式自托管($5 VPS起)官方托管/自托管
Skill互通均采用agentskills.io标准

差距最大的两个维度是学习能力用户建模。OpenClaw的Skill主要靠人工编写和调整,它的进化依赖社区和用户的主动维护。Hermes用的越久,Skill越精准,记忆越深,做事越顺手

但OpenClaw也有Hermes比不了的地方:生态成熟度。ClawHub上44000+社区Skill,各种场景都有现成方案。Hermes的社区还在早期阶段。2600万用户的龙虾热给OpenClaw带来了巨大的网络效应,这不是技术能弥补的。

学习循环:Agent自己给自己造缰绳

五个环节,一个闭环

Hermes的学习循环有五个环节,单看都不复杂,但串起来形成了一个持续改进的飞轮。

记忆提供了Skill创建的素材,Skill在使用中积累反馈触发自改进,FTS5让历史经验被精准召回,用户建模把这些碎片拼成一幅完整的画。

环节一:策划记忆

每轮对话结束后,Hermes会主动决定哪些信息值得记住。是主动决定,不是被动存储

传统的对话记忆很粗暴:把整个聊天历史塞进上下文。聊得越多,上下文越长,直到撑不下为止。

Hermes的做法更像人类写日记。每次对话结束,它会回头看一遍:这次聊了什么?有新发现吗?用户表达了什么偏好?然后把值得记住的内容写入SQLite数据库,建好FTS5全文索引。

系统还有一个周期性的nudge机制,定时提醒Agent回顾最近的交互。有点像手机上的日记App弹通知:今天有什么值得记录的?

环节二:自主创建Skill

当Hermes完成了一个相对复杂的任务,它会问自己一个问题:这个解决方案以后还会用到吗?

如果答案是yes,它就把解决方案提炼成一个Skill文件,存到 ~/.hermes/skills/ 目录下。这个Skill是一个markdown文件,包含了任务描述、执行步骤、注意事项。

环节三:Skill自改进

Skill创建出来不是终点。每次使用的过程中,如果你给了反馈,Hermes会拿这些反馈修改Skill本身。

比如你说「这个导入脚本应该先检查表是否存在」,Hermes不只是这次加上这个检查,它会回去修改那个Skill文件,把这条规则写进去。下次再用这个Skill,检查步骤就是默认包含的。

环节四:FTS5跨会话召回

记住了这么多东西,关键是能在对的时候找出来。

Hermes用SQLite的FTS5扩展做全文索引。每次新对话开始前,它会根据当前话题搜索历史记忆,把相关内容加载到上下文中。不是加载全部历史,是按需检索。

环节五:用户建模

最后一个环节是Honcho用户建模,这是可选的外部集成。它做的事情比记住你说过什么更进一步:它在推理你是什么样的人。

每次对话结束后,Honcho会分析这次交流,推导出你的偏好、习惯、目标。这些推导不只是记录你说了什么,而是从你的行为模式中归纳出更深层的特征。

比如你从来没有明确说过「我喜欢简洁的代码风格」,但Honcho通过分析你多次修改代码的模式,推断出这个结论。下次生成代码时,它会默认走简洁路线。

三层记忆

为什么记忆是最难的问题

你可能觉得AI的记忆不就是存聊天记录吗?存下来,下次加载进去就行了。

没那么简单。一个活跃用户每天跟AI聊几千字,一个月就是几万字。全塞进上下文窗口,要么装不下,要么模型因为信息太多反而变迟钝。而且聊天记录里大部分是废话和重复,真正有价值的信息可能只占10%。

好的记忆系统不是存得多,是找得准。

Hermes用三层架构解决这个问题,每一层处理不同类型的记忆

第一层:会话记忆

会话记忆回答的问题是:发生了什么?

每轮对话的内容、工具调用和返回结果,全部写入SQLite数据库,同时建FTS5全文搜索索引。这是情景记忆,类似人类大脑中的海马体。

关键设计决策是按需检索而不是全量加载。新对话开始时,Hermes不会把过去所有对话历史都塞进来。它根据当前话题,用FTS5搜索相关的历史片段,只加载需要的部分。

这个方案的好处:

方式全量加载按需检索(Hermes)
上下文占用随对话增长线性膨胀基本恒定
检索精度什么都在,什么都找不到按关键词精准匹配
长期可用性几天后就撑不下了可以用几个月甚至几年
响应速度越来越慢基本不变

FTS5是SQLite的全文搜索扩展,不需要额外装数据库。所有数据存在本地SQLite文件里,没有网络依赖,没有隐私顾虑。你的对话记忆不会离开你的机器。

第二层:持久记忆

持久记忆回答的问题是:你是谁?

这一层存的不是对话内容,而是从对话中提炼出的持久状态。比如你的编码偏好、项目结构习惯、常用工具链、工作时间规律。这些跨会话保持,不会因为开了新对话就丢失。

技术实现上,持久记忆也存在SQLite里,由memory工具管理。整个方案纯文件级:没有外部服务器,没有云端同步,数据就在 ~/.hermes/ 目录下。

第三层:Skill记忆

Skill记忆回答的问题是:怎么做事?

前两层记住了发生过什么、你是什么样的人。第三层记住的是方法论和操作规范。每个Skill是 ~/.hermes/skills/ 下的 一个markdown文件,可读可编辑。

这三层对应了认知科学里的三种记忆类型:

Skill系统:会自我进化的能力

在Hermes里,每个Skill是一个独立的markdown文件,存在 ~/.hermes/skills/ 目录下。它记录的是Agent怎么做某件事的程序性记忆。

Skill有三种来源:

来源说明数量级
Bundled Skills安装时自带的预置能力,覆盖MLOps、GitHub工作流、研究等常见场景40+
Agent自主创建完成复杂任务后,Agent自动将解决方案提炼为Skill按使用积累
Skills Hub社区贡献的技能包,可一键安装持续增长

三种来源不是并列关系。Bundled Skills是起点,Skills Hub是加速器,Agent自主创建才是Hermes真正的杀手锏

自改进:Skill会越用越好

这是Hermes和所有其他Agent Skill系统最大的区别。

传统的Skill需要人工维护。你写了一个代码审查Skill,它会按你写的步骤执行。实际使用中发现某个步骤效果不好?你得手动去改。OpenClaw的44000+社区Skill主要以这种方式运作。

Hermes的Skill是活的。它跑在学习循环里,根据实际反馈自动优化。

40+工具与MCP:连接一切

五大类工具速览

类别核心工具干什么用
执行类terminal、code_execution、file跑命令、执行代码(沙箱隔离)、读写文件
信息类web、browser、session_search搜索网页、浏览器自动化、检索历史对话
媒体类vision、image_gen、tts理解图片、生成图片、文字转语音
记忆类memory、skills、todo、cronjob操作记忆层、管理Skill、任务规划、定时调度
协调类delegation、moa、clarify委派子Agent、多模型推理、向用户请求澄清

Toolset:不是全开,是按需启用

Hermes用Toolset机制解决这个问题。工具按功能分组,在config.yaml里按需启用或禁用:

# config.yaml 示例
toolsets:
- web # 网页搜索
- terminal # 终端命令
- file # 文件操作
- skills # Skill管理
- delegation # 子Agent委派
# - homeassistant # 不需要就注释掉
# - rl # 强化学习相关,大多数人用不到

这不只是功能开关。启用的工具越少,Agent注意力越集中,响应越快,token消耗也越少。如果你只需要一个帮你整理文件的助手,开file和memory两个Toolset就够了。

子Agent委派:让三匹马同时跑

delegation是Hermes最强大的协调工具。它能生成子Agent实例,把任务分发出去并行执行。

独立上下文。每个子Agent有自己的对话上下文,互不干扰。主Agent分配任务时传入必要的背景信息,子Agent在独立空间里工作。

受限工具集。你可以指定每个子Agent能用哪些工具。负责调研的只需要web和browser,写代码的只需要terminal和file。既是效率优化,也是安全措施。

最多3个并发。这个限制是刻意的。3个并发子Agent已经覆盖大多数并行场景(同时调研、写代码、跑测试),再多就难以有效协调了。

其他

核心,Hermes在对话后能够自己总结沉淀,总结为 skills、用户画像、memery,即自我进化

怎么沉淀 skills 的

三层主干(触发层 Trigger —— 网关层 Gateway —— Agent层 Agent Loop) + 一圈闭环(自进化回路(Reflect -> 记忆/skill 沉淀 -> 反哺下一次触发))