Hermes + Holographic:AI Agent 的"长期记忆"是如何工作的

Hermes + Holographic:AI Agent 的"长期记忆"是如何工作的

大多数 AI 助手每次对话都从零开始。Hermes Agent 通过 Holographic 记忆插件,让 AI 真正拥有跨会话的结构化长期记忆------而且完全本地运行,不需要任何外部 API。


背景:AI 助手的"失忆"问题

用过 AI 助手的人都有这个感受:每次新开一个对话,它就像失忆了一样,什么都要重新解释。你的技术栈、你的偏好、上周讨论过的项目------全没了。

Hermes Agent 的内置记忆(MEMORY.md / USER.md)解决了一部分问题:把关键信息写成 Markdown 文本,每次对话时注入到 prompt 中。但这种方式有明显局限------

  • 文本量大时会占用大量 context window
  • 无法做精确检索,只能全量加载
  • 没有"知识之间的关联性"

Holographic 记忆插件是为解决这些问题而生的。


Holographic 是什么

Holographic 是 Hermes 的一个本地记忆扩展插件,名字来源于认知科学中的 HRR(Holographic Reduced Representations,全息降维表示) 理论(Plate, 1995)。

核心特点:

  • 📦 纯本地 --- 基于 SQLite,零依赖,不需要任何外部 API 或云服务
  • 🧮 向量化存储 --- 每条事实都有对应的 HRR 相位向量
  • 🔍 三路混合检索 --- FTS5 全文搜索 + Jaccard 词重叠 + HRR 向量相似度
  • 📊 信任评分系统 --- 每条记忆有动态 trust score,可通过反馈训练
  • 🏷️ 实体关联 --- 自动提取命名实体,支持多实体组合推理

架构:两层记忆并行工作

启用 Holographic 后,Hermes 实际上运行着两套互补的记忆系统

scss 复制代码
Hermes Agent
├── 内置 Memory (MEMORY.md / USER.md)
│   ├── 形式:Markdown 文本
│   ├── 适合:用户偏好、环境配置等轻量信息
│   └── 机制:每次对话全量注入 prompt
│
└── Holographic (memory_store.db)
    ├── 形式:结构化 facts + HRR 向量
    ├── 适合:项目知识、复杂关联、可推理的事实
    └── 机制:按需检索,trust score 过滤

两个层级同时工作,互补而不替代。


HRR:向量符号架构的核心原理

HRR 是 Holographic 最独特的部分,值得深入理解。

基本思想

传统向量表示(如 word embedding)把词映射到向量空间,但很难表达关系。比如"KEN 使用 Kubernetes"这种结构化知识,用普通向量很难编码。

HRR 用三个代数操作解决了这个问题:

css 复制代码
bind(A, B)    →  相位相加   = 把两个概念"绑定"成一个复合概念
unbind(M, A)  →  相位相减   = 从记忆中取回与 A 关联的概念
bundle(A,B,C) →  相位均值   = 把多个概念"叠加"成一个超级向量

Holographic 的实现方式

每个词通过 SHA-256 生成确定性的相位向量(1024 维),跨进程、跨机器完全一致:

python 复制代码
def encode_atom(word: str, dim: int = 1024) -> np.ndarray:
    """确定性相位向量 --- 同一个词永远映射到同一个向量"""
    uint16_values = []
    for i in range(math.ceil(dim / 16)):
        digest = hashlib.sha256(f"{word}:{i}".encode()).digest()
        uint16_values.extend(struct.unpack("<16H", digest))
    phases = np.array(uint16_values[:dim]) * (2π / 65536.0)
    return phases

一条事实文本通过对词向量执行 bundle(叠加)操作,得到整句话的语义表示,存入数据库的 hrr_vector 字段(BLOB 格式)。


检索流程:三路混合打分

当需要从记忆库中查找相关事实时,Holographic 执行一个三阶段流水线:

yaml 复制代码
输入 Query
    │
    ▼
Stage 1: FTS5 全文搜索 (SQLite 原生)
    │  取 limit×3 个候选
    ▼
Stage 2: 三路重排序
    ├── FTS5 匹配分     × 0.4
    ├── Jaccard 词重叠  × 0.3
    └── HRR 向量相似度  × 0.3
    │
    ▼
Stage 3: Trust Score 加权
    │  final_score = relevance × trust_score
    ▼
返回 Top-K 结果

这个设计很聪明:FTS5 保证关键词精确匹配,Jaccard 处理同义词覆盖,HRR 捕捉语义相近但词面不同的情况。三路互补,没有任何单一方法能独立做到这个效果。


信任评分:让记忆自我进化

每条事实默认 trust_score = 0.5。每次被检索和使用后,可以通过 fact_feedback 工具给反馈:

ini 复制代码
标记 helpful   → trust_score += 0.05
标记 unhelpful → trust_score -= 0.10

