01 · Hermes Agent 是什么
理解 Hermes Agent 的定位:CLI/TUI、provider、工具、记忆、skills、Gateway、terminal backends 和自动化组成的开源 agent runtime。
Hermes Agent 不只是一个聊天 CLI,也不只是另一个 coding agent(编程代理)。它更像 Nous Research 做的开源 agent runtime(代理运行时)——把模型、工具、记忆、skills(技能)、消息网关、终端后端、后台任务和自动化放到同一套运行系统里。
官方资料:Hermes Agent Docs、GitHub README、llms.txt。
先给结论:如果只想一次性改代码,Claude Code、Codex 或 Cursor 可能更直接;如果想要跨 session、跨平台、带记忆和技能沉淀的长期个人 agent,Hermes 的设计才开始有意义。
先分清四类工具
聊天 CLI
解决本轮问答,通常不强调长期运行、消息平台和自动化。
Coding Agent
重点是读代码、改代码、跑测试、发 PR。
消息 Bot
重点是从 Telegram、Discord、Slack、Email 等平台接任务。
Agent Runtime
把模型、工具、记忆、skills、消息入口、权限和后台任务组织到一起。
Hermes 更接近第四类。它可以写代码,但目标不止写代码;它可以接聊天平台,但也不是普通 bot。
最小心智模型
可以把 Hermes 拆成七层:
flowchart TB
Entry["① 入口层<br/>CLI / TUI / Gateway / API Server"]:::io
Model["② 模型层<br/>provider / model / context / fallback"]:::io
Context["③ 上下文层<br/>SOUL.md / context files / sessions"]:::cap
Tools["④ 工具层<br/>web / file / terminal / browser / MCP / delegation"]:::cap
Runtime["⑤ 执行层<br/>local / docker / ssh / singularity / modal / daytona / vercel_sandbox"]:::cap
Memory["⑥ 记忆层<br/>MEMORY.md / USER.md / session_search / providers"]:::pers
Skills["⑦ 能力沉淀<br/>skills / slash commands / agent-managed skills"]:::pers
Governance["⑧ 治理层<br/>allowlist / approvals / logs / config / backend 隔离"]:::gov
Entry --> Model --> Context --> Tools --> Runtime --> Memory --> Skills --> Governance
classDef io fill:#e6f0ff,stroke:#3568d4,color:#222
classDef cap fill:#fde7c2,stroke:#d4761a,color:#222
classDef pers fill:#e8f5e9,stroke:#43a047,color:#222
classDef gov fill:#fde2e2,stroke:#c43d3d,color:#222
四色分组(蓝 = 信任域 / 橙 = 能力域 / 绿 = 持久化域 / 红 = 治理边界)。下面是逐层文字版:
七层各自负责什么:
| 层 | 解决的问题 | 典型出错点 |
|---|---|---|
| 入口层 | 任务从哪来——CLI 终端命令 / TUI(Terminal UI 文本界面)/ Gateway 聊天平台 / API Server 程序调用 | 多入口不收敛,导致权限边界混乱 |
| 模型层 | 用哪个 LLM、上下文多大、失败时回退到谁 | 没设 fallback(备用模型)线上一停服全瘫 |
| 上下文层 | 每次会话给模型看什么——~/SOUL.md(全局人格 / 默认语气) + AGENTS.md/CLAUDE.md/.hermes.md(项目级规则) + sessions(会话状态) | 上下文文件越塞越大,token 用量暴涨;SOUL 与项目规则边界不清会冲突 |
| 工具层 | 模型能调哪些动作——读写文件、跑终端、控浏览器、调用 MCP、把任务委派(delegation)给子代理 | 工具默认全开 = 风险面失控 |
| 执行层 | 命令在哪里跑——本机 / Docker / SSH 远端 / 云端 sandbox(隔离沙箱) | 没隔离时模型可能改到生产环境 |
| 记忆层 | 跨会话记住什么——MEMORY.md 长期事实 / USER.md 用户偏好 / session_search 历史回看 | 记忆膨胀或敏感信息泄露 |
| 能力沉淀 | 重复流程怎么固化——把成功流程写成 skill(技能包),由 agent 自己调用或手动 / | skill 描述模糊,agent 误触发 |
| 治理层 | allowlist(白名单)、approvals(审批)、日志、配置、backend(后端)隔离——把上面六层的风险压住 | 治理空缺时,能力越多事故越大 |
使用 Hermes 时,不要只问"它会不会写代码"。更重要的问题是:
- 它会记住什么?
- 它能调用哪些工具?
- 它从哪里接收任务?
- 它在哪里执行命令?
- 它能不能后台运行?
- 它失败后有什么日志和停止方式?
和普通 coding agent 的差异
Claude Code、Codex、Cursor、Windsurf 更强调“围绕项目完成开发任务”。Hermes 的关注面更宽:
- 可以作为本地 CLI / TUI assistant(终端助手)。
- 可以接 Telegram、Discord、Slack、WhatsApp、Signal、Email、Matrix、Mattermost、DingTalk(钉钉)、Feishu(飞书)、WeCom(企业微信)、Microsoft Teams 等 15+ 平台。
- 可以用
MEMORY.md、USER.md和session_search(会话检索工具)做跨 session 记忆。 - 可以把流程沉淀成 agentskills.io 兼容的 skills(可复用技能包)。
- 可以通过 cron(定时任务)、background session(后台会话)、delegation(子代理委派)和 hooks(生命周期钩子)做自动化。
- 可以把 terminal 命令放到 local(本机)、Docker(容器)、SSH(远程主机)或云 sandbox(云端隔离沙箱)。
这也意味着 Hermes 的风险面更大。能力越多,越需要明确 provider(推理服务商)、toolsets(工具集)、backend(执行后端)、allowlist(允许名单)和 secret(密钥)边界。
自我改进到底是什么
官方 Hero 把 Hermes 描述为「The only agent with a built-in learning loop」——带内建学习循环的自我改进代理。落到工程机制上,主要不是"模型权重自己变强"(那是 RL training 的事),而是这几类持久化能力叠加:
- Memory(长期记忆):保存长期偏好、环境事实、项目约定,跨 session 复用。
- Session search(会话检索):通过 FTS5 全文索引 + LLM 摘要,回看过去讨论过的内容。
- Skills(技能):把成功流程沉淀成 markdown 知识包,下次任务相似时自动套用——agent 还会自己创建新 skill(agent-created skills)。
- Curator(技能策展):后台维护代理自建 skill 的使用率、新鲜度、归档与 LLM 驱动的复审。
- Gateway(消息网关):跨平台(Telegram / Slack / DingTalk 等)持续接收任务。
- Cron / background(定时与后台):周期或异步执行任务。
- Terminal backend(终端后端):把命令执行环境从本机扩展到 Docker、远端 SSH 或云端 sandbox。
- Honcho dialectic user modeling(Honcho 辩证式用户建模):可选的 AI 原生用户建模插件,跨多 agent 形成对话式用户画像。
这些机制叠起来,Hermes 才不只是「每次从零开始聊天」——它在跨次使用中主动积累事实、流程、个人模型。官方原话叫 "gets more capable the longer it runs"(运行时间越长,能力越强)。
什么时候适合用
适合:
- 你希望 agent 跨 session 记住偏好和环境。
- 你希望从手机、聊天平台、邮件或 webhook 触发任务。
- 你有重复流程,想沉淀成 skill。
- 你需要定时检查、后台研究、自动报告或消息投递。
- 你愿意认真治理密钥、工具权限、消息入口和日志。
不适合:
- 只是偶尔问答。
- 只想一次性改一个小文件。
- 不准备管理 API key(API 密钥)、bot token(机器人凭据)、allowlist(允许名单)、backend(执行后端)和 toolsets(工具集)。
- 不清楚自动化失败后谁负责处理。
- 团队没有能力审查外部 skills、MCP 和脚本。
学习顺序
第一次学习 Hermes,顺序应该是:
定位 → 安装 → provider(模型供应商)→ first chat(首次对话)
→ session resume(恢复会话)→ config(配置)→ tools(工具)
→ memory(记忆)→ skills(技能)→ gateway(消息网关)→ automation(自动化)不要从 Gateway、cron(定时任务)或 RL training(强化学习训练)开始——那会把最容易出错的权限、会话和自动化问题堆在一起。先把基础链路跑通,再往上加。
官方资料
- Hermes Agent Docs(功能、配置、provider、Gateway 全部以此为准)
- Hermes Agent GitHub(README、源码、issue 跟踪)
- llms.txt(官方文档索引,方便快速定位)
- agentskills.io(Hermes skills 兼容的标准与社区)