znlgis 博客

GIS开发与技术分享

第一章:Hermes Agent 项目简介与核心理念

1.1 Hermes Agent 是什么

1.1.1 一句话介绍

Hermes Agent(以下简称 Hermes)是 Nous Research 出品的 开源、自学习的通用型 AI 智能体(self-improving AI agent)。它不是一个 IDE 插件,也不是某一个大模型的简单封装,而是一套完整的 Agent Harness:

「The self-improving AI agent built by Nous Research. It’s the only agent with a built-in learning loop — it creates skills from experience, improves them during use, nudges itself to persist knowledge, searches its own past conversations, and builds a deepening model of who you are across sessions.」

翻译过来就是:Hermes 是唯一内置完整学习闭环的开源 Agent——它会在使用过程中自主创建技能、改进技能、把重要事实写入持久化记忆、检索自己历史会话,并对你这个用户建立一份越来越精确的画像。它既能跑在 5 美元的 VPS 上,也能跑在 GPU 集群上,还能跑在 Daytona / Modal 这种空闲时几乎零成本的 Serverless 基础设施上;它不绑定你的笔记本——你可以一边在 Telegram 跟它聊天,一边让它在云端 VM 上为你干活。

许可证为 MIT,托管在 GitHub NousResearch/hermes-agent。官方文档站点为 hermes-agent.nousresearch.com/docs

1.1.2 项目定位与”它不是什么”

为了减少误解,先把 Hermes 不是什么列清楚:

  • 不是 IDE 插件:和 Cursor / Continue / Cline / Copilot 不同,Hermes 是一个独立运行的 Agent 进程,不依赖任何编辑器,CLI 与消息平台才是它的”主舞台”。
  • 不是某个大模型的官方客户端:虽然名字叫”Hermes”(与 Nous 训练的 Hermes 系列模型同名),但 Hermes Agent 本身与具体模型解耦,可以使用 200+ 模型,包括 Claude、GPT、Gemini、GLM、Kimi、MiniMax、DeepSeek、Qwen、Nemotron、Hermes、Llama 等。
  • 不是简单的”包一层 ChatCompletion”:Hermes 内部维护了完整的工具运行时(68 个内置工具,52 个 toolset)、会话存储(SQLite + FTS5)、上下文压缩、Prompt 缓存、Provider 故障切换、密钥池、技能系统、MCP 客户端、定时任务、消息网关等子系统,是一套真正的”Agent 操作系统”。
  • 不是只能在桌面跑的玩具:Hermes 设计目标是 服务化、远程化、长时运行——可以作为后台进程、Telegram bot、Discord bot、cron 调度器、HTTP API 服务、ACP IDE 后端、批处理 trajectory 生成器等多种形态运行。

而它是什么呢?官方 README 给出了七条最关键的特性:

  1. 真正的终端界面(A real terminal interface):完整的 TUI,多行编辑、斜杠命令自动补全、对话历史、随时打断/重定向、流式工具输出。
  2. 走到哪用到哪(Lives where you do):Telegram、Discord、Slack、WhatsApp、Signal、Matrix、Mattermost、Email、SMS、企业微信、飞书、钉钉、BlueBubbles、Home Assistant 等 15+ 平台共享同一个 Gateway 进程;语音消息可以转写;同一个对话可以跨平台延续。
  3. 闭环的学习能力(A closed learning loop):智能体自己策划记忆,定期”轻推”自己写入;复杂任务后自主创建技能;技能在使用中自我改进;FTS5 + LLM 摘要做跨会话检索;可选接入 Honcho 做辩证式用户建模;技能格式兼容 agentskills.io 开放标准。
  4. 内置定时调度(Scheduled automations):原生 cron 调度器,结果可投递到任意平台;每日报告、夜间备份、周度审计都可以用自然语言描述、无人值守运行。
  5. 任务委托与并行(Delegates and parallelizes):通过 delegate_task 启动多个隔离子代理并行工作;通过 execute_code 工具,模型可以写 Python 脚本通过 RPC 直接调用 Hermes 的工具集,把多步流水线压缩成一次推理。
  6. 跑在哪都行(Runs anywhere, not just your laptop):6 种终端后端——localdockersshdaytonasingularitymodal。Daytona 和 Modal 提供 Serverless 持久化:环境空闲时休眠、按需唤醒,几乎零成本。
  7. 研究就绪(Research-ready):批量轨迹生成、Atropos RL 环境、轨迹压缩,可以直接用于训练下一代工具调用模型。

