Hindsight vs Hermes Holographic Memory:Hermes Agent 记忆提供商的架构权衡与选型指南
【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight
本文以 Hermes Agent 的 Holographic(全息)记忆方案为切入点,解析其 HRR 代数表示、本地 SQLite 存储与信任度评分的设计动机,并对照 Hindsight 的结构化事实记忆与多策略召回架构,给出两者的架构差异、Hermes 侧的真实配置参数(hermes memory setup、config.yaml/config.json、记忆模式)以及一份可落地的选型决策指南。读完你可以判断:什么场景该用轻量本地记忆,什么场景需要跨会话、跨工具、多 Agent 共享的持久记忆层。
Hermes 的 Holographic 记忆是什么
Hermes 目前对外暴露了多个可插拔的记忆提供商,其中 Holographic(全息)是最特殊的一个:它不依赖云 API,也不走标准的向量数据库流水线,而是被 Hermes 的记忆提供商文档描述为一个HRR 基础的本地记忆系统,配套 SQLite 存储、信任度评分(trust scoring)以及极低的召回延迟。
这使它和 Hindsight 因不同的原因而具有吸引力:
- 当你想要一个紧凑、本地、代数式的记忆层,依赖最少时,Holographic 是合适的;
- 当你想要结构化事实抽取、多策略检索、可跨会话/工具/团队共享的记忆时,Hindsight 更合适。
两者解决的是相邻的问题,但设计哲学完全不同。本文先解释 Holographic 想做什么、它的架构与 Hindsight 有何不同、各自的优势区间,最后给出在 Hermes 中启用两套方案的具体配置示例。
Holographic 的三个核心概念
HRR 风格的代数表示
"Holographic"(全息)指的是Holographic Reduced Representations(全息简化表示)这一类表示方法。
其核心思想是:记忆以代数方式表示,而不是切成文本块后仅靠语义相似度检索。从工程视角不必深入数学细节,只需要理解三点实用推论:
- 记忆存储在一个压缩的表示空间中;
- 检索是代数运算而非标准的 chunk 相似度搜索;
- 系统为速度与局部性而优化。
这与"知识图谱 + 多策略检索栈"的路线形成了鲜明的设计对立。Hermes 记忆提供商文档给出的整体图景是:
- 本地 SQLite 存储
- 零额外外部服务
- 对召回记忆进行信任度评分
- 最小化的工具面(tool surface)
- 极快的本地检索
信任度评分(Trust Scoring)
Hermes 资料中一个颇有意思的设计是信任度评分。其声明的目标是:在多个会话中被反复确认的记忆权重上升,而与更新信息相矛盾的记忆权重随时间下降。概念上,这让存储趋向"自我修正"而非单纯累积。
这是一个有实质意义的设计选择,因为在长生命周期记忆系统中,噪声是最难处理的问题之一——累积式存储会不断放大早期对话中的错误信息,而信任度衰减机制则给了系统一种内建的纠错方向。
本地优先存储(Local-first)
Holographic 被定位为基于本地 SQLite 的提供商,这使它天然适合:
- 气隙(air-gapped)环境
- 依赖轻量级的安装
- 单用户本地工作流
- 快速的实验性迭代
也正因为如此,它的默认叙事与 Hindsight Cloud 或多 Agent 共享 bank 的模式截然不同:Holographic 优化的是"一个用户在本地把记忆用起来",而不是"记忆在多端、多工具之间流动"。
重要边界说明:Holographic 属于 Hermes Agent 生态内的提供商,其 HRR、SQLite、信任度评分等描述来自 Hermes 侧的文档叙述,本仓库不包含其实现代码,因此本文对 Holographic 的论述均视为该生态的公开资料陈述;而对 Hindsight 一侧的论述则可以直接在本仓库源码与文档中找到证据。
Hindsight 的不同之处:结构化事实记忆
Hindsight 走的是几乎相反的路线。它不强调最小依赖和代数检索,而是强调结构化记忆:
- retain 时进行事实抽取(fact extraction)
- 实体解析(entity resolution)
- 关系构建(relationship building)
- 时间推理(temporal reasoning)
- 多策略召回(multi-strategy recall)
- 重排序与综合(reranking and synthesis)
换句话说,Hindsight 被构建来回答这样的问题:
- 随时间推移发生了什么变化?
- 这些相互关联的记忆合起来意味着什么?
- 围绕某个实体或项目发生了什么?
- 多个 Agent 之间应该共享什么?
这一模型在召回架构文档 retrieval.md 中有完整描述:recall()会并行运行TEMPR 四种检索策略(语义、关键词、图谱遍历、时间检索),再经 RRF 融合与 Cross-Encoder 重排序,最后按 token 预算裁剪结果(见 retrieval.md 中的流程图)。这正是与"单一代数检索机制"最本质的差别。
架构对比:逐维度拆解
| 维度 | Hermes Holographic | Hindsight |
|---|---|---|
| 核心思想 | HRR 风格的代数记忆 | 结构化事实记忆 |
| 默认存储 | 本地 SQLite | 本地或云 |
| 抽取方式 | 不以 LLM 事实抽取为定位 | retain 时的结构化抽取 |
| 检索侧重 | 极快的本地召回 | 语义 + 关键词 + 图谱 + 时间 |
| 信任模型 | 显式信任度评分 | 演进式的事实、实体与观察(observations) |
| 跨工具共享记忆 | 非主打 | 一等公民 |
| 最佳适配 | 本地轻量记忆 | 持久的跨会话 Agent 记忆 |
从表格可以看出,二者优化的目标函数不同:Holographic 优化本地响应性与依赖面,Hindsight 优化检索质量与共享性。
在 Hermes 中配置两套记忆方案
启用 Holographic 提供商
Hermes 通过记忆向导暴露提供商设置:
hermes memory setup然后选择holographic。
或者直接在~/.hermes/config.yaml中配置提供商:
memory: provider: holographic这种本地优先的极简设置,正是该提供商吸引力的一部分。
启用 Hindsight 提供商
改用 Hindsight 时:
hermes memory setup然后选择hindsight。或者直接把提供商设为:
memory: provider: hindsight对于云端共享记忆,还需按 Hermes 集成文档 提供 Hindsight 端点与凭据。集成文档给出的两条实际路径是:
# 方式一:向导(提示输入 API key 与 API URL,自动完成配置) hermes memory setup # select "hindsight" # 方式二:手动配置 hermes config set memory.provider hindsight echo "HINDSIGHT_API_KEY=your-key" >> ~/.hermes/.env echo "HINDSIGHT_API_URL=https://api.hindsight.vectorize.io" >> ~/.hermes/.env配置完成后,用hermes memory status确认记忆已激活。
注意:旧的独立 pip 插件
hindsight-hermes已弃用(在新版 Hermes 上工具会报Timeout context manager should be used inside a task),应改用原生提供商;迁移方案见 迁移指南。
Hindsight 提供商的关键配置项(真实默认值)
以下参数取自仓库中的集成文档 hermes.md,全部位于~/.hermes/hindsight/config.json,且都可用环境变量覆盖(环境变量优先):
连接与守护进程
| 配置项 | 默认值 | 环境变量 | 说明 |
|---|---|---|---|
mode | cloud | HINDSIGHT_MODE | cloud或local |
api_url | https://api.hindsight.vectorize.io | HINDSIGHT_API_URL | Hindsight API 地址 |
api_key | null | HINDSIGHT_API_KEY | 云端鉴权 token |
apiPort | 9077 | HINDSIGHT_API_PORT | 本地 Hindsight 守护进程端口 |
本地模式的 LLM 提供商(仅local模式需要)
| 配置项 | 默认值 | 环境变量 | 说明 |
|---|---|---|---|
llm_provider | openai | HINDSIGHT_LLM_PROVIDER | 支持openai、anthropic、gemini、groq、minimax、ollama、lmstudio |
llm_api_key | — | HINDSIGHT_LLM_API_KEY | 所选提供商的 API key |
llm_model | 各提供商默认模型 | HINDSIGHT_LLM_MODEL | 模型覆盖 |
记忆银行(Memory Bank)
| 配置项 | 默认值 | 环境变量 | 说明 |
|---|---|---|---|
bank_id | hermes | HINDSIGHT_BANK_ID | 记忆银行 ID |
bankMission | "" | HINDSIGHT_BANK_MISSION | 该银行的 Agent 身份/目的 |
自动召回与自动留存
| 配置项 | 默认值 | 环境变量 | 说明 |
|---|---|---|---|
autoRecall | true | HINDSIGHT_AUTO_RECALL | 通过pre_llm_call钩子启用自动召回 |
recallBudget | "mid" | HINDSIGHT_RECALL_BUDGET | 召回力度:low/mid/high |
recallMaxTokens | 4096 | HINDSIGHT_RECALL_MAX_TOKENS | 召回响应最大 token 数 |
autoRetain | true | HINDSIGHT_AUTO_RETAIN | 通过post_llm_call钩子启用自动留存 |
集成模式
| 配置项 | 默认值 | 说明 |
|---|---|---|
memory_mode | hybrid | hybrid(自动注入 + 工具)/context(仅自动注入)/tools(仅工具) |
prefetch_method | recall | recall(注入原始事实,快)/reflect(LLM 综合摘要,更连贯但慢) |
这套配置表本身就说明了两种方案的定位差异:Holographic 几乎不需要这类配置面,而 Hindsight 在 Hermes 内部暴露了召回预算、token 上限、记忆模式等一整套可调参数,因为其背后是一个多策略检索系统。
生命周期钩子与显式工具
原生 Hindsight 提供商向 Hermes 注册了 5 个组件(见 hermes.md):
| 组件 | 作用 |
|---|---|
pre_llm_call钩子 | 自动召回——查询记忆并作为临时系统提示上下文注入 |
post_llm_call钩子 | 自动留存——把本轮用户/助手对话存入 Hindsight |
hindsight_retain工具 | 显式记忆存储(模型主动调用) |
hindsight_recall工具 | 显式记忆检索(模型主动调用) |
hindsight_reflect工具 | 基于已存记忆的 LLM 综合回答 |
这意味着 Hindsight 的自动留存发生在每次响应之后(异步抽取事实、实体与关系),而自动召回发生在下一次调用之前——当前轮次写入的记忆要到下一轮才会被召回,这是刻意的异步设计,用来保证每次 LLM 调用的低延迟。
性能特征:先分清"哪种性能"
讨论性能时必须区分两个维度,否则结论没有意义。
Holographic 的性能
Hermes 资料将 Holographic 定位为:
- 亚毫秒级的本地检索
- 最小开销
- 无外部服务延迟
这对本地响应性是一个很强的性能画像:单用户、单机、低延迟。
Hindsight 的性能
Hindsight 的性能叙事不同。它并不试图成为"最轻量的本地记忆提供商",而是试图在更难的记忆工作负载下准确检索,包括 BEAM 这类大规模记忆基准。据仓库博客 Hindsight Is #1 on BEAM 的叙述,BEAM 测试了 1000 万 token 量级、上下文塞入在物理上不可能的记忆场景,Hindsight 在该量级取得 64.1%,次高的已公开结果约 40.6%(数据以该仓库博客为准)。
因此权衡不是"哪个更快",而是"哪个为我的真实工作负载做了优化":Holographic 优化检索路径的延迟,Hindsight 优化复杂查询(时间、实体、多跳关系)下的召回质量。
选型决策指南
选择Hermes Holographic,当:
- 你的部署是本地优先的
- 你希望依赖越少越好
- 你最看重轻量记忆与快速召回
- 跨工具共享记忆不是主要需求
选择Hindsight,当:
- 你希望记忆在跨会话、跨工具间持久
- 你需要比单一本地机制更丰富的检索
- 时间与实体的连续性很重要
- 多个 Agent 或客户端需要共享上下文
- 你希望有一套在规模下有公开基准证据的系统
如何理解这个权衡
Holographic 的有趣之处在于它从系统角度切入记忆问题:保持本地、保持轻量、保持代数化。
Hindsight 则从Agent 记忆角度切入:retain 时保留结构、检索时走多条策略、让记忆在更大的工作流中可用。
这两个都是正当的设计目标,只是优化了不同的环境。一个务实的判断标准是:如果你的 Agent 只是单机的连续对话伙伴,Holographic 的极简路线已经足够;如果 Hermes 只是更大 Agent 系统的一部分——多设备、多工具、多 Agent 共享同一个记忆银行——那么结构化的事实记忆与多策略召回会直接决定"上周说过的事这周还能不能想起来"。
参考路径(本仓库内)
- Hermes 集成文档(配置表、钩子、连接模式、故障排查):hermes.md
- Hindsight 召回架构(TEMPR 四策略、融合与重排序):retrieval.md
- BEAM 基准结果博客:beam-sota.md
- Hermes 原生记忆提供商发布说明:hermes-native-memory-provider.md
- 内置记忆与 Hindsight 规模化对比:comparison-hermes-built-in-memory-vs-hindsight-at-scale.md
- 旧插件迁移指南:guide-migrate-hindsight-hermes-to-native-hermes-memory.md
【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考