MemoryLake
返回全部文章
Tutorial2026 年 7 月 29 日·6 分钟阅读

如何防止 Hermes Agent 遗忘任务上下文 (2026)

Hermes 能够很好地运行多智能体工作:拆分任务、分发智能体、收集结果。然而,当运行结束时——智能体在过程中摸索出的一切也随之烟消云散。明天的运行依然要重新探索相同的代码库布局、重新阅读相同的文档,并重新做出上一次运行已经解决的决策。更糟糕的是,在单次运行中,完成第三步的智能体通常完全不知道第一步的智能体究竟是如何推理的。

简而言之:Hermes 会遗忘任务上下文,是因为智能体在构建上是无状态的——每次运行都始于启动时输入的内容,每个智能体仅持有自己的上下文窗口,没有任何持久化的介质来记录已学到的知识、做出的决策或排除的方案。

以下是上下文在运行之间以及智能体之间流失的原因、常见临时解决方案的实际效果,以及如何为 Hermes 提供持久的共享任务记忆。

为什么 Hermes Agent 会遗忘任务上下文

如今智能体运行如何处理上下文

运行在启动时获取其上下文:您的指令、目标以及它可以访问的任何文件或工具。随着智能体开始工作,它们会在自己的上下文窗口中建立理解——例如哪个服务拥有该逻辑、哪种方法失败了、哪个约束条件至关重要。当运行完成时,这些窗口就会被丢弃。由于没有可供写入的存储库,因此无论上一次运行学到了多少,下一次运行都会重新从您的启动提示词开始。

多智能体让问题加剧的技术原因

多智能体系统不仅没有解决这个问题,反而使问题成倍增加。每个智能体都有自己的上下文窗口,它们并不共享同一个窗口。交接时传递的是消息或摘要,而不是背后的推理过程——因此接收智能体继承了一个结论,却不知道产生该结论的约束条件。并行运行的智能体可能会重复进行相同的调查,或做出相互冲突的决策,因为双方都看不到对方已经确立的内容。而当运行结束时,N 个智能体积累的成果会瞬间全部消失。

这给您带来的代价

每次运行都要付出“重新探索税”,并乘以独立执行该任务的智能体数量。决策在不同的运行之间被反复推倒重来,导致上周已被否决的方法下周又重新出现。交接过程会丢失保真度,表现为工作在技术上是正确的,但却违反了两步前确立的约束条件。而且没有任何积累效应:您的第十次运行并不会比第一次运行获得更多信息。

常见的临时解决方案(及其局限性)

往启动提示词里塞满内容

标准的解决方法:将所有内容预先加载到启动指令中——架构、规范、约束条件、先前的决策。这确实有效,也是大多数人的做法。但它是手动的,会变得越来越臃肿,而且无论每个智能体是否需要,每次运行都会消耗 Token,并且它只能捕获您记得放入的内容。

保持单次长时间运行

保持在单次运行中可以保留上下文——直到窗口填满,压缩机制开始丢弃最早的细节(而这些通常是核心需求)。长时间运行还会使失败的代价变得高昂:一个错误的步骤就可能损害大量累积的状态。

手写交接笔记和文件

在运行之间将状态笔记写入磁盘是一个切实、合理的临时方案:做了什么、决定了什么、接下来要做什么。但它也是完全手动的,在时间紧迫时很容易被忽略,并且产生的是下一次运行必须重新阅读和重新解释的文本,而不是可以直接查询的数据。

共同的瓶颈:这些方法都无法为智能体提供能够跨越运行边界或在智能体之间共享的可查询记忆——这也是为什么 OpenClaw 会遗忘智能体状态任务上下文背后的根本缺陷。

解决方案:为 Hermes 提供持久化任务记忆

持久化的配置是在运行之外建立一个记忆层,每个智能体都可以读取它,并且它的生命周期比所有智能体都长。MemoryLake 一次性存储您的项目知识、决策和约束条件——支持搜索、采用 Git 风格的版本控制(当两个来源不一致时进行冲突检测),并进行端到端加密,确保您的内部数据安全无虞。它成为了多智能体工作一直以来所缺失的共享基底。

步骤 1:创建 API 密钥

登录 MemoryLake,生成密钥并发送您的第一个请求——这大约需要 30 秒。