1.2 为什么会有 Hermes:从”一次性 Copilot”到”长期共生体”

1.2.1 当前 Agent 工具的结构性问题

如果你仔细回顾过 Cursor / Cline / Claude Code / Copilot Chat / Aider 等主流编程 Agent,会发现它们普遍存在几个结构性问题:

  1. 强绑定 IDE 和某一个模型供应商:Cursor 强绑 Anthropic / OpenAI,Codex 绑 OpenAI,Copilot 绑 GitHub。一旦切换模型,体验和工具能力都在变化。
  2. 没有持久记忆:每个新会话都从零开始;上一次解决过的难题,这一次依然要重复解释一遍上下文。
  3. 学习不闭环:即便有”项目规则文件”或”prompt template”,它们都是用户手动维护的;模型自己不会从经验中沉淀技能、不会主动调整行为。
  4. 不能远程运行:你的 Agent 只能跑在打开 IDE 的那台电脑上,关掉电脑它就停了;想让它一边跑一边在手机上和你交互几乎不可能。
  5. 多平台体验割裂:在 IDE 里是一个 Agent,在 Telegram 里是另一个 bot,再在 Slack 里又是一个 webhook;它们彼此互不知情、不共享记忆。

Hermes 的设计就是从根上对这些问题做出回应。

1.2.2 Hermes 的核心理念:一个会成长的、真正属于你的 Agent

理解 Hermes 设计哲学,最关键的就是把它当成一个 “长期、跨设备、跨平台、会成长的助理”,而不是”一次性问答工具”。它的所有功能都围绕这一目标展开:

核心问题 Hermes 的回答
怎么记住我? 写入 MEMORY.md(环境/约定)和 USER.md(用户画像),每次启动注入系统提示;可选 Honcho 做更深层用户建模
怎么沉淀经验? 自主创建 Skill(一段可复用的”做某事的步骤说明”),保存到 ~/.hermes/skills/,下次匹配自动加载
怎么在不同地方都能用? Gateway 单进程同时驱动 15+ 消息平台;CLI / API 服务器 / ACP IDE 协议三个本地入口
怎么不被某个模型卡住? Provider 抽象 + Fallback 链 + Credential Pool;一行 hermes model 切换 200+ 模型
怎么不被某台机器卡住? 6 种 terminal backend,可在本地、容器、远端 SSH、Daytona、Modal、Singularity 跑命令
怎么主动干活? Cron 调度 + 自然语言任务:”每天早 9 点扫 Hacker News,发到我的 Telegram”
怎么和团队协作? Kanban 多 Profile 协同 + Webhook + ACP,多个命名 Agent 通过 SQLite 任务板共享状态

也就是说,Hermes 把”AI 助手”的边界从”我开 IDE 时它在线”扩展到了”我活着它就在线,跨设备、跨平台、跨上下文都记得”

1.2.3 与 OpenClaw / Claude Code / OpenCode 的关系

Hermes 的前身是 OpenClaw。Hermes 仓库内置 hermes claw migrate 命令:可以把 OpenClaw 的 SOUL.md、记忆(MEMORY.md/USER.md)、技能、API Key、命令白名单、TTS 资源、AGENTS.md 等一键迁移过来。

Hermes 与 Anthropic Claude Code、OpenCode(Hermes 的”姊妹项目”之一)走的是不同路线:Claude Code 紧贴 Claude,OpenCode 是个底层 CLI;而 Hermes 把”多模型 + 自学习 + 多平台 + 多后端”作为一等公民,更接近”agent 平台/runtime”。三者并不互斥——你完全可以用 Claude Code 写代码、用 Hermes 做长期助理、用 OpenCode 做命令行实验。

1.3 五大核心特性总览

虽然第二章会详细介绍架构,这里先把 Hermes 五大让人留下深刻印象的能力做个全景预览,让你心里有数。

1.3.1 自学习闭环(Closed Learning Loop)

