AI 深度解析

Hermes Agent 指南:与你共同成长的开源 AI 智能体

Hermes Agent 是 Nous Research 的一次尝试,旨在构建一个持久的个人智能体,而非另一个一次性聊天窗口。它将终端 UI、消息网关、持久化记忆、开放标准技能、cron、MCP 以及多个执行后端整合到一个技术栈中。我们深入研究了仓库、文档网站、架构说明和问题追踪器,以了解哪些功能已经落地、哪些具有差异化优势,以及哪些地方仍有待完善。

Hermes 官方网站对该产品的描述非常犀利:它 不是 绑定到 IDE 的编程副驾驶,且 不是 围绕单一供应商构建的薄壳聊天机器人。其核心理念是一个安装在机器上的持久化智能体,你可以将其连接到首选的模型栈,并通过 CLI 或消息应用与之交流,而它会随着时间的推移在同一环境中持续工作。这比大多数开源智能体项目的定义更具野心。

🎬 观看视频概览

更喜欢阅读文字?下方的完整文章详细分析了 Hermes Agent 的架构、技能、记忆模型以及权衡取舍。

Get the latest on AI, LLMs & developer tools

New MCP servers, model updates, and guides like this one — delivered weekly.

1. 为什么它很重要

Hermes 之所以重要,是因为它直击智能体工具中最令人沮丧的痛点之一: 无状态性。大多数 AI 编程工具仅擅长处理单一会话、单一编辑器、单一提示词、单一供应商以及单一机器。Hermes 的构建基于一个不同的假设:真正有用的智能体应该是能够长期存在、积累工作知识,并能从多个界面访问的。

这就是为什么它的发布定位能引起共鸣。Nous Research's 在 X 上的公开公告将 Hermes 介绍为 “与你共同成长的开源智能体,” 官方文档也重申了同样的论点:持久化记忆、可重用技能、定时任务、远程执行和消息连续性是其核心价值主张,而非后期强加的额外功能。

为什么这个仓库能脱颖而出

Hermes 的流行并非因为它承诺了更好的提示词,而是因为它将持久化智能体模型打包在了一起:在单个开源技术栈中集成了记忆、技能、网关、cron、MCP 以及更安全的执行后端。这比 “AI 编程助手” 的定位宏大得多,也是为什么开发者开始将其视为完整的智能体基础设施层,而非单一工具。

2. Hermes 究竟是什么

根据 GitHub 仓库 以及 官方网站,Hermes 是由 Nous Research 开发的采用 MIT 许可证的智能体框架,可以运行在本地、VPS 或容器化及云端支持的执行环境中。

快速入门文档还提到了另一个重点:Hermes 是 模型无关的。文档中支持的供应商列表涵盖了 Nous Portal、OpenAI Codex、Anthropic、OpenRouter、DeepSeek、GitHub Copilot、通过 OAuth 接入的 Gemini、自定义 OpenAI 兼容端点等。切换供应商被视为一种配置,而不是产品的分支。

在架构上,它也表现出对大上下文模型的强烈偏好。快速入门警告称,Hermes 至少需要 64K 的上下文窗口,因为它专为多步工具调用工作流、持久化上下文以及比简单的自动补全式智能体更长的任务周期而设计。

层级实际意义
CLI / TUI经典的终端模式,加上用于长时间交互会话的新型 TUI。
网关单个进程即可将 Hermes 桥接到 Telegram、Discord、Slack、WhatsApp、Signal、Email 以及其他平台。
执行命令可以在本地运行,也可以通过 Docker、SSH、Modal、Daytona 和 Singularity 风格的后端运行。
扩展MCP 支持、插件、内置技能、可选技能,以及通过 ACP 实现的编辑器集成。

这是核心心智模型的转变:Hermes 不仅仅是一个围绕工具构建的聊天 UI。它是一个 面向智能体的有状态运行时 只是恰好将聊天作为其交互界面。

3. 工作原理

官方架构文档在这里表现得异常透明。Hermes 将多个入口点路由到一个共享的 AIAgent 核心:CLI、网关、ACP、批量运行器和 API 服务器都汇入同一个编排循环。该循环负责协调 Prompt 构建、提供商解析、工具调度、压缩和持久化。

