Agent 装 Agent:用 OpenClaw 安装 Hermes,顺手验证自我进化

Agent 装 Agent:用 OpenClaw 安装 Hermes,顺手验证自我进化

TL;DR:用 OpenClaw 全程操控远程 VM,从 Terraform 建机器到安装配置 Hermes Agent,并在实测中触发了自我进化,生成了一个高质量 Skill。

一、缘起

前几天,朋友向我安利了 Hermes Agent——由 Nous Research 出品的开源个人 AI 助手。他重点提到了一个特性:自我进化。agent 能在完成复杂任务后自动创建 Skill,在后续使用中持续迭代优化,形成一个闭合的学习循环。

这个概念让我想起了自己一直在做的事情。

我已经在多个 AI 工具中用 skill-creator skill 手动实现类似的目标——无论是 OpenClaw 这样的个人助手,还是 OpenCode 这样的 coding agent,都在用同一套方式:用户主动触发 Skill 的创建和修正,在使用过程中不断迭代,逐步提升 agent 的能力上限。我也研究过 HyperAgents,探索 agent 自我进化的可能性。

所以当朋友说“Hermes 能自动做这件事”时,我的第一反应不是兴奋,而是好奇:自动化和手动控制,哪种方式更有效?Hermes 的理念和我已经在做的事,差距到底有多大?

决定装一个试试。但怎么装?用我的 AI agent 来装另一个 AI agent——这才是正确的打开方式。

二、Hermes vs OpenClaw:先搞清楚值不值得装

在动手之前,先做个功课。

Hermes Agent 和 OpenClaw 的定位高度重叠——都是自托管的个人 AI 助手,都支持 Telegram/Discord 等多平台接入,都有 Skill 系统和 cron 调度。核心差异体现在以下几个维度:

维度OpenClawHermes Agent
语言TypeScriptPython
出品方OpenClaw TeamNous Research
开源协议MITMIT
定位自托管 AI gateway + agent自我进化的个人 AI Agent
渠道支持Telegram、Discord、Signal、WhatsApp 等Telegram、Discord、Slack、WhatsApp、Signal、Email 等
Skill 系统Skills + ClawHubSkills + agentskills.io
记忆系统MEMORY.md + 向量搜索MEMORY.md + FTS5 全文搜索(Honcho 可选)
自动化cron + heartbeat + ClawFlowcron + 内置学习循环
子 Agentsessions_spawn内置并行 subagent
RL 训练Atropos RL 环境

两者最本质的差异,在于对 Skill 的理解

OpenClaw 的 Skill 是人写的、静态的——你(或 skill-creator)写好 SKILL.md,agent 读取并执行。Skill 的质量取决于人的投入。

Hermes 的 Skill 是agent 写的、动态的——完成一个复杂任务后,agent 分析自己走过的路径,提炼成可复用的工作流,写入 ~/.hermes/skills/,下次遇到类似任务直接调用,并在使用中持续 patch 优化。

这个设计理念更接近人类的“经验积累”——不是背课本,而是从实战中总结方法论。

值得一试。

三、安装方式:一条 Agent 接力链

决定用和部署 OpenClaw 一样的方式来安装 Hermes——全程不手动敲命令,让 agent 来做。

整条链路如下:

mermaid

具体流程:

  1. 在手机 Telegram 上发送一条消息
  2. 本地 OpenCode 收到指令,用 Terraform 在云上创建一台新 VM
  3. 云上 OpenClaw(也就是 Echo,我的个人助手) 收到指令,SSH 进入刚创建的 VM
  4. Echo 全程操控这台 VM,完成 Hermes 的安装和配置

整个过程中,我没有打开终端,没有 SSH,没有手动执行任何命令。这不是噱头——这是 AI agent 作为基础设施自动化工具的真实使用场景。而且这套链路并非为这篇文章特意搭建,它就是我日常部署新服务的方式。

四、安装过程:踩了哪些坑

Echo 通过 SSH 连接到 VM 后,开始执行安装。Hermes 官方提供一键安装脚本:

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

听起来很简单,实际踩了三个坑。

坑一:安装脚本被 kill

脚本跑到一半就被 kill 了。原因是安装脚本默认会安装 Playwright Chromium——Hermes 的 browser 工具依赖,用于网页自动化 (截图、点击、抓取等)。Chromium 完整包约 170MB,下载过程中超时被强制中断。