这是 Hermes 区别于绝大多数 Agent 的关键。它包含 4 个互相啮合的组件:

  • Memory(持久记忆)memory 工具读写 ~/.hermes/memories/MEMORY.md(约 800 token,环境与约定)和 USER.md(约 500 token,用户画像)。系统提示在每次会话开始时把它们冻结成快照注入。
  • Skills(技能):智能体在完成复杂任务后,可以把可复用的步骤、注意事项、验证方式写成 SKILL.md,保存到 ~/.hermes/skills/<skill-name>/,下次同类问题自动唤起。
  • Session Search(会话检索):所有历史会话都存在 SQLite + FTS5 中;通过 session_search 工具,Agent 可以搜索”我上周怎么处理过 GraphQL schema 迁移的”。LLM 摘要会让结果更精炼。
  • Curator + Honcho(用户建模):Curator 子系统会定期”提示”Agent 整理记忆;Honcho 提供更高级的辩证式用户模型(dialectic user modeling),把用户画像维护得越来越准。

1.3.2 模型与运行环境双解耦

一行命令切换模型:

hermes model              # 进入交互式选择
hermes config set model anthropic/claude-opus-4.6
hermes config set model openrouter/openai/gpt-5

支持的供应商极其广泛(详见第五章):Nous Portal、OpenRouter、Anthropic、OpenAI/Codex、Z.AI/GLM、Kimi/Moonshot(含中国区)、MiniMax(含中国区)、Alibaba DashScope(Qwen)、HuggingFace、KiloCode、OpenCode Zen/Go、DeepSeek、NVIDIA NIM、GitHub Copilot、Vercel AI Gateway、自定义 OpenAI-Compatible 端点(vLLM、SGLang、Ollama、LMStudio)。

终端后端同样如此:你可以让 Hermes 在 local 跑命令,也可以让它在 docker 沙箱、ssh 远端、daytona 云开发环境、modal 无服务器函数、singularity HPC 容器中跑同一组工具。

1.3.3 多平台网关(Gateway)

hermes gateway start 启动一个进程,同时连接:Telegram、Discord、Slack、WhatsApp、Signal、Matrix、Mattermost、Email、SMS、企业微信、飞书、钉钉、QQ 机器人、Yuanbao、BlueBubbles、Webhooks、Open WebUI、Home Assistant 等。每个平台都有独立的 adapter,但共享同一个 Agent、同一份记忆、同一份技能。

国内开发者最关心的几条平台:WeCom(企业微信)、Feishu(飞书)、DingTalk(钉钉)、Weixin(个人微信,配合 HermesClaw 桥接)、QQ Bot、Yuanbao 都已经原生支持。

1.3.4 工具与子代理

Hermes 自带 68 个内置工具,按 toolset 组织(共 52 个 toolset):

  • 文件:read_filewrite_filepatchsearch_files
  • 终端:terminalprocess
  • Web:web_searchweb_extract
  • 浏览器:10 个 browser_* 工具,覆盖导航、点击、表单、视觉、截图等
  • 媒体:vision_analyzeimage_generatetext_to_speech
  • 智能编排:todoclarifyexecute_codedelegate_task
  • 记忆与检索:memorysession_search
  • 自动化与投递:cronjobsend_message
  • 集成:ha_*(Home Assistant)、动态 mcp-<server> 工具、rl_*(RL 训练)

delegate_task 让 Agent 可以并行启动多个子代理处理独立分支;execute_code 让模型直接写 Python 脚本通过 RPC 调用工具,把多步流水线压成一次推理(”Programmatic Tool Calling”)。

1.3.5 内置 Cron + Kanban + Webhook:自动化”操作系统”

  • Cron:用自然语言或标准 cron 表达式安排周期/一次性任务,结果投递到任意平台。
  • Kanban:基于 SQLite 的多 Profile 任务板。多个命名 Agent(dispatcher / researcher / writer / reviewer 等)可以通过任务板协作,每个任务都是一行可被人类和其它 Agent 读写的记录。
  • Webhook:Gateway 暴露 webhook 入口,你可以让 GitHub PR 触发”PR Review Agent”,让 Stripe 事件触发”客户告知 Agent”等。

1.4 Hermes 与同类项目的对比

维度 Cursor / Cline Claude Code Aider OpenAI ChatGPT Agents Hermes Agent
形态 IDE 插件 CLI / IDE CLI SaaS / GPT Store CLI + 多平台 Bot + API + ACP
模型自由度 较高 仅 Claude 较高 仅 OpenAI 极高(200+ 模型,6 大类供应商)
持久记忆 有限/项目规则 无原生 Memory(封闭) MEMORY.md + USER.md + Honcho
自创建技能 GPT 配置 SKILL.md,自动创建/改进
跨会话检索 部分 FTS5 + LLM 摘要
远程后端 云端但封闭 local/docker/ssh/daytona/modal/singularity
多消息平台 部分 15+ 原生平台 + 国内 IM
Cron 自动化 部分(Tasks) 原生 cron + Kanban + Webhook
子代理并行 部分 delegate_task + Kanban
协议互通 部分 MCP + ACP + agentskills.io
开源协议 闭源 闭源 Apache 闭源 MIT

