Hermes Desktop 里花 3 分钟给 Agent 配上 Hindsight 长期记忆:不再每次重启都失忆
Hermes Desktop 的 Agent 每次新开会话都像失忆:昨天刚说过的偏好、做过的决策,今天全得重新交代。Hindsight(一个专门给 Agent 做记忆后端的开源项目)能把对话中的关键信息自动留存下来,下次对话前再自动回忆注入。好消息是:在 Hermes Desktop 里接入 Hindsight 全程不需要打开终端,Settings 里选一下、粘贴一个 Key、点保存,跨会话的长期记忆就生效了。
一、先解决那个痛点:Agent 为什么"记不住"
默认情况下,Hermes 的对话上下文只活在当前会话里。窗口一关,**上下文窗口(context window)**里装的东西就全没了——你可以把它理解成一块每次重启都会清空的白板。
接上 Hindsight 之后,白板变成了仓库:
- 每轮 LLM 调用前,
pre_llm_call钩子自动从记忆库里捞出相关记忆,塞进上下文; - 每轮响应结束后,
post_llm_call钩子自动把这轮对话留存进去; - 模型还可以主动调用
hindsight_retain/hindsight_recall/hindsight_reflect三个工具,自己决定写什么、查什么、总结什么。
自动 + 手动两条腿走路,这就是"长期记忆"的完整闭环。
二、从下拉框到 Save:三步走完配置
整个过程只发生在应用内。打开 Settings → Memory & Context,在 Memory Provider 下拉框里选中 Hindsight——选它之后,应用会立刻展开 Hindsight 的专属配置区(其他记忆提供方选完是空白页,这是 Hindsight 独有的完整面板)。
展开后的面板长这样,五个字段填完点右下角的 Save 即可:
三、Cloud 还是 Local External:怎么选看你要不要把数据留在自己机器上
Mode 字段只有两个选项,判断标准其实就一条:记忆数据允不允许出你的网络。
| 场景 | 选哪个 | 你要做的事 |
|---|---|---|
| 个人使用、团队起步、不想运维任何服务 | Cloud(默认) | 从 Hindsight Cloud 控制台的 Connect 页面拿到 hsk_ 开头的 API Key,粘贴进面板,完事 |
| 已有自托管 Hindsight 实例,或数据必须不出内网 | Local External | 把 API URL 改成你的实例地址(如 http://localhost:8888),再填自建实例的认证密钥 |
如果还没有自建实例,用 README 里的 Docker 命令几分钟就能起一个(API 在 http://localhost:8888,UI 在 http://localhost:9999):
export OPENAI_API_KEY=sk-xxx
docker run -it --pull always --name hindsight -p 8888:8888 -p 9999:9999 \
-e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \
-v hindsight-data:/home/hindsight/.pg0 \
ghcr.io/vectorize-io/hindsight:latest
四、面板上的五个字段,各自控制什么
| 字段 | 一句话作用 | 默认值 |
|---|---|---|
| Mode | 连托管的 Cloud 还是连自建实例 | Cloud |
| API key | Hindsight API 的认证凭据,只写密钥,保存后不再回显 | — |
| API URL | 所有 retain / recall / reflect 请求发往的端点 | https://api.hindsight.vectorize.io |
| Bank ID | 当前配置档案读写哪个记忆库(memory bank) | hermes |
| Recall budget | 每轮自动回忆的检索投入强度:low / mid / high | mid |
两个字段值得多说两句。
API key 是"只写"的:保存后它进系统密钥存储区,UI 上只会出现一个 "API key set" 徽章,不会再被回读进表单。这是刻意设计——密钥少在界面上露面一次,泄露面就小一次。
Recall budget 决定"回忆多用力"。服务端会把 low / mid / high 换算成每条检索通道(语义、BM25、知识图谱、时序)内部的检索上限:
- 默认
fixed模式下,三级分别对应100/300/1000,可用HINDSIGHT_API_RECALL_BUDGET_FIXED_LOW/MID/HIGH覆盖; - 改成
adaptive模式后,上限 =max_tokens × 比例,比例默认0.025/0.075/0.25,并被HINDSIGHT_API_RECALL_BUDGET_MIN/MAX(默认20/2000)钳住。
怎么选:聊天类轻场景给 low,要 Agent 深度回忆项目上下文的关键任务给 high,拿不准就保持 mid。
Bank ID 控制记忆归属。记忆库可以理解为一个个完全隔离的文件夹:bank A 里存了什么,bank B 里看不见。每个 Hermes 配置档案(profile)指向一个 Bank ID,所以不同档案互不串味,同一档案换台机器登录,记忆跟着档案"漫游"过去。⚠️ 提醒一点:读一个不存在的 bank 会直接返回 404 而不是空结果——拼错 Bank ID 会立刻报错,而不是安静地假装一切正常。
五、保存之后,配置和密钥分别去了哪
你不需要手动管理任何文件,保存动作会自动分流:
- API key → 密钥存储区,永不回读进表单;
- Mode / API URL / Bank ID / Recall budget → 当前 Hermes 配置档案的 profile config。
这套分流和 CLI 场景是同构的:命令行里 Key 通过 HINDSIGHT_API_KEY 环境变量注入,其余设置写在 ~/.hermes/hindsight/config.json,且环境变量优先级高于配置文件。也就是说,Desktop 面板和 CLI 随时可以互换,记忆后端不用动。
如果同时还开着 Hermes 内置的 MEMORY.md 扁平文件记忆,两个记忆源容易互相干扰,建议在 CLI 里关掉它:
hermes config set memory.memory_enabled false
六、接下来怎么走:按你的角色挑一条路
- 纯 Desktop 用户:注册 Hindsight Cloud 拿到 API Key 粘进面板就完工;想核对字段含义随时翻 Hermes Desktop 集成文档。
- CLI / 网关重度用户:用
hermes memory setup向导配置,Telegram、Discord、Slack 多平台网关下每轮消息都会自动回忆;完整参考见 Hermes Agent 集成文档。 - 自托管团队:Docker 裸跑参考 README,多服务编排看 docker-compose 示例 或 Helm Chart;回忆预算的服务端调优参数清单在 Configuration 文档,记忆库的存储与隔离模型在 Memory Banks 文档。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