分值范围限制在 [0.0, 1.0],检索时默认过滤 trust_score < 0.3 的事实。

效果:准确的记忆不断被强化,过时或错误的记忆逐渐沉底,最终自动被过滤掉。这是一个简洁但有效的自我进化机制。


与 Hermes 的集成方式

Holographic 通过 MemoryProvider 接口挂入 Hermes 的会话生命周期:

ini 复制代码
Session 开始
  → MemoryManager 加载 HolographicMemoryProvider
  → 注册两个新工具到对话:
      • fact_store  (9种操作)
      • fact_feedback (训练 trust score)

对话中
  → AI 可调用 fact_store(action="add") 主动存入事实
  → 调用 fact_store(action="probe", entity="KEN") 取回某人所有相关事实
  → 调用 fact_store(action="reason", entities=["KEN","K8s"]) 多实体组合查询

Session 结束 (on_session_end hook)
  → auto_extract=true 时,自动从对话提取值得记住的事实
  → 写入 memory_store.db

fact_store 支持的 9 种操作覆盖了完整的知识管理需求:

操作 用途
add 存入一条新事实
search 关键词混合检索
probe 取回某实体的所有相关事实
related 查找与某实体结构上相邻的事实
reason 多实体组合推理查询
contradict 查找互相矛盾的事实(记忆卫生)
update 更新已有事实
remove 删除事实
list 枚举所有事实

实际效果:测试验证

在我的环境中,整个链路的测试结果如下:

bash 复制代码
# 初始化 provider,写入一条事实
provider.initialize('test-session-001')

result = provider.handle_tool_call('fact_store', {
    'action': 'add',
    'content': 'KEN 是 Lead Cloud DevOps Engineer,偏好中文交流,位于中国',
    'category': 'user_pref',
    'tags': 'ken,profile,devops'
})
# → {"fact_id": 1, "status": "added"}

# 检索
result = provider.handle_tool_call('fact_store', {
    'action': 'search',
    'query': 'KEN DevOps'
})
# → {"results": [{"fact_id": 1, "content": "KEN 是 Lead Cloud DevOps Engineer...", 
#                "trust_score": 0.5, "score": 0.316}], "count": 1}

写入、检索全部正常,SQLite 原生,零网络请求。


开启方法

只需两步:

bash 复制代码
# 1. 设置 provider 为 holographic(无需 API key)
hermes config set memory.provider holographic

# 2. 开启自动提取(session 结束时自动从对话中提取事实)
hermes config set plugins.hermes-memory-store.auto_extract true

可选配置(写入 config.yaml):

yaml 复制代码
plugins:
  hermes-memory-store:
    auto_extract: true
    default_trust: 0.5          # 新事实初始信任分
    min_trust_threshold: 0.3    # 检索时过滤阈值
    temporal_decay_half_life: 0 # 时间衰减(0=关闭)
    hrr_dim: 1024               # 向量维度

总结

Holographic 给 Hermes 带来的不只是"记住更多东西",而是一套有结构、可推理、能自我进化的知识管理系统:

  • HRR 向量让语义相似的记忆可以被找到,即使关键词不同
  • 三路混合检索平衡了精确性和语义召回
  • trust score让记忆质量随使用自动提升
  • 实体关联支持"关于 KEN 的所有事实"这类结构化查询
  • 纯本地 SQLite,隐私安全,无外部依赖

这个架构的设计哲学值得借鉴:不是用 RAG + 向量数据库的重型方案,而是用 SQLite + FTS5 + 简洁的 HRR 代数,在极低复杂度下实现了相当强大的功能。


本文基于 Hermes Agent v0.11.0 实测,Holographic 插件版本 0.1.0。

相关推荐
益企联工程项目管理软件1 小时前
2026工程管理软件推荐:7款工具助力工程项目数字化升级!
大数据·人工智能·云原生·项目管理·制造
liao__ran3 小时前
Kubernetes攻防 攻击 lxcfs
云原生·容器·kubernetes
AI攻城狮4 小时前
Gemini Pro 的失败证明 AGI 路线的严重泡沫
云原生
东北甜妹4 小时前
K8s -探针
云原生·容器·kubernetes
郑寿昌4 小时前
K8s中GPU智能体扩缩容的显存碎片优化
云原生·容器·kubernetes
roman_日积跬步-终至千里5 小时前
【系统架构师案例题-知识点】云原生与大数据架构
大数据·云原生·系统架构
米高梅狮子7 小时前
09.kube-proxy、Ingress和Network Policy
云原生·容器·架构·kubernetes·自动化
面汤放盐8 小时前
架构对比:单体架构与微服务架构
微服务·云原生·架构
iwS2o90XT8 小时前
微服务架构设计:Spring Cloud Gateway与Nacos集成
微服务·云原生·架构