Agent 换了一个会话,就不记得上次确认的偏好和任务结论?
最快解法:把 Hindsight 当作可检索、可维护的记忆层来验证,不要把它当成“自动学会一切”的开关。先规定写什么、何时检索、如何纠错,再用跨会话任务检查结果。
适合需要跨会话记忆的 Agent 开发者、智能体平台工程师,以及要管理长期对话状态的技术团队。
如果你只想让模型在当前对话里引用临时上下文,不需要先搭长期记忆层。
Last updated:2026 年 9 月 28 日。接口与概念按 Hindsight 官方仓库、官方 Quick Start 和 Hindsight 相关论文核对。具体命令和可用能力会随版本变化;部署前请再次检查当前文档。
接入前:长期记忆与临时上下文怎么分
你要解决的不是“存下所有聊天”,而是让 Agent 在以后遇到相关任务时找回可靠信息。写入越宽,隐私与治理成本越高;写入越随意,检索越可能混入闲聊、过时决定或模型自己生成的错误结论。
适合进入长期记忆的内容,通常是可复用且有来源的事实,例如用户长期偏好、项目约束、已确认的技术决策和经复核的任务经验。短期情绪、一次性闲聊、密码、访问令牌、支付信息和不必要的个人敏感信息,应排除或先脱敏。你还要确定每个 Agent、用户或项目能否共享同一记忆范围。Hindsight 的 memory bank 用于隔离不同场景的记忆;具体隔离与访问方式要结合你部署的认证配置复核。官方记忆库说明介绍了 bank 的组织方式。
| 要决定的事 | 推荐做法 | 不建议的做法 |
|---|---|---|
| 写入范围 | 只保存可复用、可解释且有来源的信息 | 默认永久保存整段对话 |
| 归属范围 | 按用户、项目或 Agent 分配隔离空间 | 不同用户共用一个记忆范围 |
| 敏感信息 | 在写入前排除或脱敏,并制定留存规则 | 先存起来,等出问题再查 |
| 记忆用途 | 检索后作为带来源的参考上下文 | 把召回内容当作已验证的当前事实 |
Hindsight 的 retain、recall 和 reflect 是不同的操作:写入内容会被处理并提取记忆,recall 负责查找相关记忆,reflect 则用记忆生成回答。检索到信息并不等于模型参数已经更新,也不等于模型完成了训练。论文介绍的系统设计可以帮助你理解这些操作,但不能替代你对自身数据策略的定义。
部署选择:本地试跑还是独立服务
官方 Quick Start 提供容器启动方式,也提供 Python、Node.js/TypeScript 和 Go 等客户端安装入口。开始前,先决定这是短期试验还是持续运行的服务:本地嵌入式存储便于试用;生产环境则要单独检查数据库、备份、访问控制和重启恢复方式。官方安装说明将开发便利性与生产部署要求作了区分,具体资源需求取决于镜像和组件配置。你可以按 官方安装说明核对所选部署方式的依赖。
| 运行方式 | 适合场景 | 接入前要核对 |
|---|---|---|
| 本机或开发环境 | 验证 retain、recall 流程和应用逻辑 | 客户端版本、模型服务密钥、数据目录是否持久化 |
| 容器独立部署 | 团队联调或持续运行 | 数据库位置、备份、服务鉴权、网络暴露与日志 |
| 生产级部署 | 多用户、长期任务和稳定运维 | 官方部署文档、数据保留与删除流程、故障恢复方案 |
照着官方仓库的 Quick Start 启动服务后,再按你使用的语言安装客户端。以 Python 为例,官方示例使用 hindsight-client,并用 Hindsight(base_url=...) 连接本地服务;Node.js/TypeScript 则有对应客户端。不要把网上旧版本的包名、参数或端口设置直接当作当前保证,先对照 Quick Start 与安装说明。
写入阶段:保留事实,不保存一切
开始时,先建立明确的写入触发条件。可以在任务完成并经用户确认后保存决定,也可以在 Agent 成功完成一个可复用流程后,由业务逻辑提交摘要。不要默认每轮对话都写入:错误回答、用户试探和未经确认的推断,都可能被整理成看似确定的内容。
调用时,建议给每条内容配置稳定的来源标识,并附上任务或会话背景、发生时间和必要的元数据。官方 retain API 文档说明,document_id 可用于标识来源文档;对已存在的文档再次写入时,更新方式会影响旧内容如何处理。相同对话持续增长时,选择与业务流程相符的追加或替换模式,避免重复导入。
一个可审查的写入记录,至少要能回答:是谁或哪个任务产生了这条信息?它是用户确认的事实还是 Agent 的判断?何时发生?如果后来发现错误,能否追溯到原始文档?来源不清的内容,不要因为“以后也许有用”就永久留下。
⚠️ 用户偏好可能更新,项目决定也可能被推翻。把时间、来源和版本标识随记忆一起管理;否则,新旧事实在检索结果中并列出现时,Agent 未必知道该相信哪一条。
检索阶段:按当前任务取回历史
调用 recall 时,查询要描述当前要解决的问题,而不只是说“找历史记录”。例如,你可以查询“这个项目上次为什么选择当前数据库方案”,而不是“搜索所有聊天”。Hindsight 的 recall 文档列出语义、关键词、图关系和时间等检索策略;返回结果仍需由应用检查相关性,并把来源和时间一起交给 Agent。(官方 recall API 文档)
可按这样的逻辑接入应用,代码表示的是流程,不是可直接运行的 API 调用:
任务进入
→ 根据当前任务构造 recall 查询
→ 获取候选记忆及其来源、时间
→ 检查是否过期、是否与当前任务相关
→ 将通过筛选的内容作为参考上下文交给 Agent
→ 任务完成后,按规则决定是否 retain
不要把“搜到”当成“可信”。如果结果与最新输入冲突,让 Agent 明确指出冲突并询问用户,或回到原始文档核实。官方文档也提供文档来源与记忆的关联方式;这样你可以从检索结果回查原始内容,而不是只依赖被提取后的摘要。有关来源追溯、原文片段和批量删除的说明,可查阅 官方文档管理指南。
按阶段验证:跨会话测试怎么安排
验证要覆盖三类情况:已知事实应找得到,更新后的事实不能仍只返回旧值,无关记录不应挤进答案。测试集的答案应由你预先人工确认,并保留查询、召回结果和最终回答,方便复查。不要用“看起来记住了”作为上线标准,也不要在没有真实测试记录时宣称准确率或性能提升。
| 验证阶段 | 你要做的事 | 不通过时怎么处理 |
|---|---|---|
| 接入检查 | 写入一条可核实事实,再在新会话查询 | 查服务、bank 标识、客户端连接与任务日志 |
| 相关性检查 | 用具体任务问题查询已写入内容 | 调整写入范围、查询描述或筛选条件 |
| 更新检查 | 修改原文后重新写入,再查询新旧值 | 检查 document_id 和更新模式是否一致 |
| 无关项检查 | 加入与测试问题无关的记录并发起查询 | 检查检索范围、标签和上下文注入逻辑 |
| 交付前复核 | 核对来源、时间、权限与删除流程 | 暂停扩大写入,先补上审计和治理规则 |
本周可以按“先连通、再覆盖、后纠错”的顺序推进:先验证客户端能写入和查询;随后增加更新事实与无关记录;最后检查错误内容能否追溯和替换。这里的测试安排是实施建议,不代表官方承诺的效果或服务指标。
没有本站真实部署和测试记录,因此本文不提供本站实测的召回率、运行耗时或资源表现。若你要对外发布效果数据,应明确测试环境、数据集、查询方式和判定标准,并将结论限定在实际测试范围内。
记忆纠错:更新、过期与删除要分开处理
如果错误来自一份已知来源文档,先核对原文,再用相同的 document_id 更新。官方文档说明,重新 retain 同一文档标识可以替换其旧内容并重新处理;这比追加一条互相矛盾的新句子更容易追溯。操作完成后,再查询旧事实和新事实,确认 Agent 取到的内容符合预期。
删除则要先确认当前版本公开支持的接口,以及删除后关联内容如何处理。不要假设“删掉一条记忆”就等同于清除原始文档、派生结果和备份中的全部数据。你还要在团队流程中明确谁有权纠错、谁能删除、怎样处理保留期限;具体行为以当前官方能力和你的部署配置为准。需要确认数据访问边界时,可先查阅 Hashvps 帮助中心 与 服务条款,并以适用于你业务的数据治理要求为准。
决策条件:什么时候继续接入
- 若你能明确记忆归属、写入规则、数据来源和删除责任,就用 Hindsight 做小范围接入,并先跑完跨会话验证。
- 若你只需要临时上下文,或尚未确定哪些内容可以持久保存,就先保留应用现有的会话状态方案,不要默认增加长期写入。
- 若召回内容必须经过业务审批、权限过滤或时效核验,就在 Agent 看到结果之前增加筛选层,不要直接把原始召回结果拼进提示词。
- 若你无法确认当前公开删除能力或备份留存方式,就先限制敏感数据进入记忆库,完成治理核对后再扩大使用。
FAQ:接入和维护时的关键判断
Hindsight 怎么给 Agent 添加长期记忆?
先启动服务并安装当前版本客户端,再设置隔离范围和写入规则。只保存经筛选的信息,给记录绑定来源、时间和稳定文档标识;新会话中通过 recall 检索,并让 Agent 结合来源判断。接入本身不会让模型自动完成训练。
Agent 历史检索为什么可能找回旧结论?
记忆里可能同时有多个时间点的事实,查询词也可能没有表达“当前”或“最近更新”的要求。为记录提供时间与来源,在应用层识别冲突;对于可能过期的事实,回查原文或要求用户确认。
如何确认跨会话记忆真的有效?
离开原会话,再用新的任务上下文查询已知事实、更新事实和无关内容。检查该召回的是否出现、旧信息是否被识别、无关材料是否被错误带入。保存每次测试的输入与输出,效果判断以可复核记录为依据。
发现记忆错误后,应该更新还是删除?
若错误对应一份仍需保留的来源文档,核实后用原有文档标识更新,并复查新旧结果;若内容依法或按业务策略必须移除,则先核对当前公开删除接口和保留范围,再执行删除并验证。两类操作目的不同,不要用追加相反句子代替纠错。
把 Hindsight 接进 Agent 后,原有方案可能仍有全量对话重复注入、跨会话上下文难治理、测试环境与团队共享环境不一致等问题;但记忆服务也带来额外的部署、数据留存和运维责任。若你只需要临时的 Mac 环境来验证应用客户端、接口调用和跨会话回归,可以考虑 Hashvps 的 Mac 租赁;它适合短期测试,不应被当作长期生产记忆服务或数据库的替代品。若你的任务要求常驻服务、专用存储或特定物理接口,应先比较自购设备、目标部署环境与维护成本,再决定是否租用。查看 Hashvps 套餐详情前,先确认你的测试依赖与运行环境相符。
为你的 AI Agent 配一台云端 Mac
Hashvps 提供原生 macOS 云端 Mac mini,适合部署、调试和运行需要长期在线的 Agent 工作流。
通过 SSH 或 VNC 远程管理环境,按你的开发与运维习惯灵活操作。