Hindsight 入门:Agent 跨会话记忆到底保存了什么
Hindsight 入门:Agent 跨会话记忆到底保存了什么
沿着一次记忆写入和读取,理解 bank、事实、观察与推理结果各自的作用。
你将学会
- 从一个会忘事的助手说起
- 分清四类材料
- 选择查找还是综合
开始前需要
- Python 客户端基础
- 合成记忆测试样例和明确的部署边界
保存更正、误召回和费用,让下一次测试能重现同样的问题。
先看结论
- bank 为记忆划定范围。
- 观察和心理模型的更新路径不同。
- 上游基准数字不是本站实测结果。
从一个会忘事的助手说起
助手在新会话里忘记了昨天确定的发布日期,就需要一种可检查的持久记录。Hindsight 提供 bank 来保存事实与经历,并用 retain 写入、recall 查找、reflect 综合已有材料。先把这三个动作说清楚,比照搬项目的基准宣传更有用。
一个 bank 要有明确的主人和保留目的。第一次实验可以使用虚构项目,写入三个随时间变化的决定。如果系统找回旧决定,就把失败记录下来;回答听起来流畅,不代表记忆正确。
分清四类材料
README 将内容分为世界事实、经历、观察和心理模型。观察会汇总多条证据,心理模型则是后台更新的固定问题答案。用户偏好和 Agent 的一次操作,不应按相同的含义和保留周期处理。
仓库将 bank 描述为隔离的记忆空间。存放客户数据前,还要在 API 授权边界验证这一说法。本次没有运行跨 bank 安全测试,所以示例只使用合成数据。
选择查找还是综合
项目文档描述的 recall 结合语义、关键词、图关系和时间检索。reflect 会让模型对已存材料进行综合判断。需要原始记录时先用 recall;问题要求归纳时再考虑 reflect,并保留支撑结论的证据。
后续文章会追踪客户端调用与存储边界。本系列检查了固定版本的源码,没有启动服务,也没有复现上游展示的 LongMemEval 成绩。
如何选择
| 比较维度 | 方案 A | 方案 B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
实施步骤
- 1
写下三个有时间戳的虚构事实,并加入一次更正。
- 2
为测试 bank 指定主人和读取权限。
- 3
分别提出一个查找问题和一个综合问题。
可复制示例
from hindsight_client import Hindsight
client = Hindsight(base_url="http://localhost:8888")
client.retain(bank_id="fictional-project", content="The demo deadline is Friday")
print(client.recall(bank_id="fictional-project", query="When is the demo?"))常见问题
Hindsight 会自动记住所有聊天吗?
只有集成或 retain 调用送入 bank 的内容才会保存,还需检查具体客户端路径。
reflect 能代替 recall 吗?
reflect 用于综合解释;需要检索记录时应使用 recall。
资料来源
- Hindsight / README.md来源核查 2026-09-26