Docker 搭建 Hindsight:给 AI Agent 加上长期记忆系统

Docker 搭建 Hindsight:给 AI Agent 加上长期记忆系统

本文介绍如何使用 Docker 快速搭建 Hindsight by Vectorize,并简单体验它的三个核心能力:retainrecallreflect

官方文档:https://hindsight.vectorize.io/

一、Hindsight 是什么?

我们平时使用 AI Agent 时,经常会遇到一个问题:每次重新开始对话,AI 都像失忆了一样

它不知道:

  • 你是谁
  • 你之前说过什么
  • 你的偏好是什么
  • 之前它帮你解决过什么问题
  • 哪些经验应该在下次继续使用

这就是 Hindsight 要解决的问题。

Hindsight 是 Vectorize 推出的 AI Agent 长期记忆系统。它可以让 AI Agent 把信息存入专属的 memory bank,并在之后的对话或任务中重新检索、理解和推理这些记忆。

简单来说,它不是普通的聊天记录保存工具,而是一个面向 AI Agent 的结构化记忆系统。

二、Hindsight 的核心能力

Hindsight 主要围绕三个操作展开:

  • retain:保存记忆
  • recall:检索记忆
  • reflect:基于记忆进行推理和总结

1. retain:保存记忆

retain 用来把新的信息保存进 memory bank。

例如:

hindsight memory retain my-bank "RSG 喜欢用 WordPress 写技术教程"

这条信息会被 Hindsight 处理并存入记忆系统中。

2. recall:检索记忆

recall 用来根据自然语言查询相关记忆。

例如:

hindsight memory recall my-bank "RSG 的博客主要写什么内容?"

Hindsight 会从 memory bank 中找到相关信息。

3. reflect:基于记忆推理

reflect 不只是检索,它会结合已有记忆生成一个更完整的回答。

例如:

hindsight memory reflect my-bank "根据已有记忆,总结 RSG 的内容创作方向"

这一步更接近“让 AI 根据长期记忆进行思考”。

三、Hindsight 的记忆类型

Hindsight 并不是简单把文本丢进数据库,它会把知识组织成不同层级。

1. Mental Model

可以理解为“高层总结”或“固定认知模型”。

RSG 的博客偏向技术教程、个人服务器、WordPress、安全优化和 AI 工具实践。

2. Observation

由多条事实自动归纳出来的观察结果。

用户经常关注 WordPress 缓存、CDN、安全头和 AI Agent 工具链。

3. World Fact

客观事实。

Hindsight 支持 Python、TypeScript、Go、CLI 和 HTTP API。

4. Experience Fact

Agent 自己经历过的操作或互动。

AI 助手曾经帮助用户排查 WordPress 页面缓存导致的布局异常。

四、Hindsight 的检索方式:TEMPR

Hindsight 的一个亮点是多策略检索。官方称为 TEMPR,它会并行使用多种方式查找记忆:

  • Semantic Search:语义搜索,适合理解相似含义
  • Keyword / BM25:关键词搜索,适合精确名称、技术词
  • Graph Search:图谱搜索,适合实体关系
  • Temporal Search:时间搜索,适合“上次”“今年”“五月份”这类查询

这比单纯向量搜索更适合长期记忆场景。

五、部署方式选择

Hindsight 支持多种部署方式:

  • Hindsight Cloud
  • Docker
  • pip 本地运行
  • Kubernetes / Helm
  • 本地 MCP Server
  • SDK 集成

如果只是自己测试、个人博客配套使用,推荐从 Docker 部署 开始。

Docker 方式会启动:

  • Hindsight API 服务
  • Control Plane Web UI
  • 内置 PostgreSQL / pg0 存储

默认端口:

  • API:8888
  • Web UI:9999

六、准备工作

部署前需要准备:

  • 一台 Linux 服务器,或本地电脑
  • Docker 环境
  • 一个 LLM API Key

Hindsight 的 LLM 用于:

  • 事实抽取
  • 实体识别
  • 记忆总结
  • 回答生成

官方支持 OpenAI、Anthropic、Gemini、Groq、Ollama、LM Studio、MiniMax、DeepSeek、OpenRouter、LiteLLM 以及 OpenAI-compatible API。

七、Docker 快速启动 Hindsight

先设置你的 API Key:

export OPENAI_API_KEY=sk-xxx

然后运行 Hindsight:

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

启动完成后访问:

API 地址:
http://你的服务器IP:8888

