Hermes Agent Hindsight 记忆系统

概述

Hindsight 是 Hermes Agent 的外部记忆提供商(Memory Provider)之一,基于知识图谱(Knowledge Graph)实现长期记忆。与内置的 MEMORY.md / USER.md 不同,Hindsight 提供实体解析、多策略检索和跨记忆综合(cross-memory synthesis)能力,是 8 个可选记忆提供商中唯一具备 hindsight_reflect 综合推理工具的。

核心架构

三层记忆体系

层级组件说明
L0 内置记忆MEMORY.md / USER.md固定注入 system prompt,~1,300 tokens
L1 会话搜索session_search (FTS5)跨会话全文搜索 + LLM 摘要
L2 外部提供商Hindsight / Honcho / OpenViking 等知识图谱、语义检索、自动提取

Hindsight 特有能力

  • 知识图谱存储:自动从对话中提取实体和关系,构建图谱
  • 实体解析:识别并关联同一实体的不同表述
  • 多策略检索:语义搜索 + 关键词匹配 + 图遍历
  • 跨记忆综合hindsight_reflect):对所有存储记忆进行推理综合,生成连贯回答
  • 自动保留对话:完整保留对话轮次(含工具调用),支持会话级文档追踪

三个工具

工具功能使用场景
hindsight_retain存储信息,自动提取实体主动保存事实、决策、偏好
hindsight_recall多策略语义搜索查找相关历史记忆
hindsight_reflect跨记忆综合推理基于所有记忆生成分析回答

hindsight_retain

存储信息到长期记忆,自动进行实体提取和索引。

参数:

  • content(必填):要存储的信息
  • context(可选):上下文标签(如 “user preference”、“project decision”)
  • tags(可选):标签列表,与配置的默认标签合并

hindsight_recall

多策略检索相关记忆。返回按相关度排序的记忆列表,综合使用语义搜索、关键词匹配、实体图遍历和重排序。

参数:

  • query(必填):搜索查询

hindsight_reflect

Hindsight 独有功能。与 recall 不同,reflect 对所有存储记忆进行推理,生成连贯的综合回答,而非返回原始记忆片段。

参数:

  • query(必填):需要综合分析的问题

部署模式

Cloud 模式(默认)

Local 模式

  • 需要 LLM API Key(OpenAI、Groq、OpenRouter 等)
  • 本地嵌入式 PostgreSQL 存储
  • 依赖:hindsight-all
  • 本地 UI:hindsight-embed -p hermes ui start

配置

配置文件:$HERMES_HOME/hindsight/config.json

设置方式

# 方式一:交互式向导(推荐)
hermes memory setup    # 选择 "hindsight"
 
# 方式二:手动配置
hermes config set memory.provider hindsight
echo "HINDSIGHT_API_KEY=***" >> ~/.hermes/.env

配置参数

参数默认值说明
modecloudcloudlocal
bank_idhermes记忆库标识符
recall_budgetmid检索深度:low / mid / high
memory_modehybridhybrid(上下文 + 工具)/ context(仅注入)/ tools(仅工具)
auto_retaintrue自动保留对话轮次
auto_recalltrue每轮对话前自动召回相关记忆
retain_asynctrue异步处理保留请求
retain_contextconversation between Hermes Agent and the User保留记忆的上下文标签
retain_tags默认标签,与每次调用的标签合并
retain_source可选的 metadata.source
retain_user_prefixUser用户发言前缀
retain_assistant_prefixAssistant助手发言前缀
recall_tags召回时的标签过滤

与其他提供商对比

特性HindsightHonchoOpenVikingMem0
存储方式知识图谱对话建模文件系统层级事实提取
跨记忆综合✅ reflect✅ dialectic
实体解析✅ peer cards
自动保留✅ 全量对话✅ 消息✅ 6 类提取✅ 事实
本地部署✅ PostgreSQL✅ 自托管✅ 本地❌ 仅云端
免费本地免费自托管免费完全免费

工作流程

对话开始
  ↓
auto_recall → 从知识图谱检索相关记忆 → 注入 system prompt
  ↓
用户对话
  ↓
auto_retain → 异步保留对话到知识图谱(含实体提取)
  ↓
agent 可主动调用:
  - hindsight_retain → 保存重要事实
  - hindsight_recall → 搜索历史记忆
  - hindsight_reflect → 综合分析所有记忆
  ↓
会话结束 → 完整对话归档

最佳实践

  1. recall_budget 选择:日常用 mid,需要深度回忆时用 high
  2. memory_mode 选择hybrid 最灵活(自动注入 + 手动工具),context 最省 token
  3. 标签策略:用 retain_tags 按项目/主题分类,便于后续过滤检索
  4. 配合内置记忆:Hindsight 是增量的,内置 MEMORY.md/USER.md 始终工作
  5. 本地 vs 云端:敏感数据用 local 模式,省心用 cloud 模式

注意事项

  • 同一时间只能激活一个外部记忆提供商
  • 内置记忆(MEMORY.md / USER.md)始终独立运行,不受外部提供商影响
  • hindsight-client 版本要求 >= 0.4.22,会在会话启动时自动升级
  • 本地模式需要额外的 LLM API 调用成本(用于实体提取和嵌入)
  • hermes tools disable memory 可以手动禁用本地记忆