世界事实
World facts关于外部世界的事实性知识,不依赖智能体自身的经历。
“炉子开着的时候会变烫。”
多数智能体记忆实现依赖基础的向量检索,偶尔使用知识图谱。Hindsight 采用仿生数据结构来组织智能体记忆,更接近人类记忆的工作方式。
关于外部世界的事实性知识,不依赖智能体自身的经历。
“炉子开着的时候会变烫。”
智能体自身的第一手体验,带有主体视角与时间戳。
“我摸了炉子,真的很疼。”
由大量记忆凝练出的、有证据支撑的信念,会被精炼而非覆盖。
“这个厨房里的操作台总是很烫。”
从观察与事实中综合出的、对所处世界的习得性理解。
“张伟习惯先验证再动手。”
记忆存放在 bank(记忆库) 中。新记忆加入时,会被推入「世界事实」或「经历」通道之一,再以实体、关系、时间序列的组合形式表示,并辅以稀疏与稠密向量表征,以便后续召回。
retain 借助 LLM 抽取关键事实、时间数据、实体与关系,再经归一化流程转换为规范化实体、时间序列、搜索索引与元数据。这些表征构成了 recall 与 reflect 精准检索记忆的通路。
它告诉 Hindsight 保留你作为输入传入的信息。抽取出的规范化实体、时间序列、搜索索引与元数据,共同构成后续 recall 与 reflect 精准检索记忆的通路。
client.retain(
bank_id="my-bank",
content="Alice got promoted to senior engineer",
context="career update",
timestamp="2025-06-15T10:00:00Z",
)recall 并行执行四路检索,结果先以倒数排名融合按相关性排序,再用交叉编码器重排,最后按需裁剪以适配 token 上限。
recall 操作用于检索记忆,这些记忆可来自任意记忆类型(世界事实、经历等)。
client.recall(bank_id="my-bank", query="What does Alice do?")
client.recall(bank_id="my-bank", query="What happened in June?") # 时间检索recall 并行执行 4 种检索策略:
各路结果会被合并,先以倒数排名融合(reciprocal rank fusion)按相关性排序,再用交叉编码器(cross-encoder)重排模型重排,最后按需裁剪以适配 token 上限。
reflect 让智能体在记忆之间建立新联系,并对自身世界形成更透彻的理解,适合需要深度思考而非简单查表的问题。
reflect 操作对已有记忆做更深入的分析。它让智能体在记忆之间建立新的联系,并对自身世界形成更透彻的理解,适合回答那些需要深度思考、而非简单查表的问题。
client.reflect(bank_id="my-bank", query="What should I know about Alice?")例如,reflect 适用的场景包括:
被保留的事实不会始终堆成一摊。在后台,Hindsight 会把相关事实整合为观察,也就是 bank 随时间积累起来的、已去重的信念。
每条观察都保留支撑证据(含原文引用)与证明计数。当新证据到来时,它会被精炼而非覆盖,因此新信息会强化、削弱或延展既有信念,而不是悄无声息地替换掉它。
对某个 bank 某个问题的常驻回答,比如「该用户的偏好是什么」。你只需定义一次问题,Hindsight 负责写出答案、存储它,并在 bank 持续学习的过程中于后台重写它。
隐藏了机制的心智模型:由 bank 自行书写、关于自身的鲜活文档。你只需提供名称与一个问题,其余决策都是可覆盖的默认值。
读取心智模型只是一次数据库读取,无需检索,也无需调用 LLM。于是智能体可以带着一页已成定论的知识启动,而不必每次会话都重新发现。
bank 是一个相互隔离的记忆存储,可以理解为一个用户、智能体或项目的「一颗大脑」。隔离是严格的,bank 之间不会泄漏。
bank 带有背景上下文与倾向特质(disposition traits,如怀疑、拘泥字面、共情),这些特质塑造了 reflect 在其记忆上推理的方式,并可由声明式的bank 模板创建。
输入语言会被检测并端到端保留。事实保持原始语言,实体保留原生文字,张伟仍然是张伟,而不是「Zhang Wei」。文档
一项可按 bank 启用的策略,针对 45 种模式扫描每次 retain 中的密钥与 PII,要么对命中项做脱敏,要么在存入前直接拦截。
# 每行一个标识,命中即拦截
HINDSIGHT_MEMORY_DEFENSE=github_token,aws_access_key,email,phone