返回博客
HermesLettaMemoryComparison

Hermes Agent 与 Letta:记忆平台还是运行时?

Hermes Agent 与 Letta(前身为 MemGPT)代表智能体记忆光谱的两端。2026 年如何在两者之间做出选择。

作者:Hermify Team||阅读约 3 分钟
在深色分屏背景上以文字标签展示 Hermes Agent 与 Letta,对比一个记忆始终在场的运行时和一个受操作系统启发的分层记忆平台

关于智能体应如何记忆的两种截然不同的赌注

如果你搜索了 "hermes agent vs letta",你大概已经知道这两个项目都属于"带记忆的 AI 智能体"这一类。不那么显然的是,它们对"记忆到底应该是什么样"这件事下了完全相反的赌注。Letta(原名 MemGPT)为智能体提供了一套受操作系统启发的分层记忆,背后是 GitHub 上超过 23,000 颗星标:core、recall、archival 三层,全部由模型通过函数调用主动管理。来自 Nous Research 的 Hermes Agent 则始终让一份精挑细选的小型快照出现在每一轮对话中,从不要求模型去主动取回它。

这道哲学分歧之所以重要,是因为它塑造了整个产品。Letta 是一个平台,你把它嵌进自己的代码里,去构建记忆丰富的智能体。Hermes 则是一个运行时,你安装一次,然后通过 Telegram、Signal、Discord 或 Slack 与它对话。本文会逐一梳理这两者、真正的选择分界在哪里,以及在什么情况下混合使用更合理。

Letta 究竟在做什么

Letta 是 UC Berkeley Sky Computing Lab 的 MemGPT 论文的直系延续。它以 服务器进程 的形式运行,将智能体状态保存在 PostgreSQL 数据库中,并通过 8283 端口上的 REST API 以及官方 Python 与 TypeScript SDK 对外提供服务。另外还有一个 Agent Development Environment,可以在任意时刻通过图形界面查看智能体所知的一切。

记忆模型正是这个项目的立身之本。每一个 Letta 智能体都拥有三层记忆:

  • Core memory:一个体积很小的区块,每一轮都保留在上下文窗口中,充当工作 RAM。人设、用户档案、关键上下文都在这里。
  • Recall memory:完整的对话历史被保存在数据库中。智能体在自己的历史消息中检索,而不是依赖 LLM 的上下文窗口。
  • Archival memory:一个用于长期存储的向量数据库。智能体把观察写入其中,之后通过语义搜索取回,容量可无限扩展。

智能体通过在推理循环中调用记忆管理函数,自行决定何时对这三层进行读写。这就是所谓的"自我管理"承诺:LLM 充当自己记忆的控制器。需要上下文就查询,学到值得保留的内容就写入。

Letta 具有很强的可移植性。开放的 Agent File Format(.af)让一整个智能体连带记忆能够在不同框架和主机之间迁移。2026 年 5 月团队还推出了 Letta Code——一个以记忆为核心的编程智能体,直接与其他代码助手竞争。主仓库 letta-ai/letta 已突破 23,000 颗星标和 2,400 次 fork。

Letta 不是什么呢?它不是一个面向终端用户的成品。它是一个后端。你要把 SDK 嵌进自己的 Python 或 TypeScript 服务,决定用户看到什么界面或消息渠道,还要自己运维那些智能体所在的 PostgreSQL 集群。

Hermes Agent 究竟在做什么

Hermes Agent 是 Nous Research 推出的 开源 AI 智能体,首发于 2026 年 2 月 25 日,目前版本为 v0.14.0。与 Letta 不同,它不是你导入的库,而是你安装的运行时。你用自己的密钥把它指向一家模型服务商,它便以长期驻留的进程运行,你可以在 Telegram、WhatsApp、Discord、Slack、Signal 或本地 CLI 上与之交流,全部隐藏在同一个网关之后。

