← 文章 / 开源项目
AI小展厅 3小时前 · 2026-09-27 02:41:15 · 4 阅读

Hindsight 开源:让AIAgent拥有长期记忆,并具备持续学习能力

Hindsight 开源:让 AI Agent 拥有长期记忆,并具备持续学习能力

Vectorize 开源了 Hindsight,一个面向 AI Agent 的长期记忆系统。项目围绕 Retain、Recall、Reflect 三项核心能力构建,用于完成记忆写入、长期检索以及基于历史记忆的推理。

Hindsight 采用 PostgreSQL 作为核心存储,结合向量检索、全文检索、实体关系和时间信息组织记忆,并支持 MCP、Docker、本地模型以及多种 Agent Framework。

项目源码采用 MIT License。

核心能力

Hindsight 将 Agent Memory 划分为几个不同层次。

World Fact 用于保存外部世界中的事实,例如项目采用 PostgreSQL、某位用户负责某项业务。

Experience 用于保存 Agent 或用户实际经历,例如某次部署完成、一次技术方案讨论以及一次任务执行结果。

Observation 用于保存从多个历史事实中归纳出的信息,例如用户长期使用某种开发方式,或者某个项目长期采用某类技术方案。

在此基础上,Hindsight 还提供 Mental Models,用于围绕特定主题形成持续更新的知识模型,例如用户技术偏好、项目架构和历史决策。

因此,系统中的记忆具有“事实—观察—模型”的层次关系。

Retain:写入长期记忆

retain() 是 Hindsight 的记忆写入接口。

client.retain(
    bank_id="my-bank",
    content="Alice joined Google in March 2024 as a Senior ML Engineer"
)

系统会从输入内容中提取事实、实体、关系和时间信息,并建立检索所需的数据结构。

官方提供多种提取模式:

  • • concise:提取精简记忆
  • • verbose:提取更完整的信息
  • • custom:自定义提取方式
  • • verbatim:保留原始表达
  • • chunks:直接保存原始 Chunk

同时可以通过 retain_mission 为 Memory Bank 指定关注方向。例如软件项目可以重点记录架构决策、API 设计、技术选型和问题修复过程。

这种方式使不同 Agent 或项目能够拥有相互独立的 Memory Bank。

Recall:多路检索历史信息

recall() 用于从长期记忆中寻找相关内容。

Hindsight 的检索体系称为 TEMPR,综合语义、关键词、实体关系和时间等信息进行搜索。

例如查询:

Alice 去年春天负责过什么项目?

系统可以同时利用 Alice 这一实体、项目语义以及时间条件进行检索。

这一设计针对长期记忆中的典型问题:用户过去的信息往往分散在多个会话中,单纯依靠向量相似度很难完整表达实体关系和时间关系。

Recall 本身负责搜索记忆,不负责生成最终回答,也不会额外调用 LLM 进行回答生成。

Reflect:基于记忆进行推理

reflect() 在 Recall 基础上进一步处理复杂问题。

response = client.reflect(
    bank_id="my-bank",
    query="What are Alice's strengths for the team lead role?"
)

Reflect 会检索相关记忆,再综合事实、Observations 和 Mental Models,通过 LLM 形成回答。

Recall 更接近“找到过去的信息”,Reflect 则用于“根据过去的信息形成结论”。

对于用户长期偏好、项目历史决策、任务经历等问题,Reflect 可以将分散在多个时间点的记忆结合起来。

Observation:持续整理历史事实

Hindsight 的 Observation 机制用于从多个记忆中形成更高层次的信息。

例如一个用户先后表达过:

  • • 喜欢使用 Python;
  • • 新项目开始使用 TypeScript;
  • • 后端项目逐步统一采用 TypeScript;
  • • 后续项目优先考虑 TypeScript。

这些内容可以分别作为历史事实保存,同时进一步形成关于用户技术偏好的 Observation。

新的事实进入系统后,相关 Observation 可以继续更新。

这样形成的记忆结构包含原始证据和高层归纳信息,后续 Reflect 可以同时利用两类内容。

PostgreSQL 作为核心数据库

Hindsight 的一个工程特点是直接建立在 PostgreSQL 之上。

项目官方 API 文档列出了多种向量后端,包括:

  • • pgvector
  • • pgvectorscale
  • • vchord
  • • ScaNN

全文搜索则支持 PostgreSQL 原生全文搜索以及多个扩展方案。

