返回列表 发布新帖

[用户教程] 【邪修】Hermes的第二大脑——NAS本地部署Hindsight和TEI向量服务,让Hermes不再健忘

84 0
发表于 22 小时前 | 查看全部 阅读模式 IP:–河南 /全省通用

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 设计虱聊科技 于 2026-6-19 00:55 编辑

上两篇文章,我们介绍了怎么部署 Hermes,和解决 Hermes 协作目录权限的问题。今天我们来聊聊 Hermes 的记忆系统进阶插件——Hindsight,和它的本地化部署。
001.png


什么是 Hindsight

全新部署的 Hermes,用两个星期后,就会发现一个尴尬的事情:Hermes 总提示 Memory 已满。
这其实是 Hermes 特意设计的,目的是避免上下文被塞入越来越庞大的记忆内容,稀释 LLM 的注意力。
002.png
但是,这也同时限制了 Hermes 的长期记忆。USER. md 和 SOUL. md 同样有字数限制,如果我们需要让 Hermes 做更多的工作,确实不大够用。
Hindsight 插件就是为了解决这个问题,一个能让 NAS 记住所有基本事实和用户习惯的外置大脑,它不占用 Hermes 宝贵的 Memory 限额,而是通过外部数据库的形式给Hermes提供记忆支持。
有了 Hindsight,Hermes 就同时拥有了两套互补的记忆机制:
(1)Hermes 内置的 Memory:
存放当前最重要、最需要随时取用的信息,属于热记忆。约 2200 字符的限制让大模型能够更加专注于当前的工作。
(2)Hindsight 外置大脑:
存放海量的被认为有用的内容,还会通过分析形成图谱。用到的时候按需检索,属于长期记忆。几乎无限的记忆空间让 Hermes 能记住更多的信息,但又不会一股脑塞给大模型,而是仅在需要时调用。
003.png


Hindsight在记忆系统中扮演怎样的角色

用一句话来概括:
Hindsight 不是 Hermes 内存中的一层,而是整个“大脑”中的专业记忆中枢。
Hermes 自身虽然拥有“工作记忆”、“情景记忆”和“技能库”这三层架构,但它们的设计都受限于有限的上下文窗口。如果说Hermes内置的记忆系统是高效的“便签”和“关键词搜索工具”,那 Hindsight 就扮演了大脑皮层的角色。
它的任务是将每次对话自动转化、提炼为结构化的知识图谱,形成一个独立于对话上下文、可无限扩展、极其精准的“外接大脑”。我们可以从下表的对比中看到两者的显著区别:
PixPin_2026-06-18_23-43-54.png
Hindsight 通过“Retain(存储)”、“Recall(检索)”和“Reflect(反思)”三大核心机制运转,不仅存得更精细、找得更精准,更能主动思考、不断进化。


为什么我们需要

Hindsight 模仿人脑的分层记忆结构,它不是简单的"记住",而是能"理解"和"反思"。
它把记忆分成四种类型:
  • World Fact(世界事实): 客观事实,比如"Alice在Google工作"。
  • Experience Fact(经历) AI自己的行动记录,比如"我推荐过Alice用Python"。
  • Observation(观察) 就厉害了——它会自动整合多条事实,得出"理解"。比如你之前跟它聊过偏好React、聊过想学Vue,它能自己总结出"用户想从React转向Vue"。
  • Mental Model(心智模型) 这是人工定义的高层知识,相当于给AI一个"人物设定"。
听起来有点复杂?说人话:装上它之后,Hermes就不再是每次都要重新认识的陌生人,而是真正变成了一个记得住我们喜好、了解我们习惯的私人助理。


Hindsight的工作机制

整个过程是这样的:
(1)提取关键信息——Retain(留存)
Hermes 在对话过程中,Hermes 会提取认为有用的信息,交给 Hindsight 容器,Hindsight 容器调用 TEI 容器中的向量模型将数据向量化,存到数据库中。
(2)信息调用——Recall(召回)
当需要回答问题时,Hindsight 执行 TEMPR 混合检索。它会并行使用语义检索、关键词检索、图谱遍历和时间过滤,并用 RRF 和重排序器融合结果返回。
(3)信息整合——Reflect(反思)
这是 Hindsight 的核心优势。后台会自动执行 Reflect 操作,分析检索结果并更新知识图谱、合并相似观察并生成心智模型,实现自我进化。
Hermes 做了什么:
  • 负责与用户的交互。它会在对话中自动调用 Hindsight 的 API,完成记忆的存储和召回,同时对上下文进行管理。
  • Hermes 的 Skills 机制能将从 Hindsight 学到的经验固化为可复用的技能,下次遇到相似任务时可以直接调用,越用越“聪明”。