它的记忆系统在形态上刻意做了相反选择:

  • MEMORY.md 与 USER.md 是智能体亲自整理、关于你的纯文本文件。它们放在 ~/.hermes/memories/ 下,会在每一次会话开始时注入到系统提示词中,从第一个 token 起就已在场。
  • 基于 SQLite 与 FTS5 的会话检索 会索引每一次对话,因此智能体可以查到你上周四聊过什么。
  • 技能 是一些 markdown 文件,智能体会在复杂任务后(通常是 5 次以上工具调用)自行创建并打补丁
  • 外部记忆提供者 构成一个插件层:如果你想在基础文件之上叠加知识图谱、语义检索或跨会话用户建模,可以接入 Honcho、OpenViking、Mem0、Hindsight、Holographic、RetainDB、ByteRover 和 Supermemory。

我们在 Hermes Agent 的记忆与技能 一文中详细介绍过其内建记忆架构。关键设计取舍在于:那份精心整理的快照始终在场,而不是被"取回"。没有记忆函数调用,没有向量检索的跳转,也没有 LLM 忘记查询的风险。只要写在文件里,就一定出现在提示词里。

Hermes 自带六种终端后端(local、Docker、SSH、Daytona、Singularity、Modal),采用 MIT 许可证。一台位于欧洲的小型 VPS 每月大约需要五欧元。边际成本主要来自你的模型服务商账单,而不是运行时本身。

决策分界线

一个有用的框架:Letta 适合 由你搭建、拥有分层自管理记忆的智能体,Hermes 适合 由你运行、拥有精选常驻记忆的智能体