Hindsight 因此可以在 PostgreSQL 中同时处理结构化数据、全文检索、向量检索以及 Agent Memory。

项目还提供读副本相关配置,可将 Recall 查询分配到独立连接池。

对于已经使用 PostgreSQL 的企业或个人开发者,这种架构能够减少额外数据库组件。

支持云端和本地模型

Hindsight 本身不提供基础大语言模型,记忆提取和 Reflect 推理需要连接 LLM。

官方支持:

  • • OpenAI
  • • Anthropic
  • • Gemini
  • • DeepSeek
  • • MiniMax
  • • Groq
  • • Amazon Bedrock
  • • Vertex AI

同时支持:

  • • Ollama
  • • LM Studio
  • • llama.cpp
  • • OpenAI-compatible API
  • • LiteLLM

因此,Hindsight 可以与本地模型结合使用。

对于已经运行 Ollama、vLLM 或 LiteLLM 的本地 AI 环境,可以将 Hindsight 作为独立 Memory Server,通过兼容 API 调用现有模型。

MCP 接入 Agent

Hindsight 内置 MCP Server,可以将长期记忆能力提供给支持 MCP 的 Agent。

项目目前提供针对 Coding Agent 的集成,README 中列出的对象包括:

  • • Claude Code
  • • Codex CLI
  • • Cursor CLI
  • • GitHub Copilot CLI
  • • Cline
  • • Devin
  • • Pi
  • • Prime Agent

实际使用时,可以为不同代码仓库建立独立 Memory Bank。

Agent 在开发过程中可以记录架构决策、代码问题、解决过程以及项目约定,后续任务通过 Recall 获取历史信息。

Hindsight 同时提供 Microsoft Agent Framework、Google ADK 等集成方式。

Docker 部署

官方提供 Docker 镜像,基础部署方式如下:

docker run -it --pull always \
  --name hindsight \
  -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

默认 API 端口为 8888,控制界面端口为 9999。

项目同时提供 Python Package、Docker Compose 和 Helm 等部署方式。

论文评测

Hindsight 的技术方案发表在 arXiv 论文 《Hindsight is 20/20: Building Agent Memory that Retains, Recalls, and Reflects》。

论文使用 LongMemEval、LoCoMo 等长期记忆任务进行测试。

论文报告,在使用相同开源 20B 模型的实验中,加入 Hindsight 后整体准确率由完整上下文基线的 39% 提升至 83.6%;扩大模型规模后,LongMemEval 达到 91.4%,LoCoMo 最高达到 89.61%。

项目官方随后发布的 Agent Memory Benchmark 中,Hindsight v0.4.19 的测试结果包括:

数据集Hindsight 测试结果
LoCoMo92.0%
LongMemEval94.6%
LifeBench71.5%
PersonaMem86.6%

这些结果对应特定版本、模型和测试设置,适合用于理解项目当前研究与工程实现的表现。不同版本、模型和数据集之间不能直接横向比较。

项目技术结构

从整体架构看,Hindsight 可以概括为:

Agent → Retain → Memory Bank → Recall → Reflect → Agent

其中:

Retain 负责将对话、文档和任务经历转化为长期记忆。

Memory Bank 负责保存事实、经历、观察和实体关系。

Recall 负责通过语义、关键词、实体和时间等信息检索记忆。

Reflect 负责结合检索结果和高层记忆进行推理。

Mental Models 则负责维护针对特定主题的长期知识摘要。

在工程层面,PostgreSQL 提供核心存储,向量与全文检索提供搜索能力,外部 LLM 负责记忆提取与 Reflect,MCP 则负责连接现有 Agent。

适用场景

Hindsight 主要适用于需要长期状态保存的 Agent:

个人 AI 助手

保存用户长期偏好、历史任务和持续变化的信息。

Coding Agent

记录代码仓库结构、技术方案、历史 Bug 和开发约定。

企业 Agent

保存业务知识、操作历史和跨会话任务状态。

客服 Agent

建立持续更新的用户交互记忆。

研究 Agent

保存检索过程、历史结论及相关证据。

对于本地 AI 用户,Hindsight 还可以与 Ollama、vLLM、LiteLLM 和 MCP 组合使用,构建本地化的长期记忆服务。

相关地址

项目地址:
https://github.com/vectorize-io/hindsight

项目文档:
https://hindsight.vectorize.io/

论文:
https://arxiv.org/abs/2512.12818


原始来源: AI小展厅

评论 (0)