架构页面还展示了为什么 Hermes 比许多竞争对手感觉更宽泛。Prompt 组装不仅仅是一个系统 Prompt 字符串。它层叠了性格文件、记忆文件、技能、项目上下文文件,例如 AGENTS.md、特定于模型的指令以及工具使用指南。会话数据存储在带有 FTS5 的 SQLite 中,而网关会话和智能体状态则跨界面进行跟踪。

底层原理图解

Hermes 文档描述了一个围绕以下内容构建的技术栈:

  • AIAgent 作为核心对话循环
  • prompt_builder.py 用于系统提示词(system prompt)组装
  • runtime_provider.py 用于模型/提供商(provider)选择
  • registry.py 以及用于分发和可用性检查的工具文件
  • SQLite + FTS5 用于会话存储和搜索
  • 网关适配器(Gateway adapters) 用于消息界面和传递

安全模型同样非常明确。文档描述了一种七层深度防御方法,包括危险命令审批、容器隔离、MCP 子进程的凭据过滤、针对提示词注入(prompt injection)的上下文文件扫描,以及经过验证的工作目录参数。这并不意味着 Hermes 是万无一失的,但它确实表明该项目认真考虑了操作员风险。

4. 技能系统(Skills System)是真正的差异化所在

如果说 Hermes 有一个功能让产品的其他部分变得有意义,那就是技能系统。官方文档将技能定义为通过渐进式披露模式加载的按需知识文档,以最大限度地减少 Token 消耗。通俗点说,就是 Hermes 尽力避免一次性将所有过程性知识塞进提示词中。

技能存储在 ~/.hermes/skills/,可以进行打包、从 Hub 安装或由智能体(agent)创建,并且每个安装的技能都会变成一个斜杠命令(slash command)。文档展示了如下示例: /github-pr-workflow, /plan,以及通过 CLI 进行的直接搜索/安装命令。

# Browse and install skills
hermes skills search kubernetes
hermes skills search react --source skills-sh
hermes skills install openai/skills/k8s

# Or use the slash command inside Hermes
/skills

渐进式披露模型使这一设计显得优雅而非臃肿。Hermes 首先仅加载轻量级的技能元数据,然后开启完整的 SKILL.md 仅在实际需要该技能时才加载,并且只有在任务需要时才加载更深层的参考文件。这种设计模式使得优秀的智能体工具链感觉非常迅速,而不是被提示词堆砌感所淹没。

Hermes 还将技能扩展到了单次调用之外。cron 文档展示了可以在提示词运行前附加一个或多个技能的任务,这意味着定时任务可以继承结构化的工作流,而不是依赖庞大的内联指令块。

# Conceptually, Hermes cron jobs can attach skills
hermes cron edit <job_id> --skill blogwatcher --skill find-nearby

# Or you can ask naturally:
"Every morning at 9am, check Hacker News for AI news and send me a summary on Telegram."

Hermes' 的记忆系统比营销词汇 “memory” 通常所暗示的更加严谨。文档描述了两个有界文件, MEMORY.md 以及 USER.md,并带有明确的字符限制。它们在会话开始时作为冻结快照注入到提示词中,这样 Hermes 就可以保留持久的事实,而无需不断更改其自身的前缀。

这种设计至关重要,因为它将记忆视为 精选状态,而不是无限制的垃圾场。Hermes 会记住项目事实、用户偏好和有用的学习过程,但它仍然依赖独立的会话存储和会话搜索来进行更深层次的历史回溯。架构文档明确指出,会话持久化存储在带有 FTS5 和血缘追踪(lineage tracking)的 SQLite 中。

重要细微差别

Hermes 的记忆并非神奇的长期推理。它是一个用于持久事实和偏好的有界系统,外加可搜索的会话历史。这是一个很好的设计选择,但也意味着你不应将 “跨会话记忆” 与 “永不丢失上下文” 混为一谈。

6. 如何开始

官方快速入门非常简单。安装 Hermes,选择提供商,启动 TUI 或 CLI,然后决定是需要本地执行还是更安全的远程/容器后端。对于大多数人来说,第一步应该是刻意保持简单:先让单个会话运行起来,然后再逐步添加 gateway、skills、MCP 和 cron。

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

