Harness Memory 为 Claude Code、Codex 等智能体框架提供可插拔的长期记忆层,支持跨框架共享与细粒度权限,面向 AI 开发者。 热门评论 PH 用户Hey Product Hunt 👋我是 Richard,HarnessRouter 的联合创始人。今天我们发布 Harness Memory,它让基于 HarnessRouter 构建的智能体拥有长期记忆。下面说说我们为什么做它。我们做的每个智能体都老是忘事,比如用户昨天告诉它什么,或者它上个会话弄明白了什么。每次切换 harness 就更糟,比如从 Claude Code 换到 Hermes,或从 Pi 换到 Codex,因为每次都得重新接一遍记忆。我们一直觉得记忆应该是智能体的一部分,而不是事后粘上去的东西。所以 Harness Memory 做的就是这些:它是内置的。当你构建智能体时,HarnessRouter 会选一个适合该智能体任务的记忆引擎,并告诉你为什么。选项有 Mem0、Graphiti、Hindsight 和 ReMe,也可以自带。有些智能体不该记住任何东西,比如只转换输入的翻译器,这类就完全不给记忆。它在每个会话中都有效。智能体在每一轮开始时调取记忆,在轮次中通过工具使用记忆,并在轮次结束时记录学到的东西。你不需要写任何胶水代码。它跨 harness 有效。一个 Claude Code 智能体、一个 Hermes 智能体和一个 Codex 智能体可以共享同一份记忆。在我们的 demo 里,Codex 保存一个周末计划,Claude Code 在一个全新的会话里调取出了这个计划。我们是为服务大量用户的智能体构建它的,所以有几件事我们很严格:智能体的每个用户都有自己独立的一份记忆,和其他人完全隔开。每份记忆都需要单独的访问授权。没有授权就无法访问,模型也不能自行扩大访问权限。智能体可以遗忘,但只有人能删除。我们从不让智能体通过工具删除记忆。事实变化时,Harness Memory 会保存新版本,所以历史记录保留。记忆为智能体提供信息,但绝不指令它。调取到的记忆会与智能体的指令隔离后送达,每条记录都会标明是谁写的。在 Memory 页面,人们可以查看、编辑或删除存储内容。我们也把它做成了开放式的。记忆层是一个开放规范 Harness Memory Protocol,也就是 Unified Harness Protocol 的 Memories 章节。任何记忆服务都可以作为提供方接入。如果某个提供方不支持某项功能,我们会报告这个缺口,而不是悄悄跳过。Harness Memory 今天已在开源 Community Edition 和 HarnessRouter Cloud 上提供。我们很想听听你的想法:你最希望你的智能体记住的一件事是什么?接下来我们应该支持哪个记忆引擎?我们全天都在,尽管问 🙌PH 用户恭喜发布,这个跨 harness 的 demo 很丝滑。我们有一些团队规则,每个智能体都应该遵守,比如“用 pnpm,不要用 npm”和我们的 commit message 格式。我能把这些规则固定住,让每个智能体每次都拿到,而不是指望记忆调取碰巧把它们带出来吗?PH 用户在 claude code 和 codex 之间共享记忆还带访问控制,真的很棒。恭喜 KuanzePH 用户真正让我心动的是跨 harness 这部分——我同时跑 Claude Code 和 Codex,现在它们对彼此已经弄明白的东西,都还是从零开始。记忆存在 harness 之外,这样在一个里保存的事实能在另一个里出现,这才是我每天真的会用到的功能。按用户隔离并配访问授权也很重要,而且只有人能删除记忆这点很对。我好奇一点:当两个 harness 写入同一事实的冲突版本时,它怎么决定哪个胜出?PH 用户很喜欢它是开源的。你们怎么防止记忆随时间变得过时或臃肿?有剪枝或摘要吗?我能按项目限定记忆范围吗?PH 用户恭喜发布!我们保存的很多东西都指向某个文件或函数。即使它指向的东西早就不在了,那条笔记读起来依然没问题。当一条记忆指向的东西已经不存在时,recall 会知道吗?🤔 热门产品Richard Song2026-11-12原文 打开互动版
我是 Richard,HarnessRouter 的联合创始人。今天我们发布 Harness Memory,它让基于 HarnessRouter 构建的智能体拥有长期记忆。
下面说说我们为什么做它。我们做的每个智能体都老是忘事,比如用户昨天告诉它什么,或者它上个会话弄明白了什么。每次切换 harness 就更糟,比如从 Claude Code 换到 Hermes,或从 Pi 换到 Codex,因为每次都得重新接一遍记忆。我们一直觉得记忆应该是智能体的一部分,而不是事后粘上去的东西。
所以 Harness Memory 做的就是这些:它是内置的。当你构建智能体时,HarnessRouter 会选一个适合该智能体任务的记忆引擎,并告诉你为什么。选项有 Mem0、Graphiti、Hindsight 和 ReMe,也可以自带。有些智能体不该记住任何东西,比如只转换输入的翻译器,这类就完全不给记忆。它在每个会话中都有效。智能体在每一轮开始时调取记忆,在轮次中通过工具使用记忆,并在轮次结束时记录学到的东西。你不需要写任何胶水代码。它跨 harness 有效。一个 Claude Code 智能体、一个 Hermes 智能体和一个 Codex 智能体可以共享同一份记忆。在我们的 demo 里,Codex 保存一个周末计划,Claude Code 在一个全新的会话里调取出了这个计划。
我们是为服务大量用户的智能体构建它的,所以有几件事我们很严格:智能体的每个用户都有自己独立的一份记忆,和其他人完全隔开。每份记忆都需要单独的访问授权。没有授权就无法访问,模型也不能自行扩大访问权限。智能体可以遗忘,但只有人能删除。我们从不让智能体通过工具删除记忆。事实变化时,Harness Memory 会保存新版本,所以历史记录保留。记忆为智能体提供信息,但绝不指令它。调取到的记忆会与智能体的指令隔离后送达,每条记录都会标明是谁写的。在 Memory 页面,人们可以查看、编辑或删除存储内容。
我们也把它做成了开放式的。记忆层是一个开放规范 Harness Memory Protocol,也就是 Unified Harness Protocol 的 Memories 章节。任何记忆服务都可以作为提供方接入。如果某个提供方不支持某项功能,我们会报告这个缺口,而不是悄悄跳过。
Harness Memory 今天已在开源 Community Edition 和 HarnessRouter Cloud 上提供。
我们很想听听你的想法:你最希望你的智能体记住的一件事是什么?接下来我们应该支持哪个记忆引擎?我们全天都在,尽管问 🙌
我们保存的很多东西都指向某个文件或函数。即使它指向的东西早就不在了,那条笔记读起来依然没问题。
当一条记忆指向的东西已经不存在时,recall 会知道吗?🤔