单项目深读

hermes-agent:把 agent 的自我进化做成闭环

hermes-agent 是 Nous Research 用 Python 写的自改进 agent:内置学习闭环、七种终端后端、单网关接入六个消息平台,一条命令即可安装。

|INS-0002

大多数 agent 框架的终点是「能调用工具」。hermes-agent 的起点是「调用完之后,它记住了什么」。

这是 Nous Research 给自家 agent 划的差异线:README 第一句就写「the only agent with a built-in learning loop」——它从经验里生成 skill,在使用中改进 skill,主动提醒自己把知识落盘,还能检索自己过去的对话。换句话说,它把「记忆」当成一等公民,而不是上下文窗口里的一段临时文本。

这条线决定了它的架构长什么样。

一个 agent,两条入口,三层能力

先看它怎么被使用。Hermes 有两个入口:终端 TUI(hermes)和消息网关(hermes gateway)。两者共享同一套 slash 命令——/new、/model、/personality、/retry、/undo、/compress、/usage、/insights、/skills、/stop。这个设计很说明问题:agent 不是绑在某个终端会话上的进程,而是一个可以远程对话的服务。

按 README 的能力描述,可以把它拆成四层:

层核心组件职责
交互层终端 TUI、Messaging Gateway多行编辑、slash 命令补全、会话历史、中断并重定向、流式工具输出;Telegram/Discord/Slack/WhatsApp/Signal/Email 单一网关进程接入,支持语音备忘转写与跨平台会话延续
编排层主 agent、subagent、cron scheduler、RPC 工具调用派生隔离子 agent 并行处理工作流;用 Python 脚本通过 RPC 调工具,把多步流水线压成零上下文开销的回合;内置 cron 定时任务,自然语言描述即可投递到任意平台
学习层skill 生成与自改进、agent 策展记忆、FTS5 会话检索 + LLM 摘要、Honcho 用户建模复杂任务后自主创建 skill,使用中持续改进;周期性 nudges 促使知识持久化;跨会话召回;构建跨 session 的用户模型;兼容 agentskills.io 开放标准
执行层七种终端后端local、Docker、SSH、Singularity、Modal、Daytona、Vercel Sandbox;Modal 与 Daytona 提供 serverless 持久化,空闲时环境休眠、按需唤醒

请求的流转大致是:消息从 TUI 或网关进入 → 编排层决定是否需要派生 subagent 或触发工具 → 执行层把工具调用落到某个终端后端 → 学习层在任务结束后判断是否生成/更新 skill、是否写入记忆。

值得注意的是执行层的设计取向。七种后端不是凑数:local 和 Docker 覆盖日常,SSH 覆盖远程机器,Modal 与 Daytona 的 serverless 持久化让 agent 环境能在空闲时休眠、按需唤醒,README 明确说这可以跑在「$5 VPS、GPU 集群,或空闲时几乎不花钱的 serverless 基础设施」上。配合消息网关,「在 Telegram 里跟云端 VM 上的 agent 对话」是官方给出的标准场景。

装起来只要一行

Linux、macOS、WSL2:

bash
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

Windows 原生(PowerShell,不需要 WSL):

powershell
iex (irm https://hermes-agent.nousresearch.com/install.ps1)

装完之后:

bash
source ~/.bashrc # 或 source ~/.zshrc hermes # 开始对话

日常命令集中在 hermes 这一个入口下:

bash
hermes # 交互式 CLI,开始对话 hermes model # 选择 LLM provider 与模型 hermes tools # 配置启用哪些工具 hermes config set # 设置单项配置 hermes config get # 打印单项配置 hermes gateway # 启动消息网关(Telegram、Discord 等) hermes setup # 完整安装向导,一次配好所有东西 hermes claw migrate # 从 OpenClaw 迁移 hermes update # 更新到最新版本 hermes doctor # 诊断问题

模型侧不锁定供应商:Nous Portal、OpenRouter、OpenAI、自建 endpoint 都行,用 hermes model 切换,不改代码。如果不想分别收集模型、网页搜索、图像生成、TTS、云浏览器的五套 API key,可以用 hermes setup --portal 走 OAuth 登录 Nous Portal,一次订阅覆盖 300+ 模型和 Tool Gateway。README 强调 gateway 是 per-backend 的,不是全有或全无——你仍然可以按工具自带 key。

Windows 用户会遇到一个具体的坑:部分杀毒软件会把 Hermes 捆绑的 uv.exe(Astral 的 Rust Python 包管理器)误判为恶意软件。README 给了一段 PowerShell 验证流程——用 gh attestation verify 校验 uv 官方 release 的 attestation,再比对文件哈希。确认无误后,白名单要加文件夹而不是文件哈希,因为 Hermes 每次更新都会换掉 uv 的哈希。

它站在哪

把同主题的项目摆在一起,定位差异就清楚了:

项目语言星标(快照)定位
hermes-agentPython约 25.5 万自改进 agent:学习闭环 + 多平台网关 + 七种终端后端
ECCJavaScript约 27.7 万给 Claude Code、Codex、Cursor 加装 skills 与记忆层的性能优化系统
AutoGPTPython约 18.8 万面向所有人的 LLM 应用构建平台,任务拆解 + 工具调用 + 记忆串成 workflow
firecrawlTypeScript约 19.1 万网页抓取解析成 Markdown/JSON 的 API,给 agent 和 RAG 喂实时内容
ollamaGo约 18.3 万本地一条命令跑模型,CLI + SDK
prompts.chatHTML约 17.3 万社区 prompt 分享与自托管平台

ECC 和 hermes-agent 最接近,但方向相反:ECC 是给别人家的 agent 加装 skills 和记忆层,hermes-agent 是自己就是一个完整的 agent 运行时——TUI、网关、调度器、执行后端全在仓库里。AutoGPT 同样是 Python 的自主 agent,重心在「给一个目标,自己规划步骤」;hermes-agent 的重心在「任务做完之后,它有没有变强」。firecrawl 和 ollama 是上下游:一个供数据,一个供本地模型,都不是 agent 框架本身。

谁该看它

如果你的 agent 只需要在笔记本上跑一次任务,hermes-agent 的七种后端和 cron 调度是过剩的。但如果你的场景是「一个长期存在、从多个聊天窗口都能找到、会自己攒经验」的助手,它的设计是围绕这个场景长的:网关解决「在哪找到它」,serverless 后端解决「它住在哪」,学习闭环解决「它为什么越用越懂你」。

仓库用 MIT 许可,Python 编写,topics 里同时挂着 anthropic、openai、claude、codex——它不打算在模型层选边。

安装脚本会顺带拉起 Python 3.14、Node.js、npm、ripgrep、FFmpeg 和 Python 依赖;Android/Termux 走单独的签名 APT 仓库(stable 与 canary 两个 channel),不适用桌面/服务器安装脚本。这些细节 README 都写明了,说明它认真对待「跑在任何地方」这句话。