# Configure provider and tools
hermes setup

# Start Hermes
hermes --tui

如果你想将 Hermes 用于实际工作而非实验,下一步应该是更安全的终端执行:

# Safer execution backends from the docs
hermes config set terminal.backend docker
hermes config set terminal.backend ssh

# Optional: connect messaging platforms
hermes gateway setup

快速入门还包含一个最小的 MCP 示例,这正是让 Hermes 比封闭的工具孤岛更有用的原因:

mcp_servers:
  github:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"

有两个安装注意事项值得明确说明。首先,官方文档仍然引导 Windows 用户使用 WSL2。其次,问题追踪器显示安装和环境管理相关的 bug 仍在高频出现,因此请将安装程序视为快速迭代的基础设施,而非成熟的企业级封装。

7. 真实世界示例

示例 1:默认情况下不要在本地后端运行高风险任务

错误做法: 在本地安装 Hermes,保持终端后端开启 local,并开始让它在你的真实工作站上运行广泛的 shell 命令。

正确做法: 先切换到 Docker 或 SSH,保持危险命令审批开启,并将本地后端视为便捷选项而非生产环境选项。

示例 2:不要将每个工作流都编码进一个巨大的 prompt 中

错误做法: 不断追加长期指令,直到每个任务都以堆叠如山的上下文开始。

正确做法: install or create skills for recurring workflows, then let Hermes load them on demand or attach them to cron jobs. This is exactly what the skills system was designed to solve.

示例 3:不要混淆记忆与知识的完整性

错误做法: 假设 Hermes 的记忆意味着智能体现在永久理解你系统的每一个细节。

正确做法: 将记忆用于稳定的事实和偏好,将会话搜索用于历史记录,并使用 MCP 或外部工具进行更深层次的单一事实来源检索。这种分层模型更接近 Hermes 的实际构建方式。

如果你想要……请使用 Hermes不要指望 Hermes 是……
一个可以在终端和消息传递之间切换的长期运行智能体一个 no-ops、零管理的消费级产品
可复用的技能、MCP 和 cron 整合在同一个技术栈中一个专用的 IDE copilot,在各处都拥有经过打磨的默认设置
具备明确安全控制的远程或容器化执行仅仅因为文档提到了安全层,就认为它是无风险的自主运行

8. 社区反应

社区对 Hermes 的广泛反应很有趣,因为它不仅仅是炒作。它融合了运维人员的真实兴奋、对自托管智能体技术栈的明显好奇,以及对该产品在实际工作负载下能否兑现承诺的理性怀疑。

积极的一面是,Nous Research 的公开发布信息极力强调 “grows with you” 的叙事,这种描述在文档和第三方帖子中也得到了呼应。Tenten 在 LinkedIn 上的一篇帖子几乎逐字重复了相同的内存与机器访问框架,这表明该产品的品牌故事已经成功地传播到了 GitHub 原生群体之外。

Reddit 更真实地捕捉到了这种分歧。在 LocalLLaMA 关于发布的第一个帖子中,一位评论者对“将通讯账号交给 Hermes”的想法给出了直截了当的回应:

“把它安装在机器上,给它你的通讯账号”……呵呵,行吧。

这种怀疑并非无理取闹。Hermes 要求用户在自动化、凭据、长期运行的进程以及工具执行方面给予信任。但同一帖子中的下一条评论则是务实的,而非不屑一顾:

“我计划在 Render + Supabase 上使用它。”

这或许是对 Hermes 现状最准确的总结:有些人听到宣传后立即担心安全问题;而另一些人听到同样的宣传后,已经开始规划部署目标了。

问题追踪器进一步证实了这是一个激进且快速发展的底层架构项目。最近的问题包括 一个智能体破坏了其自身的运行时 virtualenv安装流程停滞以及 容器/systemd 的 gateway-install 不匹配。这些都没有否定 Hermes 的价值。它只是意味着该仓库在面临真实采用压力的同时,也存在着真实的运维风险(footguns)。

社区定论

