
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 调度。核心差异体现在以下几个维度:
| 维度 | OpenClaw | Hermes Agent |
|---|---|---|
| 语言 | TypeScript | Python |
| 出品方 | OpenClaw Team | Nous Research |
| 开源协议 | MIT | MIT |
| 定位 | 自托管 AI gateway + agent | 自我进化的个人 AI Agent |
| 渠道支持 | Telegram、Discord、Signal、WhatsApp 等 | Telegram、Discord、Slack、WhatsApp、Signal、Email 等 |
| Skill 系统 | Skills + ClawHub | Skills + agentskills.io |
| 记忆系统 | MEMORY.md + 向量搜索 | MEMORY.md + FTS5 全文搜索(Honcho 可选) |
| 自动化 | cron + heartbeat + ClawFlow | cron + 内置学习循环 |
| 子 Agent | sessions_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 来做。
整条链路如下:

具体流程:
- 在手机 Telegram 上发送一条消息
- 本地 OpenCode 收到指令,用 Terraform 在云上创建一台新 VM
- 云上 OpenClaw(也就是 Echo,我的个人助手) 收到指令,SSH 进入刚创建的 VM
- 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 持久化; 且根据源码 (L1131、L8075),只有主 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-creator | agent 自主判断 |
| 可见性 | 即时,当下可看到结果 | 延迟,需要在同一 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 计数 (源码 L1131、L8075)——短期体验很难看到效果,需要在同一 session 里积累足够的复杂任务。
两个工具并不互斥。我的使用思路是:OpenClaw 和 OpenCode 继续用 skill-creator 主动沉淀明确的工作流;Hermes 作为补充,跑在独立的 VM 上,负责那些 “反复做、懒得手动写 Skill”的任务,让它自己慢慢生长。
此外还有一个值得期待的特性没有在本文体现——Honcho 用户建模。Hermes 可选接入 Honcho 框架,通过对话持续推断用户的心智模型和认知偏好,形成「越用越懂你」的动态用户画像,远比静态的 USER.md 更有深度。这同样是一个需要长期使用才能显现效果的特性。
自我进化 + Honcho 用户建模,这两个特性都需要时间沉淀。后续会写一篇「Hermes 长期使用报告」,一并跟进体验,敬请期待。——-
封面图来自 Pexels,摄影师:Google DeepMind,遵循 Pexels 许可协议免费使用。