这不是必须的依赖。如果不需要 browser 自动化功能,这一步完全可以跳过。脚本本身也做了 fallback 处理,Playwright 安装失败只会让 browser 工具不可用,不影响核心功能。

好在代码已经下载完成,手动修复 PATH 即可:

echo 'export PATH="$HOME/.hermes/hermes-agent/venv/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
hermes --version  # Hermes Agent v0.9.0

坑二:TUI 在非交互 SSH 里失效

运行 hermes model 选择模型时,TUI 界面的方向键完全失效——Echo 通过非交互 SSH 连接,终端不支持标准 ANSI 控制序列,光标无法移动。

绕过方式:直接修改配置文件。

# 在 ~/.hermes/config.yaml 中
model:
  provider: "copilot"
  default: "claude-sonnet-4.6"

GitHub Copilot 的 OAuth 授权需要在浏览器完成 device code flow,这一步确实需要人工介入——打开 https://github.com/login/device,输入 Echo 拿到的 6 位验证码,授权后继续。

坑三:SOUL.md 路径错

配置人格文件时,让 Hermes bot 帮我写入 SOUL.md。它把文件写到了 ~/.hermes/memories/SOUL.md——看起来合理,但实际上 Hermes 读取人格文件的路径是 ~/.hermes/SOUL.md

cp ~/.hermes/memories/SOUL.md ~/.hermes/SOUL.md
# hermes doctor 确认:
# ✓ ~/.hermes/SOUL.md exists (persona configured)

这三个坑都不算严重,绕过方式也很直接。但如果你是第一次安装,踩到第一个坑很容易以为安装失败了。

五、配置清单

安装完成后,还需要配置四个部分才能正常使用。

GitHub Copilot 授权

Hermes 支持多个主流模型 provider(OpenRouter、Anthropic、GitHub Copilot、DeepSeek、Gemini 等),我选择复用已有的 GitHub Copilot 订阅。

hermes model
# 选择 GitHub Copilot
# 选项 1:Login with GitHub(OAuth device code flow)

浏览器打开 https://github.com/login/device,输入终端显示的 6 位验证码,授权完成后 token 自动保存到 ~/.hermes/auth.json

SOUL.md:把 “灵魂” 迁移过来

Hermes 支持通过 ~/.hermes/SOUL.md 自定义 agent 人格,和 OpenClaw 的设计一模一样。我直接把 OpenClaw 的 SOUL.md 内容迁移过来,保持一致的语言偏好和行为准则——包括始终用中文回复、不说废话、有自己的观点等。

USER.md 同理,把用户背景、目标、Obsidian vault 路径等信息写入 ~/.hermes/memories/USER.md

Telegram Gateway

# 写入 ~/.hermes/.env
TELEGRAM_BOT_TOKEN=<BotFather 申请的 token>
TELEGRAM_ALLOWED_USERS=<你的 Telegram user ID>
TELEGRAM_HOME_CHANNEL=<你的 Telegram user ID>

# 注册 systemd service 并启动
hermes gateway install
hermes gateway start

安装时会自动启用 systemd linger,保证 VM 重启后 gateway 自动拉起,SSH 断开也不受影响。

hermes gateway status
# ✓ User gateway service is running
# ✓ Systemd linger is enabled (service survives logout)

Web 搜索:Tavily

Hermes 的 web 工具支持 Exa、Tavily、Firecrawl、Parallel 四个 provider,没有配置任何 key 时 web search 不可用。我选择 Tavily——专为 AI agent 设计,有 1000 次/月的免费额度,注册简单。

# 写入 ~/.hermes/.env
TAVILY_API_KEY=<your key>

hermes gateway restart

hermes doctor 检查结果显示核心功能全部就绪:Python 环境、SOUL.md、USER.md、Gateway 服务、systemd linger、terminal/file/web/vision/skills/browser/cronjob 工具均正常。Hermes 正式上线。

六、自我进化:预期 vs 现实

这是安装 Hermes 最核心的动机,也是最想验证的部分。

触发机制

根据文档和源码,自我进化的触发条件是:

  • 主 agent 完成一个调用了 5+ 个工具的复杂任务
  • 用户纠正了 agent 的做法
  • agent 走过弯路但找到了正确路径
  • 发现了一个非显然的工作流

