尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Hindsight 跨设备记忆实战:让 Hermes 在笔记本、桌面与服务器之间共享同一份长期记忆

Hindsight 跨设备记忆实战:让 Hermes 在笔记本、桌面与服务器之间共享同一份长期记忆 Hindsight 跨设备记忆实战让 Hermes 在笔记本、桌面与服务器之间共享同一份长期记忆【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight本篇技术指南基于 Hindsight 官方 Hermes 集成方案讲解如何通过 Hindsight Cloud 将多台机器上的 Hermes 接入同一个共享记忆后端使上下文随设备迁移而不是各自为政。读完你将掌握完整的设置流程、可复用的 bank 命名与隔离策略以及一套可在任何设备组合上验证记忆同步的端到端检查方法。快速答案如果你只想立刻动手核心思路可以浓缩为 5 步用 Hindsight Cloud 搭建 Hermes 的记忆后端执行hermes memory setup选择Hindsight再选Cloud。在所有需要共享记忆的设备上使用相同的 bank ID。保持项目级或用户级 bank 命名稳定不要今天一个叫法、明天一个叫法。在设备 A 上保留一条事实后从设备 B 验证能否正确回忆。需要隔离时不同项目、不同客户、不同环境使用彼此独立的 bank。为什么本地记忆无法跨设备工作在单机场景下Hermes 的本地记忆完全够用对话历史、偏好、项目上下文都存在本机文件里随开随用。但一旦你的工作流横跨多台机器本地记忆的缺陷就会立刻暴露。假设你在笔记本上做调研、在桌面上写代码、在服务器上跑自动化任务。如果每个环境都各自维护一份本地记忆那么同一段上下文会被切成三份碎片信息本身都存在却彼此孤立。你在笔记本上告诉助手Postgres 连接串在配置文件里到了桌面上它浑然不知。跨设备记忆的解法是把bank记忆库从单台机器内部移到 agent 的背后记忆不再属于某台机器而属于一个可被多台机器共享的后端。这正是 Hindsight Cloud 的定位——它提供一个统一的后端让多个 Hermes 实例指向同一个 bank助手就能跨设备延续上下文而不是每次从零开始。第 1 步选择 Hindsight Cloud最简单的方式是使用 Hermes 的记忆设置向导hermes memory setup在向导中选择Hindsight然后选择Cloud。这一步会让每个 Hermes 实例共享同一个后端而不是机器本地后端。根据 Hermes 集成文档 的说明Hermes 已内置原生 Hindsight memory provider无需安装额外插件。除向导外也支持手动配置# 设置 memory provider hermes config set memory.provider hindsight # 写入 API key 与云端端点 echo HINDSIGHT_API_KEYyour-key ~/.hermes/.env echo HINDSIGHT_API_URLhttps://api.hindsight.vectorize.io ~/.hermes/.env配置完成后用以下命令确认记忆已激活hermes memory statusCloud 模式下连接配置形如{ mode: cloud, api_url: https://api.hindsight.vectorize.io, api_key: hsk_your_token, bank_id: hermes }从实现层面看原生 provider 通过两类生命周期钩子与两个显式工具完成记忆闭环见 Hermes 集成文档 的 Architecture 一节组件作用pre_llm_call钩子自动回忆——每次调用 LLM 前查询记忆注入为临时系统提示上下文post_llm_call钩子自动保留——每次响应后把本轮对话存入 Hindsighthindsight_retain工具模型主动触发的记忆存储hindsight_recall工具模型主动触发的记忆检索hindsight_reflect工具基于已存记忆的 LLM 综合回答跨设备场景下这套自动回忆 自动保留机制正是关键无论请求来自哪台机器pre_llm_call都会查询同一个云端 bank因此笔记本上记住的事实在桌面上被自动带出成为可能。值得注意的是生命周期钩子需要 hermes-agent 的 PR #2823 或更高版本在较旧版本上只有三个显式工具会被注册自动注入会被静默跳过。第 2 步让 bank 策略显式化共享后端只是完成了一半工作。另一半是确保每台设备在应该共享时指向同一个 bank。良好的命名模式根据官方指南与 单 bank vs 多 bank 对比文档推荐按记忆的消费者来划分 bank每个用户助手一个 bank每个项目一个 bank每个客户或账号一个 bank示例命名ben-personalproject-hindsight-docsacct-acme稳定性是第一原则关键不在于叫什么名字而在于稳定。如果笔记本上用project-hindsight-docs桌面上却用docs-project你并没有创建跨设备记忆——你只是创建了两段名字相似、彼此隔离的历史。记忆只有在 bank 身份持续一致时才会复利累积命名漂移会把同一个工作流拆散成多个半残的 bank。从配置上看bank 的身份就是bank_id字段对应环境变量HINDSIGHT_BANK_ID默认值为hermes见 Hermes 集成文档 的 Memory Bank 配置表。它并不依赖 Hermes 的本地安装路径因此完全可以跨机器保持一致。对于生产环境Hermes Memory Bank 生产策略指南 给出了更严格的分层模式tenant:{tenant_id}:user:{user_id}:env:{environment}例如tenant:acme:user:12345:env:prod与tenant:acme:user:12345:env:staging可以安全地共存于同一个 Hindsight 后端而互不污染。该指南还建议不要在启动路径里手工写死bank_id而应从已知输入租户、用户、环境程序化生成同时避免使用临时会话 ID、部署时间戳、轮换容器 ID 或临时分支名作为 bank 组成部分。判断口诀如果某个客户端永远不需要在运行时切换 bank就用单 bank 模式bank 固化在配置里只有当调用方需要动态创建、选择或切换 bank 时如多租户 SaaS、MCP 网关才升级到多 bank 模式。跨设备共享记忆属于典型的单 bank 场景。第 3 步端到端验证一个快速验证闭环在设备 A 上告诉 Hermes 一条值得记住的事实。结束该会话。在设备 B 上使用同一个 bank开启一个全新 Hermes 会话。向它询问这条事实。如果设备 B 能干净利落地回忆出来说明整套跨设备链路已经打通。结合 Hermes 记忆调试指南验证时要注意两点保留是异步的Hindsight 在助手响应之后异步完成保留新记忆要到下一个轮次才可被检索。如果你在同一轮里刚保留完就立刻问很可能把正常的异步行为误判为系统故障。正确的测试姿势是这一轮教它一个事实下一轮再问。区分两类故障如果工具可见可以直接要求 Hermes 调用hindsight_recall。显式检索成功但自动注入不生效通常是memory_mode选错tools模式默认关闭自动注入或 Hermes 版本缺少生命周期钩子显式检索也失败则多半是 bank 里根本没有数据或指向了错误的 bank。跨设备记忆的最佳使用场景个人助理工作流你可能会在手机上给 Hermes 发消息在笔记本上继续对话稍后在桌面上追问后续。共享记忆让这些交互看起来像与同一个助手的持续关系——偏好、待办、近期决定全部随身携带。编码工作流在一台机器上调研在另一台机器上实现在服务器上部署或监控。共享 bank 让仓库上下文保持连续避免把我已经查过的依赖版本在每台机器上各解释一遍。团队运维服务器端的 Hermes worker 可以构建记忆而人工操作的 Hermes 会话稍后可以复用反之亦然。只要它们指向同一个共享 bank机器与人之间的信息就是流动的。什么时候不应该共享 bank跨设备不等于跨一切。以下情况应当使用彼此独立的 bank不同项目之间需要保持隔离个人上下文不应混入团队记忆客户专属记忆不得跨账号泄露。再补充一个生产环境视角即便在共享后端之上也要用环境后缀把 staging 与 production 分开。共享设备、不共享语义边界才是健康的架构。常见错误官方指南明确列出了以下高频失误在不同机器上使用了不同的 bank ID用一个巨大的 bank 承载互不相关的工作以为只要上了 Cloud 就自动获得好的检索效果却没有清晰的命名策略忘记从第二台设备上实际测试回忆。结合调试指南还可以补充两条隐蔽陷阱一是 Hermes 内置的本地记忆MEMORY.md与USER.md可能仍在生效模型会优先使用本地文件而无视Hindsight——排查时可用hermes config set memory.memory_enabled false与hermes config set memory.user_profile_enabled false临时关闭它们二是bank_id被手工改错后回忆健康但来自错误的地方这种故障最难发现。配置参考跨设备共享记忆的关键参数所有原生 provider 设置都保存在~/.hermes/hindsight/config.json每个字段都能用环境变量覆盖环境变量优先级更高。跨设备部署时请重点核对以下三组参数完整对照表见 Hermes 集成文档连接配置设置默认值环境变量说明modecloudHINDSIGHT_MODEcloud或localapi_urlhttps://api.hindsight.vectorize.ioHINDSIGHT_API_URLHindsight API 端点api_keynullHINDSIGHT_API_KEYHindsight Cloud 认证令牌记忆库配置设置默认值环境变量说明bank_idhermesHINDSIGHT_BANK_ID记忆库 ID——跨设备一致性的核心bankMissionHINDSIGHT_BANK_MISSION记忆库对应的 agent 身份/用途retainMissionnull—自定义保留任务决定从对话中提取什么自动回忆配置设置默认值环境变量说明autoRecalltrueHINDSIGHT_AUTO_RECALL是否通过pre_llm_call钩子自动回忆recallBudgetmidHINDSIGHT_RECALL_BUDGET回忆强度low/mid/highrecallMaxTokens4096HINDSIGHT_RECALL_MAX_TOKENS回忆响应的最大 token 数autoRetaintrueHINDSIGHT_AUTO_RETAIN是否通过post_llm_call钩子自动保留集成模式memory_mode决定记忆如何接入 agent三种取值含义不同hybrid——每轮自动注入上下文同时向模型暴露记忆工具默认值context——仅自动注入不暴露工具tools——仅暴露工具hindsight_retain/hindsight_recall/hindsight_reflect无自动注入。跨设备自动回忆依赖hybrid或context若某台设备配置成了tools它就不会自动带出其他设备留下的记忆。此外prefetch_method可设为recall把原始记忆事实注入系统提示速度快或reflect注入 LLM 综合摘要更连贯但更慢。FAQ我可以让笔记本和服务器共享同一个 bank 吗可以这正是使用 Cloud 的核心原因之一。只要两台设备指向同一个bank_id且命名稳定即可。每台机器都需要相同的 Hermes 本地安装路径吗不需要。跨设备共享记忆的关键是共享后端与稳定的 bank ID与本地安装路径、本地文件布局无关。团队也应该共享同一个 bank 吗只有当工作流本身需要共享记忆时才应该共享否则请保持 bank 独立。判断标准是这段记忆是否天然属于同一个上下文。延伸阅读若你目前还在使用本地文件记忆参考 将 Hermes 记忆从本地文件迁移到 Hindsight Cloud其中包含备份、配置切换、bank 预置与迁移后验证的完整流程。深入理解 bank 的划分边界阅读 单 bank 与多 bank 对比。生产环境下的命名与隔离规范见 Hermes Memory Bank 生产策略。若跨设备后出现记不住的问题按 Hermes 记忆调试指南 的七步顺序排查。原生 provider 的完整配置面与故障排查始终以 Hermes 集成文档 为权威参考使用 Hermes 桌面版时可直接在设置界面完成全部配置无需命令行。【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表