004.png


部署思路

Hindsight 有在线 API 版本和本地版,作为高贵的 NAS 用户,当然是选择本地部署了,怒省一笔每月的 API 订阅费用。
我们需要通过 Docker 部署几个东西:
(1)Hindsight 容器:
用来运行 Hindsight 本地服务,常驻约500~600MB内存。
(2)TEI 容器:
TEI 的作用与 Ollama 类似,是调用本地向量模型,这里本地向量模型我们选择资源占用少、效果还不错的 bge-small-zh-v 1.5,常驻约 100 MB 内存,512 维,对于 NAS 用户,在速度和精度上较均衡。
不用 Ollama 部署本地向量模型,是因为我已经替你们试过了,Hindsight 不支持。
(3)LLM 语言大模型: 不建议本地部署
我试过 Qwen 2.5: 0.5B 级别的本地模型,这已经是很轻的语言模型了,结论是带不动。
我尝试输入一句只有十几个字的信息,结果在数据提取时,因为 Hindsight 需要先调用 LLM 把信息细化为一个复杂的含有多字段信息的 JSON 数组,输出长度有 9000 多个字符,本地语言大模型的速度根本跟不上,导致整个流程卡死。
对比成本,结构化提取每次消耗约 500 tokens,这对于语言大模型来说九牛一毛,关键是 NAS 这种本地低功耗设备实在搞不定,所以 LLM 还是老老实实用云端的吧,随便选一个成本最低的,反正这种活是个 LLM 都能干。
(4)Reranker 重排序模型: 建议先用内置的RRF
对搜索结果进行排序,精准找到最符合条件的内容。建议先用 Hindsight 内置的 RRF 跑起来,对于普通人来说够用了。
如果后期数据量大了,或者对搜索效果不满意,再增加 Reranker 模型的配置。
如果确实需要 Reranker 模型,几个建议:
  • 直接用语言大模型: 慢、贵,但是准。
  • 在线 Reranker 模型: 可以去硅基流动试试免费的 bge-reranker-v2-m3,不知道免费模型排队、限流情况怎么样。
  • 本地部署: 重排序模型本地应该跑得动,我没有尝试。如果有大佬部署成功了,也请分享下经验。
梳理了思路后,我们开始动手。


部署本地向量模型

我们用 Docker-Compose 来部署 TEI 和向量模型 bge-small-zh-v 1.5。TEI 选择专为 CPU 推理优化的版本:ghcr.io/huggingface/text-embeddings-inference:cpu-1.9
  1. services:
  2.   tei-embedding:
  3.     image: ghcr.io/huggingface/text-embeddings-inference:cpu-1.9
  4.     container_name: tei-embedding
  5.     restart: unless-stopped
  6.     ports:
  7.       - "8081:80"
  8.     volumes:
  9.       - /volume1/docker/tei_embedding/models/bge-small-zh-v1.5:/data/model
  10.     command:
  11.       - --model-id
  12.       - /data/model
  13.       - --port
  14.       - "80"
  15.     environment:
  16.       - MAX_CONCURRENT_REQUESTS=8
  17.     extra_hosts:
  18.       - "host.docker.internal:host-gateway"
  19.     deploy:
  20.       resources:
  21.         limits:
  22.           memory: 2G
  23.           cpus: "1.0"
复制代码
对配置做个解释:
★ 最大并行数: MAX_CONCURRENT_REQUESTS 是最大并行数的设置,8 代表可以并行跑 8 个任务。根据自己的需求调整。
★ Docker 内通信: 因为需要 Hindsight 容器与 TEI 容器通信,所以我们设置了Docker内通信(host.docker.internal: host-gateway),这样比通过 IP 通信更快。
★ 向量模型下载: 如果因为网络环境问题造成模型下载反复失败,可以去魔塔或模力方舟手动下载 bge-small-zh-v 1.5 的所有文件,放到同一个文件夹内。
007.png
文件夹命名为 bge-small-zh-v 1.5,放进 TEI 的 docker数据目录/models 下,再重新部署 TEI。
008.png
这样,本地向量模型就准备好了。


部署本地 Hindsight 容器