创建 MemoryLake API 密钥
创建 MemoryLake API 密钥

步骤 2:上传您的第一批记忆

放入运行过程中需要不断重新探索的内容:架构和系统文档、现行约束、决策记录和运行手册——文档、图像和其他文件均可。然后将每次运行的结论捕获为单行记忆,从而让进度不断累积,而不是每次重置。

将您的第一批记忆上传到 MemoryLake
将您的第一批记忆上传到 MemoryLake

步骤 3:连接您的 AI 和智能体

使用您的 API 密钥连接 Hermes——MemoryLake 支持将 Hermes Agent 作为专属集成,因此智能体可以在运行期间检索共享上下文,而无需依赖您在启动时粘贴的内容。Claude、Codex、OpenClaw 以及其他支持 MCP 的智能体也可以通过 MCP 或 API 访问相同的记忆,因此跨越多个工具的工作流仍然可以基于同一套事实运行。

通过 MCP 连接您的 AI 和智能体
通过 MCP 连接您的 AI 和智能体

在多智能体工作中,重新探索的实际代价

乘以 N 的税费

单个智能体重建上下文是一项成本;五个智能体并行重建上下文就是五倍成本。这不仅是在相同的重新探索上消耗的 Token 和实际时间,还包括更难估量代价的隐性成本:两个智能体因为看不到彼此的推理过程,从而做出了相互矛盾的决策。

检索而非重新推导

通过共享层,每个智能体都能精准拉取其步骤所需的约束或决策,且交接时传递的是指向共享记忆的指针,而不是有损的摘要。运行在启动时就已掌握充分信息,智能体不再重复调查,冲突在发布前就会被捕获——MemoryLake 的 Token 节省计算器可以根据您的使用情况预测 Token 的节省效果。

智能体任务记忆的最佳实践

在每次运行结束时写入结论

每次运行记录一行带有日期的内容——做了什么、决定了什么、什么失败了以及原因——这就是将孤立的运行转化为累积进度的关键。这是交接笔记的自动化版本,且格式可供下一次运行查询。

让约束条件可检索,而不仅仅写在提示词中

仅存在于启动提示词中的约束条件,很容易因为一次上下文压缩而被忽略。而在可检索的记忆中,任何智能体在任何步骤都可以对其进行检查。

按工作流划分范围

每个工作流或项目使用一个独立的记忆范围,可以保持检索的精准度,并防止一个流水线的约束条件干扰另一个流水线的智能体。

结论

Hermes 能够很好地协调智能体;但它唯独无法自己进行记忆。每次运行都始于您的提示词,每个智能体只能看到自己的窗口,运行结束时学到的一切都会消失——导致多智能体工作一直在重新探索,而不是不断累积。为系统提供一个共享的持久化记忆,情况就会完全相反:智能体通过共同的事实进行协调,交接不再丢失推理过程,第十次运行将从前九次运行积累的知识开始。别再让您的智能体每次都重新进入一无所有的空房间了。

常见问题

Hermes 会在运行之间记住任何内容吗?

自身不会。智能体运行在构建上是无状态的——上下文来自您在启动时提供的内容,运行期间建立的理解在结束时会被丢弃,除非有外部记忆层将其保存。

为什么同一运行中的智能体会丢失彼此的上下文?

因为每个智能体都有自己的上下文窗口,它们并不共享同一个窗口。交接时传递的是消息或摘要,而不是背后的推理过程,因此接收智能体继承了结论,却不知道产生该结论的约束条件。

把所有内容都放在启动提示词中还不够吗?

这是常见的方法,且部分有效,但它是手动的,会变得越来越臃肿,每次运行都会消耗 Token,并且只能捕获您记得放入的内容。运行期间发现的任何内容在结束时依然会消失。

我应该在智能体记忆中存储什么?

架构和系统文档、现行约束、带有原因且注明日期的决策以及每次运行的结论——而不是原始日志。提炼过的、可查询的知识才是智能体在运行中真正能够利用的。

这适用于其他智能体和框架吗?

是的——记忆层是独立于智能体的。相同的上下文可以传递给 Claude、Codex、OpenClaw 以及其他支持 MCP 的智能体,因此多工具工作流可以共享同一个事实来源。相关阅读:多智能体记忆