ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Hindsight 成为 Hermes Agent 原生内存提供者:两分钟接入持久记忆的完整配置指南

Hindsight 成为 Hermes Agent 原生内存提供者:两分钟接入持久记忆的完整配置指南 Hindsight 成为 Hermes Agent 原生内存提供者两分钟接入持久记忆的完整配置指南【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsightHindsight 现已作为 Hermes Agent 的原生内存提供者Native Memory Provider随代理内置发布用户无需安装任何额外插件只需运行一条向导命令即可为代理接入跨会话的持久记忆。本文将完整讲解 Hermes 原生内存提供者的工作原理turn 前自动召回、turn 后异步留存、hybrid/context/tools三种记忆模式的选型与切换、config.json全部配置项、从旧版hindsight-hermes插件的迁移路径以及本地嵌入模式与云端模式的部署差异并结合本仓库源码给出底层实现佐证。为什么 Hermes 需要原生内存提供者Hermes Agent 自带一套内置记忆工具它把模型明确决定记下的内容保存为本地 Markdown 文件MEMORY.md与更精简的USER.md档案。这种方式能工作但存在本质局限——它只能捕获模型显式决定写下来的内容无法捕获模型从对话中隐式学到的东西上下文不会自动累积。周一你让 Hermes 帮忙规划一次 Sprint周五开启新会话时它已经不记得项目、团队成员和截止日期除非你重新建立上下文。Hindsight 用跨会话的持久记忆解决这个问题你只需提一次产品发布日期一周后在一个完全不同话题的新会话中Hermes 已经知道这个日期。你不需要重复自己不需要粘贴上下文记忆会被自动召回。从仓库源码结构看这套能力建立在一套完整的记忆后端之上事实提取、实体消解、知识图谱、多策略检索与交叉编码器重排cross-encoder reranking都在 Hindsight 服务端完成。内置记忆只是扁平文本而 Hindsight 提供结构化的事实、实体与关系这正是两者最根本的差异详细对比可参见早期的插件教程 Give the Only Self-Improving AI Agent (Hermes) a Memory Upgrade It Deserves。工作原理在 Hermes 生命周期中两个接入点Hindsight 原生提供者在 Hermes 的每次对话轮次turn中于两个位置介入每一轮开始前pre_llm_call hookHindsight 排队执行一次异步预取prefetch。过去会话中的相关记忆被检索出来在 LLM 看到你的消息之前注入到系统提示词中。模型因此拥有此前对话的上下文而你无需重复任何内容。每一轮响应后post_llm_call hook你的对话被异步留存retain。Hindsight 在后台提取事实、实体和关系本轮的对话内容从下一次调用起即可被检索到。这个设计是有意为之预取模式意味着当前轮次的记忆要到下一轮才会出现这保证了每一次调用的速度。集成文档 Hermes Agent Persistent Memory with Hindsight 明确列出了提供者注册到 Hermes 的全部组件组件用途pre_llm_callhook自动召回——查询记忆以临时系统提示上下文注入post_llm_callhook自动留存——把用户/助手对话存入 Hindsighthindsight_retain工具显式记忆存储模型主动发起hindsight_recall工具显式记忆搜索模型主动发起hindsight_reflect工具基于已存记忆的 LLM 合成回答注意pre_llm_call/post_llm_call生命周期钩子要求 hermes-agent 具备对应 PR#2823之后的版本在更老的版本上只注册三个工具钩子会被静默跳过自动注入不生效。底层 API 路由在源码中有明确对应召回与反射分别注册为POST /banks/{bank_id}/memories/recall与POST /banks/{bank_id}/reflect等端点见 hindsight-api-slim/hindsight_api/api/http.py 附近的路由表而重排层由跨编码器抽象统一封装见 hindsight-api-slim/hindsight_api/engine/cross_encoder.py支持本地进程内模型与远程 TEI 端点说明召回背后确实是一条多策略检索加重排的完整流水线。为什么选择 HindsightBEAM 基准与规模效应在所有受支持的内存提供者中Hindsight 是唯一一个在 BEAM 基准上公布了结果的提供者。BEAMBeyond a Million Tokens专门测试 1000 万 token 级别的记忆能力——在这个规模下把全部上下文塞进提示词context stuffing在物理上已经不可能只有真正的记忆架构才能存活。相关完整解读见 Hindsight Is #1 on BEAM — the Benchmark That Tests Memory at 10 Million Tokens。BEAM 各档位上的公开结果TierHindsightHonchoLIGHT 基线RAG 基线100K73.4%63.0%35.8%32.3%500K71.1%64.9%35.9%33.0%1M73.9%63.1%33.6%30.7%10M64.1%40.6%26.6%24.9%在 10M 档位Hindsight 得分为 64.1%第二名的公开成绩是 40.6%领先 58%相对论文基线则是 2.4 倍以上。值得注意的细节是Hindsight 的 1M 得分73.9%高于其 500K 得分71.1%——随着 token 量增加性能不降反升而大多数系统呈现相反趋势这正是记忆架构在规模效应下应有的表现。两分钟接入设置向导与状态确认全新接入只有一条向导命令选择hindsight即可hermes memory setup # 选择 hindsight然后确认记忆已激活hermes memory status向导会提示你输入 API Key 与 API URL 并自动完成全部配置。如果你偏好手动配置也可以直接设置提供者并写入环境变量env var 优先级高于配置文件hermes config set memory.provider hindsight echo HINDSIGHT_API_KEYyour-key ~/.hermes/.env echo HINDSIGHT_API_URLhttps://api.hindsight.vectorize.io ~/.hermes/.env云端 API 端点为https://api.hindsight.vectorize.ioAPI Key 可在控制台申请。配置落盘在$HERMES_HOME/hindsight/config.json默认即~/.hermes/hindsight/config.json主文档给出了这份核心配置表Key默认值说明modecloudcloud或localbank_idhermes记忆库memory bank标识budgetmid召回力度low/mid/highmemory_modehybridhybrid、context或tools——见下文prefetch_methodrecallrecall快或reflectLLM 合成集成文档 hermes.md 进一步列出了每个配置项对应的环境变量覆盖方式常用几组如下连接与守护进程modeHINDSIGHT_MODE、api_urlHINDSIGHT_API_URL、api_keyHINDSIGHT_API_KEY、apiPortHINDSIGHT_API_PORT本地守护进程端口默认9077、embedVersionHINDSIGHT_EMBED_VERSION指定hindsight-embed版本LLM 提供者仅 local 模式llm_providerHINDSIGHT_LLM_PROVIDER支持openai、anthropic、gemini、groq、minimax、ollama、lmstudio、llm_api_keyHINDSIGHT_LLM_API_KEY、llm_modelHINDSIGHT_LLM_MODEL。各提供者默认模型为openai→gpt-4o-mini、anthropic→claude-haiku-4-5、gemini→gemini-2.5-flash、groq→openai/gpt-oss-120b、minimax→MiniMax-M3、ollama→gemma3:12b记忆库bank_idHINDSIGHT_BANK_ID、bankMissionHINDSIGHT_BANK_MISSION代理身份/用途描述、retainMission自定义留存任务决定从对话中提取什么自动召回autoRecallHINDSIGHT_AUTO_RECALL默认true、recallBudgetHINDSIGHT_RECALL_BUDGET即low/mid/high、recallMaxTokensHINDSIGHT_RECALL_MAX_TOKENS默认4096、recallMaxQueryCharsHINDSIGHT_RECALL_MAX_QUERY_CHARS默认800、recallPromptPreamble注入在召回记忆之前的引导文案自动留存autoRetainHINDSIGHT_AUTO_RETAIN默认true、retainEveryNTurns默认1、retainOverlapTurns额外重叠轮次默认2、retainRoles默认[user, assistant]调试debugHINDSIGHT_DEBUG默认false其中budget召回力度直接影响召回阶段投入的检索与重排计算量与recallBudget是同一配置的不同视角low追求速度、mid为默认平衡、high追求彻底。记忆模式hybrid / context / tools自动召回是核心行为每一轮开始前Hindsight 自动从历史中获取相关记忆并注入系统提示词——Hermes 无需调用任何工具、你也无需重复自己每次调用都会透明发生。memory_mode设置决定自动召回是否启用、以及显式工具是否暴露给模型模式行为hybrid默认每轮前自动注入记忆同时向模型暴露hindsight_recall、hindsight_retain、hindsight_reflect三个工具context仅自动召回——记忆自动注入模型看不到任何工具tools仅显式工具——模型必须调用hindsight_recall才能检索记忆不注入任何内容三种模式的选型逻辑详见指南 Hermes Memory Modes with Hindsighthybrid最安全的默认值适合大多数用户。自动上下文加显式工具既方便调试又保留控制力适合内部助手与技术用户。context面向最终用户的隐形个性化。工具面更干净、行为噪声更少适合客服型助手——模型天然带着历史开始对话不需要记得记忆是一个工具类别。tools模型自行决定何时查询记忆。提示词控制更紧适合把hindsight_recall/hindsight_reflect当作一等推理工具的实验性代理策略。代价是明显的如果模型提示词不佳它可能干脆忘记使用记忆。请记住一条规则——tools模式下自动召回消失不是故障这正是设计。prefetch_method控制自动召回阶段记忆的获取方式recall默认语义检索、关键词匹配、实体图谱遍历加重排速度快。reflectLLM 把全部相关记忆综合成一份连贯摘要更慢但在复杂上下文场景下更有用。从源码结构看recall的多策略检索加重排有据可循服务端召回路由之后会经过跨编码器统一重排层cross_encoder.py 中的CrossEncoderModel抽象及其本地/远程实现而reflect则对应独立的/reflect端点见 http.py 附近路由其内部走 LLM 合成路径。实际选型建议hybridprefetch_methodrecall是最省心的起点需要连贯摘要胜过逐条事实时复杂规划、开放式推理再切换到reflect。切到tools模式时要注意prefetch_method不生效自动召回已关闭但留存retention仍然照常运行——tools只改变召回进入代理的方式不关闭留存。从旧插件迁移替换hindsight-hermes如果你此前按早期教程把hindsight-hermes作为 pip 插件安装过通过hermes_agent.pluginsentry point 注册进 Hermes 虚拟环境这个路径已废弃——在当前的 Hermes 构建中其工具会报{error: Timeout context manager should be used inside a task}。迁移分两步第一步卸载旧插件使用与 Hermes 相同的 Python 环境uv pip uninstall hindsight-hermes --python $HOME/.hermes/hermes-agent/venv/bin/python不用uv时的等价命令$HOME/.hermes/hermes-agent/venv/bin/python -m pip uninstall -y hindsight-hermes卸载后可通过 entry point 检查确认清理干净$HOME/.hermes/hermes-agent/venv/bin/python - PY import importlib.metadata for ep in importlib.metadata.entry_points(grouphermes_agent.plugins): print(f{ep.name}: {ep.value}) PY如果仍能看到hindsight条目说明卸载错了环境。第二步运行设置向导配置原生提供者hermes memory setup迁移的关键是保留同一个bank_id。记忆属于 Hindsight 记忆库bank而不属于废弃的插件包本身——只要新提供者指向同一个后端、同一个bank_id就能继续使用原有的记忆历史无需导出导入、无需重新教代理。完整的逐步迁移流程含备份、验证与常见问题排查见指南 Migrate hindsight-hermes to Native Hermes Memory其要点包括迁移前备份~/.hermes与~/.hindsight、迁移后运行hermes memory status、在工具列表中确认三个 Hindsight 工具可见、并做一次下一轮召回的跨会话实测。迁移过程中还应考虑禁用 Hermes 内置的扁平文件记忆避免两条记忆路径互相竞争模型可能出于习惯优先选择它已经认识的内置memory工具hermes config set memory.memory_enabled false # 关闭 MEMORY.md hermes config set memory.user_profile_enabled false # 可选关闭 USER.md两个标志都设为false后内置memory工具会从代理中完全移除需要时再设回true即可恢复。本地模式与云端模式本地模式localHindsight 运行一个内嵌服务器自带 PostgreSQL。守护进程在首次使用时自动于后台启动无需手动设置。记忆提取需要 LLM API Key{ mode: local, llm_provider: groq, llm_api_key: your-groq-key }本地守护进程的关键行为与路径守护进程在 Hermes 显示 starting agent你发送第一条消息时才启动而非启动时全新系统上内嵌 PostgreSQL 初始化可能耗时超过一分钟后续启动则很快。启动日志位于~/.hermes/logs/hindsight-embed.log运行日志位于~/.hindsight/profiles/profile.log排查问题时可查看。本地 API 健康检查curl http://localhost:9077/health。uvx hindsight-embed可以独立启动本地守护进程免安装代理连接http://localhost:8888这是独立运行模式下的默认端口作为 Hermes 原生提供者时守护进程端口由apiPort控制默认9077。云端模式cloud需要跨机器持久记忆、或多个 Hermes 实例共享同一份记忆时使用云端模式https://api.hindsight.vectorize.io。两种模式使用同一套 API切换只是一行配置的改动而不是一次迁移。一个常见误区需要澄清留存是异步的。API 立即返回事实提取在后台完成。如果在同一轮里留存后立刻召回新事实可能尚未完成索引——这不是故障而是设计。测试记忆时务必在下一轮或新会话中提问详见迁移指南中的实测章节。这正好呼应了主文档的说明预取模式意味着当前轮次的记忆要到下一轮才会出现。实战验证清单接入完成后建议按下面的分层方式验证而不是只依赖单一检查hermes memory status——确认 Hermes 识别到 Hindsight 提供者处于激活状态。检查配置文件中的mode、bank_id、memory_mode、prefetch_method四个关键值是否符合预期。检查工具可见性——hybrid模式应能看到hindsight_retain、hindsight_recall、hindsight_reflectcontext模式不应看到。跨会话行为实测——先让 Hermes 记住一个事实然后在下一轮或新会话中提问验证自动召回。本地模式下验证守护进程健康curl http://localhost:9077/health。如果自动召回始终不生效优先检查memory_mode是否被误设为tools该模式下无自动注入属正常Hermes 构建是否支持生命周期钩子老版本只注册工具、静默跳过自动注入以及api_url/HINDSIGHT_API_KEY是否已配置未配置时提供者会静默跳过工具注册。延伸阅读Hermes 集成完整参考Hermes Agent Persistent Memory with HindsightBEAM 基准完整数据与背景Hindsight Is #1 on BEAM迁移逐步指南Migrate hindsight-hermes to Native Hermes Memory记忆模式选型指南Hermes Memory Modes with Hindsight早期插件方案已废弃与架构对比Give Hermes a Memory Upgrade后端检索与重排实现cross_encoder.py、API 路由表 http.py【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表