Hindsight logo

Hindsight

打开

Vectorize 开源的 Agent 记忆系统:把记忆拆成结构化事实与心智模型,只用 retain / recall / reflect 三个动作读写,默认存在 PostgreSQL 里,LongMemEval 排名第一。

分享:
查看替代方案

Hindsight

Hindsight 是 Vectorize 团队开源的 Agent 记忆系统。它想解决的问题非常明确:大多数记忆层只是把对话历史检索回来,而 Hindsight 试图让 Agent 真正「学到东西」。它用类生物结构替代了常见的「在文本块上做向量检索」,对外只暴露三个操作,并把数据放在 PostgreSQL 里。

该项目在长期记忆评测 LongMemEval 上排名第一,而且公开的是持续更新的分模型准确率、延迟与成本结果,而不是一张精选的宣传图。Hindsight 的评测数据由弗吉尼亚理工 Sanghani 人工智能与数据分析中心以及《华盛顿邮报》的研究者独立复现;官方页面也注明其他厂商的分数是自报数据。

核心功能

  • 按记忆类型组织,而不是一坨文本块:写入的内容会被拆成世界事实(「炉子会烫」)与自身体验(「我碰了炉子,很疼」)再合并。记忆存放在 bank 中,bank 同时也是隔离不同用户数据的单位。
  • 三个操作:retain 写入内容并调用 LLM 抽取事实、时间信息、实体与关系;recall 检索;reflect 在已有记忆上做推理,回答需要综合而不是查表的问题。
  • 混合检索:recall 并行执行语义向量检索、BM25 关键词匹配、图遍历与时间过滤,再用倒数排名融合(RRF)与交叉编码器重排合并结果。官方文档给出的生产级召回延迟是 50-500 毫秒。
  • Observations(观察):后台会把相关事实合并成去重、有证据支撑的信念,保留原文引用与证据计数,并在新证据到来时被「修订」而不是被覆盖。
  • 心智模型:对「这个用户的偏好是什么」这类问题给出常驻答案,Hindsight 会写入并在后台持续重写。读取心智模型只是一次数据库读取,不触发检索,也不调用 LLM。
  • 跑在你已有的技术栈上:默认使用 PostgreSQL,企业场景支持 Oracle AI Database,并提供 Python、TypeScript、Go 的 SDK、CLI 与 REST API。
  • MCP 与编码 Agent:提供 MCP 服务器与多种集成,还能用 npx skills add https://github.com/vectorize-io/hindsight --skill hindsight-docs 给编码助手装上文档技能。

适用场景

  • 个人助理与 Copilot:需要跨月记住用户,而不是只在一个上下文窗口内记住。
  • 编码 Agent:把项目约定与历史决策带到下一次会话;Hindsight 提供了 Claude Code、Cursor 等编码助手的集成。
  • 客服与销售 Agent:适合使用 reflect,例如推理哪些触达方式更容易得到回复。
  • 用可查询、可评测、可自托管的方案替换临时记忆文件的团队。

定价

Hindsight 采用 MIT 许可,自托管免费。官方给出的部署方式包括 Docker(推荐)、Docker 加外部 PostgreSQL、pip install hindsight-api,以及 Kubernetes 的 Helm Chart。自托管最低需要 Python 3.11+ 与 4GB 内存,生产环境建议 8GB,另需一个 LLM API Key。

Hindsight Cloud 是托管方案,端点 api.hindsight.vectorize.io,提供控制台、备份、团队协作与 99.9% 可用性 SLA。官方描述其计费方式为按用量计费、提供起步免费额度,且没有固定月费或按席位收费。具体价格请以 定价页 为准。

快速开始

export OPENAI_API_KEY=sk-xxx
docker run -it --pull always --name hindsight --restart unless-stopped -p 8888:8888 -p 9999:9999 \
  -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \
  -v hindsight-data:/home/hindsight/.pg0 \
  ghcr.io/vectorize-io/hindsight:latest

启动后 8888 端口是 API,9999 端口是界面。接着安装客户端(pip install hindsight-client)并使用三个动作:

from hindsight_client import Hindsight

client = Hindsight(base_url="http://localhost:8888")
client.retain(bank_id="my-bank", content="Alice works at Google as a software engineer")
client.recall(bank_id="my-bank", query="What does Alice do?")
client.reflect(bank_id="my-bank", query="Tell me about Alice")

局限与风险

  • 记忆质量取决于模型:事实、实体与关系都靠 LLM 抽取,模型太弱或太便宜会直接影响入库质量。官方维护模型排行榜,正是因为不同模型之间差距明显。
  • 单一评测不等于全部:LongMemEval 是它的招牌评测,厂商之间的对比需要谨慎看待,只有 Hindsight 的成绩被描述为已独立复现。
  • 运维细节会咬人:常见问题文档记录了「僵尸操作」现象,通常由容器重启后 worker 身份不稳定引起,需要通过管理 CLI 恢复。
  • 版本尚未到 1.0:截至 2026-09-25 观察到的最新版本是 2026-09-21 的 v0.10.1,API 仍在演进。

常见问题

和 RAG 有什么不同?

RAG 是针对查询检索文档片段。Hindsight 存储结构化事实,把事实连成带时间信息的图,合并成观察结果,并且可以在此基础上推理,而不只是把原文返回。

支持哪些模型提供商?

超过 25 家,包括 OpenAI、Anthropic、Gemini、Vertex AI、Bedrock、Groq、MiniMax、DeepSeek、Ollama、LM Studio、llama.cpp 以及各类 OpenAI 兼容端点。已有的 OpenAI Codex、Claude Code、Cursor、GitHub Copilot 订阅可以直接使用,无需 API Key。

必须自己运维吗?

不必。可以用 Docker、pip 或 Helm 自托管,也可以让任何客户端直连 Hindsight Cloud,两者的接口一致。

数据存在哪里?

自托管时存在你自己掌控的 PostgreSQL 中。隔离不同用户的方式是把他们放进不同的 bank。

替代方案

  • agentmemory:面向编码 Agent、基于本地 SQLite 的记忆层。
  • Letta:MemGPT 一脉的有状态 Agent 方案,提供云端选项。
  • LangGraph:想自己定义记忆流转时的图式编排框架。
  • Mem0:同时提供托管与自托管的向量检索式 Agent 记忆。

结论

在一个通常靠感觉推销的品类里,Hindsight 是评测最扎实的选项之一:它公开数据结构、发布模型排行榜,并允许第三方复现结果。如果你的 Agent 总是健忘、记忆文件已经膨胀成无法查询的日志,可以先用自托管 Docker 镜像加一个 bank 起步,等运维成为瓶颈时再迁到 Cloud。

动手之前建议先读 Hindsight 官方文档 与仓库中链接的 LongMemEval 评测方法。

评论

还没有评论。成为第一个评论的人!