config 中有一个 nudge 配置,控制提醒频率:

skills:
  creation_nudge_interval: 15  # 默认值:每累积 15 次 tool call,提醒 agent 考虑创建 Skill

为了加速验证,我临时调低到 5:

skills:
  creation_nudge_interval: 5

需要注意两点:nudge 计数器是单 session 内累积的,不跨 session 持久化; 且根据源码 (L1131L8075),只有主 agent loop 里的 tool call 才计数,subagent 的不算。

实测结果

在同一个 session 里连续让 Hermes 执行同类任务 (搜索云原生组件最新版本、整理 changelog 对比表) 累积到阈值后,任务完成后紧接着出现了:

💾 Skill 'tech-version-changelog-comparison' created.

生成的 Skill 内容超出预期——不是简单的操作步骤,而是包含了:

  • 核心流程:并行搜索的 goal 模板,包含关键约束 (排除 rc 版本、交叉验证来源)
  • 已知问题与经验教训:搜索出现版本不一致的原因分析和解决方案
  • 内容深度随次数增加的规律:总结出 “第一次搜索就应重点关注破坏性变更”
  • 完整的 Markdown 模板:表格结构、命名约定、中文总结框架

这个 Skill 不是在记录 “怎么用工具”,而是在沉淀踩过的坑和提炼出的方法论。完整 Skill 内容已发布到 GitHub Gist,可直接复用或作为参考。

两种设计理念的本质差异

OpenClaw(手动)Hermes(自动)
触发方式用户主动调用 skill-creatoragent 自主判断
可见性即时,当下可看到结果延迟,需要在同一 session 内累积
可控性高,人决定什么值得保存低,agent 决定
Skill 内容人写,质量取决于投入agent 从实战中提炼,包含真实踩坑经验
适合场景明确知道要沉淀什么长期使用,让 agent 自然生长

两种方式并不互斥。在 OpenClaw 和 OpenCode 里用 skill-creator 主动沉淀;Hermes 的自动化更适合那些你知道值得积累但懒得手动写的场景——用得够多,它自己会总结。

七、小结

用 AI agent 安装 AI agent,这件事本身就是一次有趣的实验。

安装体验方面,Hermes 比 OpenClaw 多踩了几个坑:Playwright 下载超时、TUI 在非交互 SSH 下失效、SOUL.md 路径错误。都不是大问题,但如果没有 agent 帮忙 debug,手动排查会花不少时间。

功能覆盖方面,两者高度重叠。渠道支持、Skill 系统、cron 调度、记忆机制……核心能力基本对齐。如果只是想要一个能在 Telegram 上用的个人助手,两者差距不大。

核心差异只有一个:Skill 的生命周期。OpenClaw 的 Skill 是人写的,静态的;Hermes 的 Skill 是 agent 从实战中自己写的,会迭代。这次实测生成的 tech-version-changelog-comparison Skill,不只是记录操作步骤,还把踩过的坑、数据来源的坑、每次搜索深度递进的规律全部沉淀进去——这是手动写 Skill 很难做到的质量。

当然,这个特性有一个隐藏前提:你得真的持续用它。nudge 计数器不跨 session 持久化,subagent 的 tool call 不计入主 agent 计数 (源码 L1131L8075)——短期体验很难看到效果,需要在同一 session 里积累足够的复杂任务。

两个工具并不互斥。我的使用思路是:OpenClaw 和 OpenCode 继续用 skill-creator 主动沉淀明确的工作流;Hermes 作为补充,跑在独立的 VM 上,负责那些 “反复做、懒得手动写 Skill”的任务,让它自己慢慢生长。

此外还有一个值得期待的特性没有在本文体现——Honcho 用户建模。Hermes 可选接入 Honcho 框架,通过对话持续推断用户的心智模型和认知偏好,形成「越用越懂你」的动态用户画像,远比静态的 USER.md 更有深度。这同样是一个需要长期使用才能显现效果的特性。

自我进化 + Honcho 用户建模,这两个特性都需要时间沉淀。后续会写一篇「Hermes 长期使用报告」,一并跟进体验,敬请期待。——-

封面图来自 Pexels,摄影师:Google DeepMind,遵循 Pexels 许可协议免费使用。

(转载本站文章请注明作者和出处乱世浮生,请勿用于任何商业用途)

comments powered by Disqus