vectorize-io/hindsight
GitHub: vectorize-io/hindsight
Hindsight 是一个让 AI Agent 具备长期学习和持久记忆能力的记忆系统,通过仿生记忆架构和多种检索策略,使 Agent 能够从交互中持续学习并形成深层理解。
Stars: 2810 | Forks: 213

[文档](https://hindsight.vectorize.io) • [论文](https://arxiv.org/abs/2512.12818) • [Cookbook](https://hindsight.vectorize.io/cookbook) • [Hindsight Cloud](https://ui.hindsight.vectorize.io/signup)
[](https://github.com/vectorize-io/hindsight/actions/workflows/release.yml)
[](https://join.slack.com/t/hindsight-space/shared_invite/zt-3nhbm4w29-LeSJ5Ixi6j8PdiYOCPlOgg)
[](https://opensource.org/licenses/MIT)


## 什么是 Hindsight?
Hindsight™ 是一个 Agent 记忆系统,旨在构建能够随时间推移不断学习的更智能 Agent。大多数 Agent 记忆系统侧重于回忆对话历史。Hindsight 则专注于让 Agent 能够学习,而不仅仅是记忆。
它消除了 RAG 和知识图谱等替代技术的缺陷,并在长期记忆任务中实现了最先进的性能。
## 记忆性能与准确率
根据基准测试性能,Hindsight 是迄今测试过的最准确的 Agent 记忆系统。它在 LongMemEval 基准测试中取得了最先进的性能,该基准广泛用于评估各种对话式 AI 场景下的记忆系统性能。下图展示了截至 2026 年 1 月,Hindsight 和其他 Agent 记忆解决方案当前报告的性能:

Hindsight 的基准性能数据已由弗吉尼亚理工大学 [Sanghani Center for Artificial Intelligence and Data Analytics](https://sanghani.cs.vt.edu/) 和《华盛顿邮报》的研究合作者独立复现。其他分数由软件供应商自行报告。
Hindsight 正在财富 500 强企业以及越来越多的 AI 初创公司中用于生产环境。
## 将 Hindsight 添加到您的 AI Agent
将 Hindsight 与现有 Agent 配合使用的最简单方法是使用 LLM Wrapper。您只需 2 行代码即可为 Agent 添加记忆。这将用 Hindsight wrapper 替换您当前的 LLM client。之后,在您进行 LLM 调用时,记忆将自动存储和检索。
如果您需要对 Agent 存储和调用记忆的方式及时机进行更多控制,还可以使用 SDK 或直接通过 HTTP 集成简单的 API。

## 快速开始
### Docker (推荐)
```
export OPENAI_API_KEY=sk-xxx
docker run --rm -it --pull always -p 8888:8888 -p 9999:9999 \
-e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \
-v $HOME/.hindsight-docker:/home/hindsight/.pg0 \
ghcr.io/vectorize-io/hindsight:latest
```
您可以通过设置 `HINDSIGHT_API_LLM_PROVIDER` 来修改 LLM provider。有效选项包括 `openai`、`anthropic`、`gemini`、`groq`、`ollama` 和 `lmstudio`。文档提供了关于[支持的模型](https://hindsight.vectorize.io/developer/models)的更多详细信息。
### Docker (外部 PostgreSQL)
```
export OPENAI_API_KEY=sk-xxx
export HINDSIGHT_DB_PASSWORD=choose-a-password
cd docker/docker-compose
docker compose up
```
### 客户端
```
pip install hindsight-client -U
# or
npm install @vectorize-io/hindsight-client
```
#### Python
```
from hindsight_client import Hindsight
client = Hindsight(base_url="http://localhost:8888")
# Retain: 存储信息
client.retain(bank_id="my-bank", content="Alice works at Google as a software engineer")
# Recall: 搜索记忆
client.recall(bank_id="my-bank", query="What does Alice do?")
# Reflect: 生成感知处置的响应
client.reflect(bank_id="my-bank", query="Tell me about Alice")
```
#### Node.js / TypeScript
```
npm install @vectorize-io/hindsight-client
```
```
const { HindsightClient } = require('@vectorize-io/hindsight-client');
const main = async () => {
const client = new HindsightClient({ baseUrl: 'http://localhost:8888' });
await client.retain('my-bank', 'Alice loves hiking in Yosemite');
const results = await client.recall('my-bank', 'What does Alice like?');
console.log(results);
}
main();
```
### Python Embedded (无需服务器)
```
pip install hindsight-all -U
```
```
import os
from hindsight import HindsightServer, HindsightClient
with HindsightServer(
llm_provider="openai",
llm_model="gpt-5-mini",
llm_api_key=os.environ["OPENAI_API_KEY"]
) as server:
client = HindsightClient(base_url=server.url)
client.retain(bank_id="my-bank", content="Alice works at Google")
results = client.recall(bank_id="my-bank", query="Where does Alice work?")
```
## 用例
Hindsight 旨在支持对话式 AI Agent 以及旨在自主执行任务的 Agent。Hindsight 的理想用例是那些需要混合这些功能的 Agent,例如需要处理开放式任务、根据用户反馈改变行为,并学习执行复杂任务以在接近人类工作水平上实现工作自动化的 AI 员工。Hindsight 可用于使用 n8n 和其他类似工具构建的简单 AI workflow,但对于此类应用可能有些大材小用。
### 按用户记忆和聊天历史
您可以使用 Hindsight 的较简单用例之一是通过存储和调用与单个用户关联的记忆,来个性化 AI 聊天机器人和其他对话式 Agent。
此用例的需求通常如下所示:

在 Hindsight 中满足这些需求非常简单。当使用 retain 操作将新的用户输入和 tool calls 引入 Hindsight 时,可以使用自定义 metadata 来丰富新记忆。Metadata 提供了一种便捷的方式来隔离需要限制给特定用户的记忆。一旦将这些输入到 retain 操作中,任何生成的原始记忆和 mental models 都可以在检索相关记忆时进行过滤。

## 架构与操作

大多数 Agent 记忆实现依赖于基本的向量搜索,或者有时使用知识图谱。Hindsight 使用仿生数据结构 以更像人类记忆的方式组织 Agent 记忆:
- **World (世界):** 关于世界的事实(“炉子会变热”)
- **Experiences (经历):** Agent 自身的经历(“我摸了炉子,真的很疼”)
- **Mental Models (心智模型):** 通过对原始记忆和经历进行反思而形成的对 Agent 世界的理解。
Hindsight 中的记忆存储在 banks(即 memory banks)中。当记忆被添加到 Hindsight 时,它们被推入世界事实或经历记忆路径。然后,它们被表示为实体、关系和时间序列的组合,并带有稀疏/密集向量表示以辅助后续的回忆。
Hindsight 提供了三种简单的方法与系统交互:
- **Retain (保留):** 向 Hindsight 提供您希望它记住的信息
- **Recall (回忆):** 从 Hindsight 检索记忆
- **Reflect (反思):** 对记忆和经历进行反思,从现有记忆中生成新的观察和见解。
### Retain
`retain` 操作用于将新记忆推入 Hindsight。它告诉 Hindsight _retain(保留)_ 您作为输入传入的信息。
```
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.retain(
bank_id="my-bank",
content="Alice got promoted to senior engineer",
context="career update",
timestamp="2025-06-15T10:00:00Z"
)
```
在后台,retain 操作使用 LLM 提取关键事实、时间数据、实体和关系。它通过规范化过程传递这些数据,将提取的数据转换为规范实体、时间序列和搜索索引以及 metadata。这些表示为 recall 和 reflect 操作中的准确记忆检索创建了路径。

### Recall
recall 操作用于检索记忆。这些记忆可以来自任何记忆类型(世界、经历等)。
```
from hindsight_client import Hindsight
client = Hindsight(base_url="http://localhost:8888")
# 简单
client.recall(bank_id="my-bank", query="What does Alice do?")
# Temporal
client.recall(bank_id="my-bank", query="What happened in June?")
```
Recall 并行执行 4 种检索策略:
- Semantic (语义):向量相似度
- Keyword (关键词):BM25 精确匹配
- Graph (图谱):实体/时间/因果链接
- Temporal (时间):时间范围过滤

来自检索的各个结果被合并,然后使用倒数排名融合 和 cross-encoder reranking model 按相关性排序。
最终输出会根据需要进行修剪,以适应 token 限制。
### Reflect
reflect 操作用于对现有记忆进行更彻底的分析。这允许 Agent 在记忆之间形成新的联系,并对其世界建立更透彻的理解。
例如,`reflect` 操作可用于支持如下用例:
- 一个 **AI 项目经理** 反思项目中需要缓解的风险。
- 一个 **销售 Agent** 反思为什么某些外联信息得到了回复,而其他的则没有。
- 一个 **支持 Agent** 反思客户提出了当前产品文档未涵盖问题的机会。
`reflect` 操作也可用于处理需要更深入思考的按需问答或分析。
```
from hindsight_client import Hindsight
client = Hindsight(base_url="http://localhost:8888")
client.reflect(bank_id="my-bank", query="What should I know about Alice?")
```

## 资源
**文档:**
- [https://hindsight.vectorize.io](https://hindsight.vectorize.io)
**Client:**
- [Python](http://hindsight.vectorize.io/sdks/python)
- [Node.js](http://hindsight.vectorize.io/sdks/nodejs)
- [REST API](https://hindsight.vectorize.io/api-reference)
- [CLI](https://hindsight.vectorize.io/sdks/cli)
**社区:**
- [Slack](https://join.slack.com/t/hindsight-space/shared_invite/zt-3nhbm4w29-LeSJ5Ixi6j8PdiYOCPlOgg)
- [GitHub Issues](https://github.com/vectorize-io/hindsight/issues)
## [](https://www.star-history.com/#vectorize-io/hindsight&type=date&legend=top-left)
## 许可证
MIT — 见 [LICENSE](./LICENSE)
由 [Vectorize.io](https://vectorize.io)
标签:Agent Memory, AI基础设施, Apex, Cilium, DLL 劫持, LLM, MIT License, MITM代理, NPM, PyPI, Python, RAG, SaaS, TypeScript, Unmanaged PE, Vectorize, 上下文管理, 人工智能, 分布式搜索, 向量数据库, 大语言模型, 威胁情报, 安全插件, 对话系统, 开发者工具, 开源, 无后门, 智能体开发, 智能体记忆, 机器学习, 测试用例, 状态管理, 用户模式Hook绕过, 认知架构, 记忆增强, 记忆层, 请求拦截, 逆向工具, 长文本处理, 长期记忆