Hermes 被视为严肃的基础设施,而非玩具式的演示。这有利于建立公信力,但也意味着门槛更高:人们会容忍业余工具中的小瑕疵,但绝不会容忍一个掌握着网关凭据和 shell 访问权限的工具出现问题。

9. 结论:Hermes Agent 值得使用吗?

我们的观点

值得,如果你想要的是一个真正的智能体运行时,而不仅仅是另一个聊天外壳。Hermes 是将技能、记忆、消息传递、cron、MCP 和更安全的执行环境整合到面向操作者的单一技术栈中,最连贯的开源尝试之一。其理念非常强大,文档异常详尽,架构也比一般的智能体仓库要严谨得多。

适用场景:

  • 你希望智能体可以运行在 VPS、容器或远程机器上,而不仅仅局限于编辑器。
  • 你关注由技能、MCP、cron 和可搜索的会话历史构建的持久化工作流。
  • 你习惯于像操作者一样思考:后端、凭据、安全边界和故障模式。

暂不建议使用,如果:

  • 你主要想要一个开箱即用、配置简单且组件较少的精致编程副驾驶。
  • 你不想考虑网关、容器、配置或后端选择。
  • 相比于广度和灵活性,你更需要成熟的封装和低摩擦的生产环境稳定性。

10. 更宏观的视角

Hermes 的意义超出了其代码库本身,因为它指向了一种不同的智能体软件模型。最终胜出的智能体可能不是那个拥有最华丽聊天界面的,而可能是那个表现得更像基础设施的:明确的状态、可重用的程序、可搜索的历史记录、多种执行环境,以及在上下文切换后依然能保持的接口。

这也是为什么 Hermes 能自然地融入关于开放技能、MCP 服务器和多智能体编排的讨论中。它将这些都视为可组合的构建块,而非孤立的功能。如果你一直关注我们关于 便携式技能自定义 MCP 工具以及 多智能体编排,Hermes 看起来不再像是一个异类,而更像是一个密集的交汇点。

Hermes 本身是否会成为主流的开源 Agent 运行时仍是一个悬而未决的问题。但产品方向已经非常明确:人们真正愿意留下的 Agent,是那些拥有足够的记忆、能够充分授权、运行足够安全,并且在实际工作发生的各种场景中都能触手可及的智能体。

11. 常见问题解答

Q: Hermes Agent 与普通的编程 Copilot 有何不同?

Hermes 被设计为一个长期运行的 Agent,而不仅仅是一个 IDE 助手。官方文档将其定位为一个可以驻留在服务器上、通过消息应用工作、保持有限记忆、按需加载技能并调度周期性任务的系统。

Q: Hermes 可以在 VPS 或远程机器上运行吗?

是的。官方文档明确说明 Hermes 可以运行在 VPS、GPU 集群或远程服务器上,且其终端后端系统除了支持本地执行外,还支持 SSH、Docker、Modal、Daytona 和 Singularity。

Q: Hermes 的技能是如何工作的?

技能存储在 `~/.hermes/skills/` 中并采用渐进式加载。Hermes 首先读取轻量级元数据,仅在任务匹配时才打开完整的 `SKILL.md`,并根据需要加载更深层的参考文件。

Q: Hermes 的记忆等同于聊天记录吗?

不是。记忆文档描述了一个受限的 `MEMORY.md` 和 `USER.md` 存储,用于保存持久的事实和偏好,而会话历史则单独存储在支持 FTS5 搜索和谱系追踪的 SQLite 中。

Q: Hermes 支持 MCP 服务器吗?

是的。快速入门文档展示了直接在 `config.yaml` 中配置 MCP 服务器的方法,并将 MCP 定位为通过外部工具扩展 Hermes 的一等公民方式。

Q: 如何让 Hermes 的使用更安全?

首先,避免在执行高风险任务时使用本地终端后端。文档建议使用 Docker 或 SSH 进行隔离,安全页面还介绍了命令审批、容器隔离、凭据过滤和提示词注入扫描,这些都是 Hermes 纵深防御模型的一部分。

12. 所有来源与链接

主要来源

文档

社区

引用的 Issue 讨论串

网络资源

内部链接

Related Guides

Sponsored AI assistant. Recommendations may be paid.