可以看出:Hermes 的差异化竞争力不在”单点 IDE 体验”,而在”作为长期 Agent runtime 的整体性”。如果你的目标是:

  • 想用 任意大模型(包括国内 Kimi、MiniMax、GLM、DeepSeek)做一个 24/7 在线、跨平台、有记忆的助理;
  • 希望它自己沉淀经验,下次同类问题更聪明;
  • 希望它跑在云端,你的笔记本一关它依然在工作;
  • 希望它对接 IM / 邮件 / SMS / Webhook / Home Assistant / 企业微信 / 飞书
  • 同时还希望保留完整可控、可定制、开源 MIT 的底盘;

Hermes 几乎是目前唯一一个”全方位都能打”的选择。

1.5 学完本教程你能做到什么

本教程共 12 章,循序渐进。学完之后你应当能够:

  1. 理解 Hermes 的架构与核心组件,能根据需要在 CLI、Gateway、API、ACP、批处理等入口之间切换。
  2. 完成完整的安装与初始化:包括选择供应商、配置 API Key、调试 hermes doctor、迁移旧 OpenClaw。
  3. 熟练使用 CLI/TUI:所有重要的斜杠命令、键位、会话管理、checkpoint/rollback、profile 切换。
  4. 配置多模型与故障切换:理解 chat_completions / codex_responses / anthropic_messages 三种 API 模式,配 fallback 链、credential pool、provider routing。
  5. 管理工具与终端后端:按平台启用/禁用 toolset,让 Agent 在 docker / ssh / daytona / modal 中跑命令。
  6. 构建闭环学习:写记忆、读记忆、创建/启用/分享技能、管理 Skills Hub、用 session_search 检索过去。
  7. 接入 MCP:本地 stdio 与远程 HTTP MCP server 都能配,按 server 过滤工具。
  8. 搭建多平台 Gateway:上线 Telegram、Discord、Slack、企业微信、飞书、钉钉、Email、Webhook。
  9. 设计 Cron 自动化:每日简报机器人、GitHub PR Review Agent、定时巡检脚本。
  10. 使用语音、视觉、浏览器、子代理、Kanban:把 Hermes 当成一个”小型 ops 团队”。
  11. 写自己的 Plugin / Memory Provider / Context Engine / Platform Adapter,并把它打包分发。
  12. 结合批处理、Atropos RL、Trajectory Format 做模型训练数据生成:把 Hermes 用作研究工具。

1.6 学习前的准备

虽然每章都会从零讲起,但你最好具备以下基础:

  • 基本的 Linux / macOS shell 使用bashzsh、环境变量、cron 概念)。
  • 会装 Python 3.11(Hermes 默认通过 uv 自动装好;但理解虚拟环境会有帮助)。
  • 会读写 YAML 与 Markdown(配置文件 ~/.hermes/config.yaml 和技能 SKILL.md 都用这两种格式)。
  • 了解过任意一个 LLM 服务的 API Key 概念。
  • 不要求会 Python 或 Go:阅读源码、写插件、写 cronjob 时如果会 Python 会更轻松,但日常使用完全不用。

至于硬件:5 美元 VPS 即可跑起来;本地 macOS / Linux / WSL2 / Termux(Android 手机)都受支持。不支持 Windows 原生,请在 Windows 上用 WSL2。

1.7 本章小结

本章我们建立了对 Hermes Agent 的整体认知:

  • Hermes 是 Nous Research 出品的 MIT 协议、自学习、多模型、多平台、多后端 AI Agent
  • 它的核心理念是把”Agent”从”一次性问答工具”重塑为”长期共生的、跨设备记得你的助理”;
  • 它通过 Memory + Skills + Session Search + Honcho 构成 闭环学习
  • 它通过 Provider 抽象 + Terminal Backend 做到 模型与环境双解耦
  • 它通过 Gateway + Cron + Kanban + Webhook 做到 真正的自动化操作系统
  • 它的工具/技能/MCP 协议格式都遵循开放标准,便于团队共享和长期演进。

下一章,我们会把镜头拉近,看 Hermes 内部到底由哪些子系统组成,它们如何协同工作。