Hindsight — 会"学习"的 AI Agent 记忆系统

> 一句话版本:一个让 AI 助手拥有长期记忆的系统,不只是记住对话历史,而是像人一样从经验中学习、形成认知模型,目前在记忆系统评测中得分最高。

项目信息
来源https://github.com/vectorize-io/hindsight
作者Vectorize.io
许可证MIT
创建时间2025-10-30
语言Python
Stars8,235Forks 498
文档https://hindsight.vectorize.io

核心内容

Hindsight 不是传统的"记住对话"系统,而是模拟人类记忆方式的三层结构:

三层记忆模型

层级类比说明
**World(世界知识)**"炉子会烫"关于世界的事实
**Experiences(经验)**"我摸了炉子,很疼"Agent 自身的经历
**Mental Models(心智模型)**"热的东西别碰"从记忆中反思形成的理解

三个核心操作

Recall 的 4 路并行检索


查询: "Alice 的工作情况?"
    ├── 语义搜索(向量相似度)
    ├── 关键词搜索(BM25 精确匹配)
    ├── 图遍历(实体/时间/因果链)
    └── 时间过滤(时间范围)
         ↓
    Reciprocal Rank Fusion + Cross-encoder 重排序
         ↓
    最终结果(按 token 限制裁剪)

性能表现

系统LongMemEval 得分
**Hindsight****91.4%**
Mem049.0%
Letta (MemGPT)未公布(较低)

该成绩由 Virginia Tech Sanghani Center 和 Washington Post 独立复现。

技术特点

安装


# Docker(最简单)
docker run --rm -it -p 8888:8888 -p 9999:9999 \
  -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \
  ghcr.io/vectorize-io/hindsight:latest

# Python SDK
pip install hindsight-client -U

具体示例

场景:AI 助手帮你管快递

第 1 天 — Retain 存入

用户:"我有个快递到了,韵达的,单号 YT123456,是给 Ivy 买的生日礼物。"

Hindsight 用 LLM 提取实体(韵达、YT123456、Ivy、生日礼物)、关系和时序,归一化后存为 5 种格式:向量索引(语义搜索)、BM25 索引(关键词)、图节点(实体关系)、时间序列、元数据。

第 5 天 — Recall 检索

用户:"那个快递怎么样了?"

4 路并行检索 → RRF 融合排序 → Cross-encoder 精排 → AI 直接回答"你的韵达快递 YT123456(给 Ivy 的生日礼物)目前状态是……"

第 30 天 — Reflect 学习

用户:"Ivy 快过生日了,帮我推荐礼物。"

Recall 找到相关记忆 → LLM 归纳:用户每年给 Ivy 准备生日礼物,偏好数学/Pop Mart → 存为 Mental Model → AI 主动回答"Ivy 生日快到了,去年你通过韵达寄了礼物,今年需要帮你挑吗?"

对比传统 RAG

传统 RAGHindsight
精确检索✅ 能找到快递信息
跨场景联想❌ keyword match 不会联想到生日✅ Reflect 形成心智模型
跨会话❌ 需手动管理上下文✅ 自动跨会话记忆
学习能力❌ 纯检索✅ 从经验中提炼规律

内部实现原理

Retain:存入记忆

原始输入 → LLM 提取实体/关系/时序 → 归一化("韵达"→ canonical entity)→ 存储为 5 种格式(向量索引、BM25、图节点、时间序列、元数据)。一次存入,服务多种检索策略。

Recall:4 路并行检索

1. 语义搜索(pgvector):向量相似度匹配

2. 关键词搜索(BM25):精确文本匹配

3. 图遍历:沿实体/关系/因果链遍历

4. 时间过滤:按时间范围筛选

4 路结果 → 合并去重 → Reciprocal Rank Fusion(RRF)综合排名 → Cross-encoder 精确重排序 → 按 token 限制裁剪返回。

Reflect:反思学习

Recall 检索相关记忆 → LLM 对一组记忆做归纳总结 → 结论存为新的 Mental Model(附带来源记忆引用)→ 下次类似场景直接用 Mental Model,无需重新推理。

存储层

PostgreSQL + pgvector,单库承载向量表、全文索引、图结构、时间序列。

一句话总结

Retain = LLM 提取 + 多格式存储

Recall = 4 路并行查 + RRF 融合 + Cross-encoder 排序

Reflect = LLM 归纳记忆 → 存为心智模型 → 下次直接用

分析

优势

风险

与 Jay 的关联

评分

维度评分 (1-10)说明
创新性9仿生三层记忆 + 4 路并行检索,设计精良
实用性8Docker 一键部署,2 行代码集成
代码质量8架构清晰,SDK 完善
文档9官网文档齐全,有独立教程
生态7多 SDK + MCP,但社区相对小
可维护性7商业公司支持,但开源长期策略不确定
**总分****8.0**目前最强的开源 agent 记忆系统