为了数据不上云,达到省 API 订阅费用的目的,我们在本地用 Docker-Compose 部署 Hindsight 容器。
镜像我这里建议选择官方的轻量版:ghcr.io/vectorize-io/hindsight:latest-slim,对于我们的使用场景,核心功能与完整版(Full)是一样的。
  1. version: '3.8'
  2. services:
  3.   hindsight:
  4.     image: ghcr.io/vectorize-io/hindsight:latest-slim
  5.     container_name: hindsight
  6.     restart: unless-stopped
  7.     ports:
  8.       - "8888:8888"
  9.       - "10000:9999" # 我的9999端口被占用,所以改成了10000
  10.     environment:
  11.       # LLM 配置(使用云端 API)
  12.       - HINDSIGHT_API_LLM_PROVIDER=openai
  13.       - HINDSIGHT_API_LLM_BASE_URL=自己改
  14.       - HINDSIGHT_API_LLM_MODEL=自己改
  15.       - HINDSIGHT_API_LLM_API_KEY=自己改
  16.       # Embedding 配置(TEI 本地服务)
  17.       - HINDSIGHT_API_EMBEDDINGS_PROVIDER=tei
  18.       - HINDSIGHT_API_EMBEDDINGS_TEI_URL=http://NAS IP:8081
  19.       - HINDSIGHT_API_EMBEDDINGS_MODEL=BAAI/bge-small-zh-v1.5
  20.       # TEI 不需要 API Key,但 Hindsight 可能要求提供,因此设一个占位值
  21.       - HINDSIGHT_API_EMBEDDINGS_TEI_API_KEY=no-key-needed
  22.       # Reranker 配置(暂用 RRF 融合)
  23.       - HINDSIGHT_API_RERANKER_PROVIDER=rrf
  24.       - HINDSIGHT_LOG_LEVEL=info
  25.     volumes:
  26.       - hindsight-data:/home/hindsight/.pg0
  27.     extra_hosts:
  28.       - "host.docker.internal:host-gateway"
  29. volumes:
  30.   hindsight-data:
复制代码

对配置做个解释:
★ 8888 端口:  是 API 调用端口,Hermes 通过它与 Hindsight 容器通信。
★ 9999 端口: 是我们与 Hindsight 网页交互的通道,我这里因为 9999 端口被占用,所以改为了 10000 端口(容器端口保持9999不变,只改NAS端口)。以后我们就用 http://NAS IP:10000 来访问网页端。
★ Docker 内通信: 与 TEI 容器一样,在 Hindsight 的 Compose 中也声明 Docker 内通信(host.docker.internal: host-gateway)。
★ LLM 语言大模型: 你们根据自己的资源自己改,注意用 OpenAI 格式。
★ TEI 的地址: 设置 Docker 内通信地址(host.docker.internal: host-gateway)。
★ Rerenker 设置: 我用的是内置的免费 rrf,可以先跑起来看效果。


Hermes 统筹配置

现在,我们把基础设施搭建好了。还需要在 Hermes 配置一下。
进入 Hermes 容器终端,输入 hermes memory setup,在列表中选择 hindsight
  1. hermes memory setup
复制代码
009.png
模式选择第三个,本地额外部署
010.png
按提示填入 Hindsight 容器的地址: 端口,也就是 http://NAS IP:8888,API key 直接留空回车。
011.png
看到成功信息后,我们在浏览器输入 http://NAS IP:10000 ,进入 Hindsight 的后台,新建一个记忆库,比如 default,或任何你喜欢的名字。
012.png
回到 Hermes 的终端窗口,输入:
  1. hermes config set memory.hindsight.default_bank_id default
复制代码
其中,最后一个 default 是记忆库的名字,改成你刚才新建的记忆库名字。
013.png
这样就全部部署完成了,Hermes 变成了真正记得住我们一切的私人助理。


下期预告

部署完成只是一个开始,有些配置不做好它也不好好干活。过几天咱们聊聊 Hindsight 的进一步优化配置。敬请期待。
20260618-173459.png

我是设计虱聊科技——坚持创作有深度、高质量的作品、致力于分享干货、抵制标题党和网络垃圾,是我的座右铭。让我们共同打造互联网内容创作和知识分享的一股清流!ヾ(◍°∇°◍)ノ゙



评论

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2026 绿联NAS私有云社区 版权所有 All Rights Reserved. 粤公网安备44030002002555号| 粤ICP备12028978号
关灯 在本版发帖
联系技术支持
返回顶部
快速回复 返回顶部 返回列表