问题 Letta Hermes Agent
核心抽象 带 SDK 与 REST API 的记忆平台 你在消息应用中直接对话的运行时智能体
记忆模型 Core + Recall + Archival,由智能体主动取回 精选文件始终在场 + 可选外部提供者
记忆存放位置 由 Letta Server 管理的 PostgreSQL 你自己拥有的磁盘上的纯 markdown 文件
面向终端用户的界面 由你构建 Telegram、WhatsApp、Discord、Slack、Signal、CLI,开箱即用
部署方式 Letta Server + PostgreSQL,自托管或 Letta Cloud 本地进程、Docker 或一台小型 VPS
可移植性 跨框架的 Agent File Format(.af 复制 ~/.hermes/ 目录即可
语言生态 Python 与 TypeScript SDK Python 运行时 + markdown 技能
最擅长 构建自有的记忆丰富的 AI 产品 个人辅助、回忆、起草、判断
检索延迟 每次查询走一次向量或 SQL 搜索 精选块延迟为零,始终在提示词里
许可证 Apache 2.0 MIT

如果你发现自己把 Letta 引入到一个服务中,然后又在其上补齐 Telegram 机器人、cron 调度和语音记录,那就是一个信号:你正在重新做一遍 Hermes 开箱即有的东西。如果你发现自己把成百上千 MB 的可检索历史上下文塞进 Hermes,还要在其上跑向量检索,那就是另一个信号:一个分层记忆平台更适合你。

Letta 什么时候更合适

Letta 是正确答案,当:

  • 你在构建的是一个 AI 产品,而不是给自己运行的一个智能体。客服、垂直领域的研究助手、给你 SaaS 用的副驾驶。记忆模型要跨越很大的应用面按用户维度扩展。
  • 你需要 大规模的档案记忆:每位用户上百万条交互、跨越数年的历史进行语义检索、以及正式的数据保留策略。
  • 你的团队能运维 PostgreSQL,并从一个端到端你自己掌控的服务里对外暴露 SDK。
  • 你想要 明确的编程控制——决定智能体插入了什么、检索了什么、遗忘了什么:拿到一条可审计的记忆操作痕迹,而不是藏在提示词里的隐式行为。
  • 你在意 跨框架的可移植性.af 格式是真的存在,也是真的能用。

这是记忆平台这一类别。Letta 与 Mem0、Zep 等同侪把这块守得很稳。Vectorize 的 Mem0 vs Letta 对比Atlan 的 2026 记忆框架盘点 以及 innobu 的 2026 记忆全景 都反映了这一细分市场的成熟度。

Hermes 什么时候更合适

Hermes 是正确答案,当:

  • 智能体是 你自己的,而不是你产品的。一个了解你的风格、你的项目、你的联系人的个人助理。
  • 你希望对真正关键的记忆做到 零检索延迟。只要写进 MEMORY.md,模型在开始推理之前就已经看到了它。不会遗漏查询,也不会忘记调用。
  • 你希望 界面就是你已经在用的聊天界面,而不是一整套要自己搭的 UI。Telegram 是主要的托管渠道;Signal、Discord、Slack、WhatsApp 和 CLI 在自托管场景下都可用。
  • 你希望能 直接读到智能体所知的内容MEMORY.md 是一个纯文本文件,不是向量数据库里的一行记录。审计智能体对你的认知只需 30 秒。
  • 你能接受 精选带来的边界。Hermes 有意把始终在场的快照保持得很小,那不是一个把你说过的一切都倾倒进去的地方。

这是个人智能体这一类别:用你自己的口吻写日报、快速回忆当前项目、整理阅读列表和写日记。我们在 Hermes Agent 与 ChatGPT、Claude、Gemini 对比 中与其他个人助理做了比较,也在 Hermes Agent 与 n8n 对比 中与工作流工具做了比较。

如果这正是你想要的,从 Hermify 开始 就能跳过安装:我们在 Telegram 上运行托管的 Hermes Agent,记忆始终归你所有,约一分钟即可上线。

精选常驻 vs 分层自管理

真正的哲学分歧值得点破。Letta 押注 记忆越多越好,只要智能体能自己决定何时去取。Hermes 押注 记忆越少越好,只要它始终在场。

两种赌注都站得住脚。在 Letta 的模型下,一个拥有档案记忆的智能体可以召回一年前的一次交互,因为它显式地跑去搜了。在 Hermes 的模型下,智能体也许根本没有那个古早的细节,但对你真正重要的那些信息——你的名字、你的项目、你的偏好——则被保证一定在场,不必依赖任何可能失败或产生幻觉的检索调用。

从工程角度看,重检索的模型会引入延迟和失败模式。每一次搜索都是 LLM 跳过调用、把查询写错,或误读返回结果的一次机会。精选常驻的记忆对于它所承载的内容没有这样的失败面,但它也有一个上限。你得到的是一个小而高信噪比的工作集,而不是一个可索引的档案库。

诚实的混合方案

这两者并不互斥。一个合理的进阶配置:

  • 由 Hermes 承担关系。 你的个人智能体活在 Telegram 或其他 messenger 里,持有你精选的 USER.mdMEMORY.md,并管理各项技能与 cron 任务。
  • 由 Letta 承担大规模档案。 当 Hermes 需要搜索你五年的日记或数百份会议纪要时,它把请求转发到你自托管的 Letta 服务。Letta 返回检索到的片段,Hermes 再把它们编织进回复里。

Hermes 之所以自带外部记忆提供者插件,本就是为了这类场景。Honcho、Mem0、Hindsight 等等都能作为检索后端接入。Letta 可以填补同一个位置:只在你真正需要时才把分层记忆搬出来。相反方向(在 Letta 上再自己搭 Telegram 机器人、调度器和技能系统)要难得多。

如何选择

  1. 如果你的问题是"我在构建一个 AI 产品,用户需要跨大面积应用、丰富且自管理的记忆",选 Letta。
  2. 如果你的问题是"我想要一个持久的、真正认识我并在消息应用中替我行动的 AI",选 Hermes。
  3. 如果你的问题是"我想要一个 Hermes 风格的个人智能体,但某一类工作还需要一个正经的档案系统",那就把 Hermes 放在前台,让它去调用一个 Letta 服务来处理那份档案。

强行让其中一方去做另一方的活,就是最典型的失败模式。Letta 不是一个面向消息应用的成品个人智能体;Hermes 不是一个面向多租户产品的记忆平台。一旦你接受二者是为不同客户优化的,选择就变得简单。

参考资料

运行你自己的 Hermes Agent

自带 API 密钥,连接 Telegram,60 秒内即可上线一个自我改进的 AI 智能体。

立即开始