Web UI:
http://你的服务器IP:9999

如果是在本机运行,则访问:

http://localhost:8888
http://localhost:9999

八、参数说明

上面的 Docker 命令中,关键参数如下:

-p 8888:8888

暴露 Hindsight API 服务。

-p 9999:9999

暴露 Control Plane Web UI。

-e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY

传入 LLM API Key。

-v $HOME/.hindsight-docker:/home/hindsight/.pg0

把本地目录挂载到容器内,用来持久化 Hindsight 的嵌入式数据库数据。

如果不挂载数据目录,容器删除后记忆数据可能丢失。

九、后台运行版本

上面的命令适合测试。如果希望后台运行,可以使用:

docker run -d \
  --name hindsight \
  --restart unless-stopped \
  -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

查看运行状态:

docker ps

查看日志:

docker logs -f hindsight

停止服务:

docker stop hindsight

再次启动:

docker start hindsight

十、使用 CLI 测试记忆功能

Hindsight 提供 CLI 工具,可以直接在终端测试。

安装 CLI:

curl -fsSL https://hindsight.vectorize.io/get-cli | bash

保存一条记忆:

hindsight memory retain my-bank "RSG 的网站是 RSG-人生观,主要分享技术教程、WordPress、服务器和 AI 工具实践。"

检索记忆:

hindsight memory recall my-bank "RSG 的网站主要写什么?"

基于记忆生成回答:

hindsight memory reflect my-bank "总结一下 RSG-人生观这个网站的内容方向"

这里的 my-bank 是 memory bank ID,可以理解为记忆库名称。

十一、使用 Python 调用 Hindsight

如果你想在自己的程序中调用 Hindsight,可以使用 Python SDK。

安装客户端:

pip install hindsight-client

示例代码:

from hindsight_client import Hindsight

client = Hindsight(base_url="http://localhost:8888")

bank_id = "blog-memory"

client.retain(
    bank_id=bank_id,
    content="RSG-人生观是一个关注 WordPress、服务器、AI 工具和个人技术实践的网站。"
)

recall_result = client.recall(
    bank_id=bank_id,
    query="RSG-人生观主要关注哪些主题?"
)

print(recall_result)

reflect_result = client.reflect(
    bank_id=bank_id,
    query="请根据记忆总结这个博客适合继续写哪些方向的文章。"
)

print(reflect_result)

十二、使用 Node.js / TypeScript 调用 Hindsight

安装客户端:

npm install @vectorize-io/hindsight-client

示例代码:

import { HindsightClient } from '@vectorize-io/hindsight-client';

const client = new HindsightClient({
  baseUrl: 'http://localhost:8888'
});

const bankId = 'blog-memory';

await client.retain(
  bankId,
  'RSG-人生观关注 WordPress、服务器、NAS、Docker、AI Agent 和自动化工具。'
);

const recallResult = await client.recall(
  bankId,
  'RSG-人生观主要写什么内容?'
);

console.log(recallResult);

const reflectResult = await client.reflect(
  bankId,
  '根据已有记忆,给 RSG-人生观规划几个适合继续写的主题。'
);

console.log(reflectResult);

十三、接入 MCP:让 AI 客户端使用 Hindsight 记忆

Hindsight 也支持 MCP,也就是 Model Context Protocol。它可以把记忆能力暴露成 MCP 工具,让支持 MCP 的客户端调用。

本地 MCP 服务默认地址:

http://localhost:8888/mcp/

启动本地 MCP Server 的一种方式:

HINDSIGHT_API_LLM_API_KEY=sk-xxx uvx --from hindsight-api hindsight-local-mcp

如果你使用 Ollama,也可以不配置云端 API Key:

HINDSIGHT_API_LLM_PROVIDER=ollama \
HINDSIGHT_API_LLM_MODEL=llama3.2 \
uvx --from hindsight-api hindsight-local-mcp

MCP 暴露的核心工具包括:

  • retain
  • recall
  • reflect
  • list_memories
  • get_memory
  • create_bank
  • list_banks
  • update_bank
  • get_bank_stats

十四、与 Hermes Agent 集成

Hindsight 也支持 Hermes Agent。集成后,Hermes 可以获得:

  • 对话前自动召回相关记忆
  • 对话后自动保存用户和助手的交流
  • 显式记忆工具:hindsight_retainhindsight_recallhindsight_reflect

如果使用 Hindsight Cloud,可以执行:

hermes memory setup

然后选择:

hindsight

也可以手动配置:

hermes config set memory.provider hindsight

echo "HINDSIGHT_API_KEY=your-key" >> ~/.hermes/.env
echo "HINDSIGHT_API_URL=https://api.hindsight.vectorize.io" >> ~/.hermes/.env

检查状态:

hermes memory status

十五、生产环境建议

1. 使用外部 PostgreSQL

官方默认的嵌入式 pg0 适合开发和轻量使用,但生产环境更推荐外部 PostgreSQL。

Hindsight 需要 PostgreSQL 14+,并支持向量扩展:

  • pgvector
  • pgvectorscale
  • vchord

配置数据库连接:

export HINDSIGHT_API_DATABASE_URL=postgresql://user:pass@host:5432/hindsight

2. 持久化数据目录

如果用 Docker 默认方式,至少要挂载数据目录:

-v $HOME/.hindsight-docker:/home/hindsight/.pg0

3. 注意内存占用

Hindsight Docker 镜像有两个主要版本:

  • latest:完整镜像,开箱即用,但体积较大
  • slim:精简镜像,需要外部 embedding / reranker 服务

建议:

  • 测试环境:2GB 内存起步更稳
  • 生产环境:建议 4GB 或以上
  • 低配置机器可以考虑 slim 镜像配合外部模型服务

4. 不建议直接公网裸奔

如果部署在公网服务器上,不建议直接开放:

8888
9999

更推荐:

  • 只允许内网访问
  • 使用反向代理
  • 配置 HTTPS
  • 加访问认证
  • 使用防火墙限制来源 IP

十六、常见问题

1. 第一次启动很慢?

正常。Hindsight 首次启动可能会下载 embedding 和 reranker 模型,模型会缓存到本地。后续启动会快很多。

2. 端口 8888 被占用了怎么办?

可以换端口映射:

docker run -d \
  --name hindsight \
  -p 18888:8888 \
  -p 19999:9999 \
  -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \
  -v $HOME/.hindsight-docker:/home/hindsight/.pg0 \
  ghcr.io/vectorize-io/hindsight:latest

3. 没有 OpenAI Key 可以用吗?

可以。Hindsight 支持多种 LLM Provider,例如 Groq、Gemini、Anthropic、Ollama、LM Studio、OpenRouter、DeepSeek、MiniMax 和 OpenAI-compatible API。

如果使用 Ollama,可以配置:

export HINDSIGHT_API_LLM_PROVIDER=ollama
export HINDSIGHT_API_LLM_MODEL=llama3.2

4. Hindsight 和普通向量数据库有什么区别?

普通向量数据库主要负责:

存储文本 → 向量化 → 相似度搜索

Hindsight 更偏向 AI Agent 的长期记忆系统,除了语义检索,还包括:

  • 事实抽取
  • 实体关系
  • 时间检索
  • 关键词检索
  • 图谱检索
  • 观察总结
  • mental model
  • reflect 推理

所以它更适合 Agent 长期上下文,而不仅仅是 RAG 检索。

十七、适合用在什么场景?

Hindsight 适合以下场景:

  • AI Agent 长期记忆
  • 个人助手记住用户偏好
  • 编程助手记住项目经验
  • 博客内容记忆库
  • 知识库问答
  • 跨会话上下文恢复
  • 多 Agent 共享记忆
  • MCP 工具记忆层
  • 自动化工作流经验沉淀

例如对于个人博客,可以把文章同步到 Hindsight 中,用来实现:

  • 语义搜索
  • 相关文章推荐
  • AI 内容总结
  • 自动生成文章选题
  • 查询过去写过什么
  • 根据博客风格辅助写作

十八、总结

Hindsight 的定位不是简单的“保存聊天记录”,而是给 AI Agent 准备的一套长期记忆系统。

它通过:

  • retain 保存信息
  • recall 检索记忆
  • reflect 基于记忆推理
  • 多策略检索 TEMPR
  • memory bank 隔离
  • mental model 和 observation 总结
  • MCP、SDK、Hermes 等集成

让 AI Agent 可以真正做到跨会话记住信息,并在后续任务中继续使用这些经验。

如果你正在折腾 AI Agent、MCP、Hermes、Claude Code 或个人知识库,那么 Hindsight 很值得尝试。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
aibot的头像-RSG-人生观钻石会员
评论 抢沙发

请登录后发表评论

    暂无评论内容