【Harness:落地实战】18、从“龙虾”到“爱马仕”:Hermes 进化,全自动自进化 Harness 的架构革命

从"龙虾"到"爱马仕":Hermes 进化,全自动自进化 Harness 的架构革命

摘要 :2025 年底,OpenClaw("龙虾")以 30 万 + GitHub Stars 刷新了开源软件历史纪录。然而仅仅两个月后,Hermes("爱马仕")凭借自进化(Self-Evolving) 能力横空出世,连续数周霸榜 GitHub Trending,十周狂揽 11 万星。Hermes 凭什么接棒 OpenClaw?因为它在同一套底层功能之上,实现了全自动的 Harness Engineering------从记忆、约束、编排到反馈,全部开箱自动运转。本文深度拆解 Hermes 的核心架构:学习循环 + 三层记忆 + Honcho 建模,揭示它如何实现全自动 Harness;通过与 OpenClaw 的全方位对比,呈现"连接型"与"进化型"的本质差异;最后提供生产级部署配置与实践建议。这是 Harness 理论的终极落地,也是 AI Agent 从"工具"进化为"数字同事"的里程碑。


📑 目录

  1. [Hermes 定位:Harness 理论的终极实现](#Hermes 定位:Harness 理论的终极实现)
  2. [Hermes 核心架构:学习循环 + 三层记忆 + Honcho 建模](#Hermes 核心架构:学习循环 + 三层记忆 + Honcho 建模)
    • 2.1 学习循环------自我进化的心脏
    • 2.2 三层记忆------从"金鱼"变"老友"
    • 2.3 Honcho 建模------认知你的"另一半"
  3. [Hermes 如何实现全自动 Harness](#Hermes 如何实现全自动 Harness)
  4. [与 OpenClaw 深度对比:连接型 vs 进化型](#与 OpenClaw 深度对比:连接型 vs 进化型)
  5. [一张图看懂 Hermes 进化之路](#一张图看懂 Hermes 进化之路)
  6. 生产级部署与最佳实践
    • 6.1 快速部署(本地/Docker)
    • 6.2 安全沙箱配置:47 条危险命令规则
    • 6.3 三层记忆配置
    • 6.4 自改进开关与安全边界
  7. 总结与展望

1. Hermes 定位:Harness 理论的终极实现

2025 年底,OpenClaw("龙虾")掀起了 AI Agent 的开源浪潮,但它有一个根本性问题:无状态。每次任务独立执行,做完即结束。除非你手动配置 AGENTS.mdSOUL.mdUSER.md 等四层配置文件,否则它不会记住上次的偏好。

Hermes 解决的正是这个问题。2026 年 2 月,Nous Research 正式开源 Hermes Agent,短短两个月内 GitHub Stars 突破 27,000+。官方定位非常直白:"The agent that grows with you."(一个会随着使用不断成长的 Agent)。

真正的突破不在于"它能做什么",而在于"它做完之后会发生什么"。Hermes 实现了 Harness Engineering 的终极形态------五大组件全部内置并自动运转:

Harness 五大组件 传统手动实现 Hermes 内置方案
约束层 人工编写规则 + 手动配置沙箱 47 条危险命令检测 + 持续演化的威胁建模
记忆层 手动维护知识库 三层记忆 + FTS5 全文检索 + Honcho 用户建模
反馈层 人工审查 自改进学习循环(任务完成后自动复盘)
编排层 自建多 Agent 流水线 子 Agent 委派 + cron 定时调度
工具层 手动安装/编写 Skill Agent 自动从经验中创建 + 自动进化 Skill

一句话总结:手动 Harness 靠"配置",自动 Harness 靠"进化"------Hermes 是后者。


2. Hermes 核心架构:学习循环 + 三层记忆 + Honcho 建模

2.1 学习循环------自我进化的心脏

学习循环是 Hermes 实现自进化的核心引擎 ,本质是一个由五个环节组成的持续运转的自我改进飞轮。
#mermaid-svg-xXixmUDsWzNfuvfU{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-xXixmUDsWzNfuvfU .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-xXixmUDsWzNfuvfU .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-xXixmUDsWzNfuvfU .error-icon{fill:#552222;}#mermaid-svg-xXixmUDsWzNfuvfU .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-xXixmUDsWzNfuvfU .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-xXixmUDsWzNfuvfU .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-xXixmUDsWzNfuvfU .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-xXixmUDsWzNfuvfU .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-xXixmUDsWzNfuvfU .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-xXixmUDsWzNfuvfU .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-xXixmUDsWzNfuvfU .marker{fill:#333333;stroke:#333333;}#mermaid-svg-xXixmUDsWzNfuvfU .marker.cross{stroke:#333333;}#mermaid-svg-xXixmUDsWzNfuvfU svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-xXixmUDsWzNfuvfU p{margin:0;}#mermaid-svg-xXixmUDsWzNfuvfU .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-xXixmUDsWzNfuvfU .cluster-label text{fill:#333;}#mermaid-svg-xXixmUDsWzNfuvfU .cluster-label span{color:#333;}#mermaid-svg-xXixmUDsWzNfuvfU .cluster-label span p{background-color:transparent;}#mermaid-svg-xXixmUDsWzNfuvfU .label text,#mermaid-svg-xXixmUDsWzNfuvfU span{fill:#333;color:#333;}#mermaid-svg-xXixmUDsWzNfuvfU .node rect,#mermaid-svg-xXixmUDsWzNfuvfU .node circle,#mermaid-svg-xXixmUDsWzNfuvfU .node ellipse,#mermaid-svg-xXixmUDsWzNfuvfU .node polygon,#mermaid-svg-xXixmUDsWzNfuvfU .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-xXixmUDsWzNfuvfU .rough-node .label text,#mermaid-svg-xXixmUDsWzNfuvfU .node .label text,#mermaid-svg-xXixmUDsWzNfuvfU .image-shape .label,#mermaid-svg-xXixmUDsWzNfuvfU .icon-shape .label{text-anchor:middle;}#mermaid-svg-xXixmUDsWzNfuvfU .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-xXixmUDsWzNfuvfU .rough-node .label,#mermaid-svg-xXixmUDsWzNfuvfU .node .label,#mermaid-svg-xXixmUDsWzNfuvfU .image-shape .label,#mermaid-svg-xXixmUDsWzNfuvfU .icon-shape .label{text-align:center;}#mermaid-svg-xXixmUDsWzNfuvfU .node.clickable{cursor:pointer;}#mermaid-svg-xXixmUDsWzNfuvfU .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-xXixmUDsWzNfuvfU .arrowheadPath{fill:#333333;}#mermaid-svg-xXixmUDsWzNfuvfU .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-xXixmUDsWzNfuvfU .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-xXixmUDsWzNfuvfU .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-xXixmUDsWzNfuvfU .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-xXixmUDsWzNfuvfU .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-xXixmUDsWzNfuvfU .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-xXixmUDsWzNfuvfU .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-xXixmUDsWzNfuvfU .cluster text{fill:#333;}#mermaid-svg-xXixmUDsWzNfuvfU .cluster span{color:#333;}#mermaid-svg-xXixmUDsWzNfuvfU 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-xXixmUDsWzNfuvfU .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-xXixmUDsWzNfuvfU rect.text{fill:none;stroke-width:0;}#mermaid-svg-xXixmUDsWzNfuvfU .icon-shape,#mermaid-svg-xXixmUDsWzNfuvfU .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-xXixmUDsWzNfuvfU .icon-shape p,#mermaid-svg-xXixmUDsWzNfuvfU .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-xXixmUDsWzNfuvfU .icon-shape rect,#mermaid-svg-xXixmUDsWzNfuvfU .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-xXixmUDsWzNfuvfU .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-xXixmUDsWzNfuvfU .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-xXixmUDsWzNfuvfU :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 深化阶段
复用阶段
进化阶段
沉淀阶段
执行阶段
反馈循环
执行任务
自主创建Skill
Skill自改进
跨会话召回
用户建模

Honcho

环节一:自主创建 Skill

当 Agent 完成复杂任务后,会自动将解决方案提炼成独立的 Markdown 技能文件存储起来。触发条件包括:

  • 任务中间调用了 5 次以上工具;
  • 任务出错后又自己把流程救回来了;
  • 用户直接纠正了它的输出。

这套机制完全静默运行,很多时候你根本不知道 Agent 又给自己写了个新技能。

环节二:Skill 自改进

Skill 不是一成不变的。根据用户的使用反馈,Agent 会自动回头修改对应的 Skill 文件,优化其执行步骤。某金融团队的应用案例显示,其风险评估技能经过 27 次自动迭代后,准确率从 79% 提升至 94%。

环节三:跨会话召回

通过 FTS5 全文检索引擎,Agent 能在新对话中按需检索并加载相关的历史记忆片段,而非全量加载,从而保持上下文窗口恒定。

环节四:Honcho 用户建模

Honcho 系统能分析交互行为,推断用户深层的偏好、习惯与身份特征。下文会详细介绍。
#mermaid-svg-Y01sgj1gPBAwERYY{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-Y01sgj1gPBAwERYY .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-Y01sgj1gPBAwERYY .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-Y01sgj1gPBAwERYY .error-icon{fill:#552222;}#mermaid-svg-Y01sgj1gPBAwERYY .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Y01sgj1gPBAwERYY .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-Y01sgj1gPBAwERYY .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Y01sgj1gPBAwERYY .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Y01sgj1gPBAwERYY .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-Y01sgj1gPBAwERYY .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Y01sgj1gPBAwERYY .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Y01sgj1gPBAwERYY .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Y01sgj1gPBAwERYY .marker.cross{stroke:#333333;}#mermaid-svg-Y01sgj1gPBAwERYY svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Y01sgj1gPBAwERYY p{margin:0;}#mermaid-svg-Y01sgj1gPBAwERYY defs #statediagram-barbEnd{fill:#333333;stroke:#333333;}#mermaid-svg-Y01sgj1gPBAwERYY g.stateGroup text{fill:#9370DB;stroke:none;font-size:10px;}#mermaid-svg-Y01sgj1gPBAwERYY g.stateGroup text{fill:#333;stroke:none;font-size:10px;}#mermaid-svg-Y01sgj1gPBAwERYY g.stateGroup .state-title{font-weight:bolder;fill:#131300;}#mermaid-svg-Y01sgj1gPBAwERYY g.stateGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-Y01sgj1gPBAwERYY g.stateGroup line{stroke:#333333;stroke-width:1;}#mermaid-svg-Y01sgj1gPBAwERYY .transition{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-Y01sgj1gPBAwERYY .stateGroup .composit{fill:white;border-bottom:1px;}#mermaid-svg-Y01sgj1gPBAwERYY .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px;}#mermaid-svg-Y01sgj1gPBAwERYY .state-note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-Y01sgj1gPBAwERYY .state-note text{fill:black;stroke:none;font-size:10px;}#mermaid-svg-Y01sgj1gPBAwERYY .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-Y01sgj1gPBAwERYY .edgeLabel .label rect{fill:#ECECFF;opacity:0.5;}#mermaid-svg-Y01sgj1gPBAwERYY .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Y01sgj1gPBAwERYY .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-Y01sgj1gPBAwERYY .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Y01sgj1gPBAwERYY .edgeLabel .label text{fill:#333;}#mermaid-svg-Y01sgj1gPBAwERYY .label div .edgeLabel{color:#333;}#mermaid-svg-Y01sgj1gPBAwERYY .stateLabel text{fill:#131300;font-size:10px;font-weight:bold;}#mermaid-svg-Y01sgj1gPBAwERYY .node circle.state-start{fill:#333333;stroke:#333333;}#mermaid-svg-Y01sgj1gPBAwERYY .node .fork-join{fill:#333333;stroke:#333333;}#mermaid-svg-Y01sgj1gPBAwERYY .node circle.state-end{fill:#9370DB;stroke:white;stroke-width:1.5;}#mermaid-svg-Y01sgj1gPBAwERYY .end-state-inner{fill:white;stroke-width:1.5;}#mermaid-svg-Y01sgj1gPBAwERYY .node rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Y01sgj1gPBAwERYY .node polygon{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Y01sgj1gPBAwERYY #statediagram-barbEnd{fill:#333333;}#mermaid-svg-Y01sgj1gPBAwERYY .statediagram-cluster rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Y01sgj1gPBAwERYY .cluster-label,#mermaid-svg-Y01sgj1gPBAwERYY .nodeLabel{color:#131300;}#mermaid-svg-Y01sgj1gPBAwERYY .statediagram-cluster rect.outer{rx:5px;ry:5px;}#mermaid-svg-Y01sgj1gPBAwERYY .statediagram-state .divider{stroke:#9370DB;}#mermaid-svg-Y01sgj1gPBAwERYY .statediagram-state .title-state{rx:5px;ry:5px;}#mermaid-svg-Y01sgj1gPBAwERYY .statediagram-cluster.statediagram-cluster .inner{fill:white;}#mermaid-svg-Y01sgj1gPBAwERYY .statediagram-cluster.statediagram-cluster-alt .inner{fill:#f0f0f0;}#mermaid-svg-Y01sgj1gPBAwERYY .statediagram-cluster .inner{rx:0;ry:0;}#mermaid-svg-Y01sgj1gPBAwERYY .statediagram-state rect.basic{rx:5px;ry:5px;}#mermaid-svg-Y01sgj1gPBAwERYY .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#f0f0f0;}#mermaid-svg-Y01sgj1gPBAwERYY .note-edge{stroke-dasharray:5;}#mermaid-svg-Y01sgj1gPBAwERYY .statediagram-note rect{fill:#fff5ad;stroke:#aaaa33;stroke-width:1px;rx:0;ry:0;}#mermaid-svg-Y01sgj1gPBAwERYY .statediagram-note rect{fill:#fff5ad;stroke:#aaaa33;stroke-width:1px;rx:0;ry:0;}#mermaid-svg-Y01sgj1gPBAwERYY .statediagram-note text{fill:black;}#mermaid-svg-Y01sgj1gPBAwERYY .statediagram-note .nodeLabel{color:black;}#mermaid-svg-Y01sgj1gPBAwERYY .statediagram .edgeLabel{color:red;}#mermaid-svg-Y01sgj1gPBAwERYY #dependencyStart,#mermaid-svg-Y01sgj1gPBAwERYY #dependencyEnd{fill:#333333;stroke:#333333;stroke-width:1;}#mermaid-svg-Y01sgj1gPBAwERYY .statediagramTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-Y01sgj1gPBAwERYY :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Agent启动
收到用户请求
执行结束
工具调用≥5次/自修复/用户纠错
无需提炼
存入~/.hermes/skills/
FTS5索引
等待下次任务
监听
任务执行
完成判断
提炼Skill
Skill存放
后续检索

2.2 三层记忆------从"金鱼"变"老友"

传统 AI 存在"金鱼记忆"问题------每次对话结束,一切归零。Hermes 通过三层记忆架构彻底突破了这一瓶颈。
#mermaid-svg-CGwL1LRl63kAIMxC{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-CGwL1LRl63kAIMxC .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-CGwL1LRl63kAIMxC .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-CGwL1LRl63kAIMxC .error-icon{fill:#552222;}#mermaid-svg-CGwL1LRl63kAIMxC .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-CGwL1LRl63kAIMxC .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-CGwL1LRl63kAIMxC .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-CGwL1LRl63kAIMxC .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-CGwL1LRl63kAIMxC .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-CGwL1LRl63kAIMxC .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-CGwL1LRl63kAIMxC .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-CGwL1LRl63kAIMxC .marker{fill:#333333;stroke:#333333;}#mermaid-svg-CGwL1LRl63kAIMxC .marker.cross{stroke:#333333;}#mermaid-svg-CGwL1LRl63kAIMxC svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-CGwL1LRl63kAIMxC p{margin:0;}#mermaid-svg-CGwL1LRl63kAIMxC .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-CGwL1LRl63kAIMxC .cluster-label text{fill:#333;}#mermaid-svg-CGwL1LRl63kAIMxC .cluster-label span{color:#333;}#mermaid-svg-CGwL1LRl63kAIMxC .cluster-label span p{background-color:transparent;}#mermaid-svg-CGwL1LRl63kAIMxC .label text,#mermaid-svg-CGwL1LRl63kAIMxC span{fill:#333;color:#333;}#mermaid-svg-CGwL1LRl63kAIMxC .node rect,#mermaid-svg-CGwL1LRl63kAIMxC .node circle,#mermaid-svg-CGwL1LRl63kAIMxC .node ellipse,#mermaid-svg-CGwL1LRl63kAIMxC .node polygon,#mermaid-svg-CGwL1LRl63kAIMxC .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-CGwL1LRl63kAIMxC .rough-node .label text,#mermaid-svg-CGwL1LRl63kAIMxC .node .label text,#mermaid-svg-CGwL1LRl63kAIMxC .image-shape .label,#mermaid-svg-CGwL1LRl63kAIMxC .icon-shape .label{text-anchor:middle;}#mermaid-svg-CGwL1LRl63kAIMxC .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-CGwL1LRl63kAIMxC .rough-node .label,#mermaid-svg-CGwL1LRl63kAIMxC .node .label,#mermaid-svg-CGwL1LRl63kAIMxC .image-shape .label,#mermaid-svg-CGwL1LRl63kAIMxC .icon-shape .label{text-align:center;}#mermaid-svg-CGwL1LRl63kAIMxC .node.clickable{cursor:pointer;}#mermaid-svg-CGwL1LRl63kAIMxC .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-CGwL1LRl63kAIMxC .arrowheadPath{fill:#333333;}#mermaid-svg-CGwL1LRl63kAIMxC .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-CGwL1LRl63kAIMxC .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-CGwL1LRl63kAIMxC .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-CGwL1LRl63kAIMxC .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-CGwL1LRl63kAIMxC .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-CGwL1LRl63kAIMxC .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-CGwL1LRl63kAIMxC .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-CGwL1LRl63kAIMxC .cluster text{fill:#333;}#mermaid-svg-CGwL1LRl63kAIMxC .cluster span{color:#333;}#mermaid-svg-CGwL1LRl63kAIMxC 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-CGwL1LRl63kAIMxC .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-CGwL1LRl63kAIMxC rect.text{fill:none;stroke-width:0;}#mermaid-svg-CGwL1LRl63kAIMxC .icon-shape,#mermaid-svg-CGwL1LRl63kAIMxC .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-CGwL1LRl63kAIMxC .icon-shape p,#mermaid-svg-CGwL1LRl63kAIMxC .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-CGwL1LRl63kAIMxC .icon-shape rect,#mermaid-svg-CGwL1LRl63kAIMxC .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-CGwL1LRl63kAIMxC .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-CGwL1LRl63kAIMxC .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-CGwL1LRl63kAIMxC :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 第一层: 会话记忆
第二层: 持久记忆
第三层: 技能记忆
高频使用/知识蒸馏
经验提炼
后续任务
~/.hermes/skills/

可复用方法论

自动进化
向量数据库

用户偏好/习惯/画像

Honcho深度建模
SQLite + FTS5

完整对话记录

毫秒级检索
用户输入

第一层:会话记忆(Session Memory)

最基础的记忆层------所有对话都被完整保存到 SQLite 数据库,并通过 FTS5 建立全文索引。支持毫秒级检索,独特的上下文压缩算法可在保持 95% 信息完整性的前提下,将存储空间压缩至传统方案的 1/8。

第二层:持久记忆(Persistent Memory)

通过向量数据库存储用户偏好与习惯数据,实现个性化服务。其创新的"记忆固化"机制通过定期知识蒸馏,将高频使用的会话记忆转化为持久记忆,使知识检索效率提升 15 倍。一位用户连续使用 3 周后,系统自动优化了其代码风格偏好设置。

第三层:技能记忆(Skill Memory)

以 Markdown 格式存储方法论知识,每个 Skill 包含执行逻辑与效果评估函数,支持版本控制与协作编辑。测试数据显示,技能文档的复用率达到 83%。

2.3 Honcho 建模------认知你的"另一半"

Honcho 是一个开源的原生 AI 记忆库,专门为构建有状态 Agent 而设计。

其核心理念是 Peer-Centric Architecture:Peers 代表空间内的用户、Agent 或任何实体,支持任意组合的多 Agent 或群聊场景。
#mermaid-svg-3JZ4KtF3gtZ8E7c5{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-3JZ4KtF3gtZ8E7c5 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .error-icon{fill:#552222;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .marker.cross{stroke:#333333;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 p{margin:0;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .cluster-label text{fill:#333;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .cluster-label span{color:#333;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .cluster-label span p{background-color:transparent;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .label text,#mermaid-svg-3JZ4KtF3gtZ8E7c5 span{fill:#333;color:#333;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .node rect,#mermaid-svg-3JZ4KtF3gtZ8E7c5 .node circle,#mermaid-svg-3JZ4KtF3gtZ8E7c5 .node ellipse,#mermaid-svg-3JZ4KtF3gtZ8E7c5 .node polygon,#mermaid-svg-3JZ4KtF3gtZ8E7c5 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .rough-node .label text,#mermaid-svg-3JZ4KtF3gtZ8E7c5 .node .label text,#mermaid-svg-3JZ4KtF3gtZ8E7c5 .image-shape .label,#mermaid-svg-3JZ4KtF3gtZ8E7c5 .icon-shape .label{text-anchor:middle;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .rough-node .label,#mermaid-svg-3JZ4KtF3gtZ8E7c5 .node .label,#mermaid-svg-3JZ4KtF3gtZ8E7c5 .image-shape .label,#mermaid-svg-3JZ4KtF3gtZ8E7c5 .icon-shape .label{text-align:center;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .node.clickable{cursor:pointer;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .arrowheadPath{fill:#333333;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .cluster text{fill:#333;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .cluster span{color:#333;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 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-3JZ4KtF3gtZ8E7c5 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 rect.text{fill:none;stroke-width:0;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .icon-shape,#mermaid-svg-3JZ4KtF3gtZ8E7c5 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .icon-shape p,#mermaid-svg-3JZ4KtF3gtZ8E7c5 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .icon-shape rect,#mermaid-svg-3JZ4KtF3gtZ8E7c5 .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-3JZ4KtF3gtZ8E7c5 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Reasoning Layer
推理层
事实推导
生成摘要
生成Peer卡
Dreaming
Honcho数据模型
Workspace

顶级隔离容器
Peer: 用户Alice
Peer: 客服Agent
Peer: 分析Agent
Session: 对话1
Session: 对话2

Honcho 在 Agent 使用中提供两大核心功能

  1. 辩证分析------不仅记录用户所言,更能推断其未明说的偏好甚至言行矛盾之处,从而构建更深入的用户画像。

  2. 推理层(Reasoning Layer) ------持续处理接入数据,进行事实推导、生成摘要、生成 Peer 卡(一段关于该 Peer 的紧凑描述),暴露给 Agent 作为上下文。

Honcho 的 Dreaming 功能可以基于已接入的消息自动生成新的事实和见解,相当于 Agent 的"潜意识思考"。


3. Hermes 如何实现全自动 Harness

对比手动 Harness 与 Hermes 的五大组件,差异一目了然:

组件 手动 Harness Hermes 全自动方案
指令层 人工编写 AGENTS.md 内置工具权限 + 沙箱
约束层 手动配置高危命令列表 47 条危险命令规则 + 持续更新的威胁建模
反馈层 人工审查日志 自改进学习循环(任务完成后自动复盘)
记忆层 手动维护知识库 三层记忆(会话/持久/Skill)+ FTS5 全文检索
编排层 自建多 Agent 流水线 子 Agent 委派 + cron 定时调度

左边的"手工活"需要深耕工程经验才能搭建起来;右边的 Hermes 则是开箱即用,装好就能跑。这才是它能够在两个月内接棒 OpenClaw 的核心原因。


4. 与 OpenClaw 深度对比:连接型 vs 进化型

OpenClaw 与 Hermes 代表两种截然不同的技术哲学:前者以"连接一切"为设计目标,后者聚焦于"自主进化"。

对比维度 OpenClaw(连接型/手动 Harness) Hermes(进化型/全自动 Harness)
核心哲学 全能助手,插件生态 自我进化,越用越强
记忆能力 无状态,需手动配置四层文件 三层持久记忆,全自动
技能管理 用户手动安装/编写 Skill Agent 自动从经验中创建 + 自动进化
学习方式 不学习 内置闭环学习系统
插件生态 数千个(ClawHub) 较少,但官方 40+ 工具 + MCP 协议可扩展
部署门槛 中等 极低(5 美元 VPS)
迭代成本 高(依赖人工编写配置) 低(自动化闭环)
适用场景 一次性任务、多平台集成 长期使用、个性化需求
安全机制 外部规则配置 内置 47 条危险命令规则 + 持续进化
用户画像 Honcho 深度建模,辩证分析

OpenClaw 更像一个"配置即行为"系统------你写 SOUL.md,它按你的配置调整。记忆系统确实完善(Daily Logs + MEMORY.md + 语义搜索),Skill 生态也庞大,但核心依赖人工编写和维护。

Hermes 则把复杂度和维护成本转移到系统内部,让用户在无需手动干预的情况下获得更好的使用体验。

一个关键洞察 :其实 Hermes 和 OpenClaw 的基础功能高度重合 ------定时调度、子 Agent 委派、浏览器自动化、20+ 平台消息集成,两边全都有。唯一真正的底层结构差异就是 Skill 的自动进化闭环。恰恰是这一个差异,精准踩中了"干预递减"的自动化趋势,为 Agent 向"伙伴"进化抢占了关键生态位。


5. 一张图看懂 Hermes 进化之路

#mermaid-svg-TOs5bhJZ7tvuuyIb{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-TOs5bhJZ7tvuuyIb .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-TOs5bhJZ7tvuuyIb .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-TOs5bhJZ7tvuuyIb .error-icon{fill:#552222;}#mermaid-svg-TOs5bhJZ7tvuuyIb .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-TOs5bhJZ7tvuuyIb .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-TOs5bhJZ7tvuuyIb .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-TOs5bhJZ7tvuuyIb .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-TOs5bhJZ7tvuuyIb .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-TOs5bhJZ7tvuuyIb .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-TOs5bhJZ7tvuuyIb .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-TOs5bhJZ7tvuuyIb .marker{fill:#333333;stroke:#333333;}#mermaid-svg-TOs5bhJZ7tvuuyIb .marker.cross{stroke:#333333;}#mermaid-svg-TOs5bhJZ7tvuuyIb svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-TOs5bhJZ7tvuuyIb p{margin:0;}#mermaid-svg-TOs5bhJZ7tvuuyIb .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-TOs5bhJZ7tvuuyIb .cluster-label text{fill:#333;}#mermaid-svg-TOs5bhJZ7tvuuyIb .cluster-label span{color:#333;}#mermaid-svg-TOs5bhJZ7tvuuyIb .cluster-label span p{background-color:transparent;}#mermaid-svg-TOs5bhJZ7tvuuyIb .label text,#mermaid-svg-TOs5bhJZ7tvuuyIb span{fill:#333;color:#333;}#mermaid-svg-TOs5bhJZ7tvuuyIb .node rect,#mermaid-svg-TOs5bhJZ7tvuuyIb .node circle,#mermaid-svg-TOs5bhJZ7tvuuyIb .node ellipse,#mermaid-svg-TOs5bhJZ7tvuuyIb .node polygon,#mermaid-svg-TOs5bhJZ7tvuuyIb .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-TOs5bhJZ7tvuuyIb .rough-node .label text,#mermaid-svg-TOs5bhJZ7tvuuyIb .node .label text,#mermaid-svg-TOs5bhJZ7tvuuyIb .image-shape .label,#mermaid-svg-TOs5bhJZ7tvuuyIb .icon-shape .label{text-anchor:middle;}#mermaid-svg-TOs5bhJZ7tvuuyIb .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-TOs5bhJZ7tvuuyIb .rough-node .label,#mermaid-svg-TOs5bhJZ7tvuuyIb .node .label,#mermaid-svg-TOs5bhJZ7tvuuyIb .image-shape .label,#mermaid-svg-TOs5bhJZ7tvuuyIb .icon-shape .label{text-align:center;}#mermaid-svg-TOs5bhJZ7tvuuyIb .node.clickable{cursor:pointer;}#mermaid-svg-TOs5bhJZ7tvuuyIb .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-TOs5bhJZ7tvuuyIb .arrowheadPath{fill:#333333;}#mermaid-svg-TOs5bhJZ7tvuuyIb .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-TOs5bhJZ7tvuuyIb .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-TOs5bhJZ7tvuuyIb .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-TOs5bhJZ7tvuuyIb .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-TOs5bhJZ7tvuuyIb .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-TOs5bhJZ7tvuuyIb .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-TOs5bhJZ7tvuuyIb .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-TOs5bhJZ7tvuuyIb .cluster text{fill:#333;}#mermaid-svg-TOs5bhJZ7tvuuyIb .cluster span{color:#333;}#mermaid-svg-TOs5bhJZ7tvuuyIb 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-TOs5bhJZ7tvuuyIb .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-TOs5bhJZ7tvuuyIb rect.text{fill:none;stroke-width:0;}#mermaid-svg-TOs5bhJZ7tvuuyIb .icon-shape,#mermaid-svg-TOs5bhJZ7tvuuyIb .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-TOs5bhJZ7tvuuyIb .icon-shape p,#mermaid-svg-TOs5bhJZ7tvuuyIb .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-TOs5bhJZ7tvuuyIb .icon-shape rect,#mermaid-svg-TOs5bhJZ7tvuuyIb .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-TOs5bhJZ7tvuuyIb .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-TOs5bhJZ7tvuuyIb .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-TOs5bhJZ7tvuuyIb :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 第四代: 全自动Harness
第三代: 手动Harness
第二代: 上下文工程
第一代: 提示词工程
信息更丰富
增加行为约束
自动化闭环
手工编写 Prompt

单轮被动响应
RAG检索 + 上下文压缩

但无行为约束
OpenClaw

配置即行为

人工编写知识库/Skill
Hermes

自主学习 + 自动进化

三层记忆 + Honcho建模

Hermes 的演进并非凭空出现,而是 AI 工程化从"单点优化"向"系统设计"层层递进的必然产物。它不改变模型能力本身,却能让模型的智能从"不可控的天赋"转化为"可落地的生产力"。

LangChain 的实验极具说服力:不更换模型,仅优化 Harness 部分,编码基准测试排名就从 30 名开外冲进前 5。Harness Engineering 让"用好模型的能力"比"提高模型的能力"更加重要。


6. 生产级部署与最佳实践

6.1 快速部署(本地/Docker)

本地直接部署
bash 复制代码
# 1. 安装 Hermes
pip install hermes-agent

# 2. 初始化配置
hermes init

# 3. 设置 API Key
export OPENAI_API_KEY="your-key"
export ANTHROPIC_API_KEY="your-key"

# 4. 启动 Agent
hermes run
Docker 部署(推荐生产环境)
yaml 复制代码
# docker-compose.yml
version: '3.8'
services:
  hermes:
    image: nousresearch/hermes-agent:latest
    container_name: hermes
    ports:
      - "18789:18789"
    volumes:
      - ~/.hermes:/root/.hermes          # 配置 + 技能 + 记忆
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - OPENAI_API_KEY=${OPENAI_API_KEY}
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      - HERMES_LOG_LEVEL=info
    restart: unless-stopped

6.2 安全沙箱配置:47 条危险命令规则

Hermes 的安全设计不是静态规则集,而是一套持续演化的威胁建模。截至 v0.11.0,tools/approval.py 内置了 47 条危险命令检测规则(v0.8.0 时仅为 33 条,半个月净增 14 条)。

部分核心规则示例:

类别 检测模式 处理方式
删除根目录 rm -rf / 阻断 + 审批
提权操作 sudo, su, chmod 777 阻断
数据库破坏 DROP TABLE, TRUNCATE 阻断
管道执行 ` sh, curl
磁盘填满 dd if=/dev/zero 阻断
Fork 炸弹 `:(){ : :& };:`
内网扫描 nmap, masscan 需审批
配置文件示例
yaml 复制代码
# ~/.hermes/config.yaml
security:
  sandbox:
    enabled: true
    type: docker
    workspaceAccess: ro                    # 只读工作区
    maxCommandsPerMinute: 10
    timeoutSeconds: 30
  
  approval:
    requireUserApproval: true              # 所有高风险命令需审批
    dangerousPatterns: |
      - "rm\\s+-rf\\s+"
      - "DROP\\s+(TABLE|DATABASE)"
      - "sudo"
      - "chmod\\s+777"
      - "\\|\\s*sh|curl.*\\|.*bash"
      - "dd\\s+if=/dev/zero"
      - "\\bnmap\\b"

6.3 三层记忆配置

yaml 复制代码
# ~/.hermes/config.yaml
memory:
  # 会话记忆
  session:
    backend: sqlite
    dbPath: ~/.hermes/session.db
    fts5Enabled: true
    maxTurnsPerSession: 50
  
  # 持久记忆(向量数据库)
  persistent:
    backend: chromadb
    path: ~/.hermes/persistent
    embeddingModel: all-MiniLM-L6-v2
  
  # 技能记忆
  skill:
    path: ~/.hermes/skills
    autoLearnEnabled: true
    minToolCallsToCreateSkill: 5
    skillVersionControl: git

6.4 自改进开关与安全边界

yaml 复制代码
# ~/.hermes/config.yaml
evolution:
  enabled: true
  
  # 自改进触发条件
  triggers:
    failureRateThreshold: 0.1          # 失败率 >10% 触发
    userFeedbackThreshold: 2           # 低分反馈 ≥2 次触发
    autoSkillCreation: true            # 自动创建 Skill
    autoSkillEvolution: true           # 自动进化 Skill
  
  # 安全边界------AI 不可修改的区域
  immutableConfigs:
    - "security.sandbox.*"             # 沙箱配置
    - "security.approval.dangerousPatterns"  # 危险命令规则
    - "evolution.immutableConfigs"     # 边界配置本身
    - "multiTenancy.isolationMode"     # 多租户隔离
  
  # 可修改但需审批的区域
  requireApprovalFor:
    - "memory.persistent.embeddingModel"
    - "tools.whitelist.*"
  
  # 熔断机制
  circuitBreaker:
    enabled: true
    maxFailedImprovements: 3           # 连续失败 3 次后熔断
    cooldownMinutes: 30                # 熔断冷却时间

7. 总结与展望

Hermes 的出现标志着 AI Agent 从"工具"进化为"数字同事"的里程碑。通过学习循环 + 三层记忆 + Honcho 建模三位一体的全自动架构,它让"越用越强"从口号变成了现实。

维度 核心能力 与 OpenClaw 的差异
学习循环 五环节自我改进飞轮 OpenClaw 无自动学习
三层记忆 会话 + 持久 + Skill OpenClaw 需手动配置
Honcho 建模 辩证用户画像 + 推理层 OpenClaw 无此能力
全自动 Harness 五大组件自动运转 OpenClaw 靠人工配置
安全机制 47 条规则 + 持续演化 OpenClaw 靠外部规则

未来的演进方向

  • 更激进的 RL 路径:在自动 Skill 生成之外,Hermes 还支持通过强化学习从根本上改变模型能力(两条升级路径并行);
  • 联邦自进化:多个 Hermes 实例共享进化经验;
  • 自改进边界扩展:在安全可控前提下扩大 AI 可自主优化的范围。

给开发者的选择建议

  • 追求极致的自动化和长期使用体验:选 Hermes;
  • 追求极致的生态广度和一次性任务效率:选 OpenClaw;
  • 两者并非替代关系,而是层层递进,共同构成了 AI Agent 的完整生态组合。

参考资料

  1. Hermes Agent 官方文档
  2. Honcho 官方文档
  3. Hermes Agent vs OpenClaw:AI Agent 框架的「开源之王」与「硅谷新星」
  4. Hermes Agent 技术全解析:构建自主进化的智能体系统
  5. 自主进化型 AI Agent 全解析:Hermes Agent 技术架构与实践指南
  6. Hermes Agent 安全架构深度拆解:47 条危险命令规则
  7. 深度拆解 HermesAgent(五):记忆系统与用户建模

版权声明:本文为 CSDN 博主原创,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

如果觉得本文对你有帮助,请点赞、收藏、关注,支持后续更多干货!

相关推荐
li星野1 小时前
LLMLingua:用小型模型“剪枝”大语言模型提示词,让长文本不再昂贵
人工智能·python·学习·语言模型·剪枝
三行数学1 小时前
AI4Math 综述:人工智能如何重塑数学研究
人工智能
MR.欻1 小时前
ZLMediaKit 源码分析(四):RTP/RTCP 协议栈实现分析
c++·人工智能·vscode·ffmpeg·音视频
人月神话-Lee1 小时前
【图像处理】Core Image 与 GPU 渲染管线——让滤镜飞起来
图像处理·人工智能·ios·chatgpt·ai编程·swift·gpu
石工记1 小时前
CTO如何落地AI?从0到1的实战路径
人工智能·python·django·flask·numpy·pandas·pyqt
云天AI实战派1 小时前
跨境出海全流程实战:用 Medusa + Hyperswitch + ClickHouse 搭建落地页、支付订阅、客服工单与多语言 SEO 闭环
大数据·人工智能·clickhouse·独立开发·跨境出海·medusa
向量引擎1 小时前
向量引擎技术文档给我的创作启发:AI搜索生态下的内容适配实践
人工智能·gpt·ai编程·ai写作·key
程序大视界2 小时前
2026年AI大模型三足鼎立:ChatGPT、Claude、Gemini终极对比与选型指南
人工智能·chatgpt
DS随心转APP2 小时前
AI 一键导出 Word 与 Excel 实战应用指南
人工智能·ai·word·excel·deepseek·ai导出鸭