Hindsight 智能体记忆系统怎么部署:嵌入式、Docker 与 Kubernetes 三种方式快速上手
【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight
凌晨两点,你重启了那台跑客服机器人的服务器,它对用户的称呼、上周刚确认的订单细节全部清零——对话历史还在日志里,但它又得从头认识你。问题出在"记忆"上:传统方案只存对话文本,而 Hindsight 是一个开源智能体记忆系统,用 retain / recall / reflect 三个操作把信息沉淀成可检索、可推理的记忆,重启后照样认得你。
30 秒速览:Hindsight 记忆系统解决什么问题
Hindsight 把存入的信息拆成事实、经验、观察三类记忆,后台自动把零散事实整合成带证据的"观察",检索时并行跑语义、关键词、图谱、时间四种策略再融合排序。它解决的核心场景是:让长期运行的 AI 智能体跨会话保留并复用知识,而不是每次都靠塞满上下文窗口。
先判断你要走哪条路:
| 场景 | 推荐方式 | 备注 |
|---|---|---|
| Python 应用内直接集成 | 嵌入式(hindsight-all) | 无独立服务进程,Intel Mac 用 slim 版 |
| 本地验证、小型部署 | Docker 单容器(内置 pg0 数据库) | 一条命令起步,卷持久化数据 |
| 生产环境 | Docker + 外部 PostgreSQL | 仓库自带 compose 文件 |
| 集群化、多副本 | Kubernetes + Helm | 支持独立扩展 worker 副本 |
| 不想管基础设施 | 官方托管服务(Hindsight Cloud) | 客户端指向其 API 地址即可 |
前置准备:最小依赖清单
- 一个可用的 LLM API Key(OpenAI、Anthropic、Groq 等 25+ 提供商,或 Ollama 等本地端点)。
- 选 Docker(容器/K8s 方案)或 Python 3(pip 方案)其一。
- 外部 PostgreSQL 需 14+ 版本并启用向量扩展(pgvector 默认),内置数据库方案不需要。
- 资源底线:Full 镜像约 2 GB 内存、slim 镜像约 1 GB,PostgreSQL 约 1 GB(依据:安装文档 给出的硬件表)。
- 预留端口:API 8888、管理界面 9999。
方案一:嵌入式部署到 Python 应用
适合:想在应用进程里直接持有记忆能力、不想多管一个服务的人。不适合:多语言客户端共用、或需要独立扩缩容的团队。
步骤:
- 安装完整包:
pip install hindsight-all(Intel Mac 装hindsight-all-slim)。 - 在应用里启动内嵌服务,拿到服务地址。
- 用客户端执行 retain / recall。
关键配置(服务随应用同生命周期,LLM 密钥走环境变量最稳):
from hindsight import HindsightServer, HindsightClient with HindsightServer(llm_provider="openai", llm_api_key="sk-xxx") as server: client = HindsightClient(base_url=server.url) client.retain(bank_id="alice", content="Alice prefers concise answers.") client.recall(bank_id="alice", query="How should I respond?")另有HindsightEmbedded模式:服务以守护子进程运行,可被多个进程共享,适合脚本间复用同一套记忆。参考 hindsight-all 说明。
方案二:Docker 一键启动(内置数据库)
适合:本地验证、原型和小型部署。不适合:需要跨节点共享数据库或独立备份策略的生产环境。
步骤:
- 确认 Docker 已安装并运行。
- 单行启动(带数据卷与端口映射):
export HINDSIGHT_API_LLM_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 -v hindsight-data:/home/hindsight/.pg0 ghcr.io/vectorize-io/hindsight:latest curl http://localhost:8888/api/health- 浏览器打开 http://localhost:9999 确认管理界面可访问。
关键配置:
- 数据卷:用命名卷(如上的
hindsight-data)而不是宿主目录;宿主目录必须归 UID 1000 所有,否则数据库报 Permission denied。 HINDSIGHT_API_WORKER_ID:设为固定值(如-e HINDSIGHT_API_WORKER_ID=hindsight-prod)。容器默认用容器 ID 当 worker 身份,重启后变化,重启前正在处理的任务会滞留无法认领。- 镜像变体:Full 版(latest)内置本地嵌入与重排模型;slim 版约 500 MB,但必须外接嵌入/重排服务。
方案三:Docker Compose + 外部 PostgreSQL
适合:生产环境,数据库要独立备份、独立扩缩容。不适合:不想额外维护数据库的纯原型场景。
步骤:
- 使用仓库现成的 compose 文件:docker/docker-compose/external-pg/。
- 设置必填环境变量:
export HINDSIGHT_DB_PASSWORD=choose-a-strong-password export HINDSIGHT_API_LLM_API_KEY=sk-xxx docker compose -f docker/docker-compose/external-pg/docker-compose.yaml up -d- 等
hindsight-db与hindsight-app两个容器就绪,访问 8888/9999 端口验证。
关键配置:
- compose 文件用
pgvector/pgvector官方镜像并挂载pg_data卷,密码变量未设置会直接拒绝启动,这是有意的防呆设计。 - 若改用自己的托管 PostgreSQL(Supabase、Neon、RDS 等),对应设置
HINDSIGHT_API_DATABASE_URL,且库中须已执行CREATE EXTENSION vector;。
方案四:Kubernetes Helm 部署
适合:需要自动扩缩容、多副本高可用的团队。不适合:只有单机资源的场景,开销不划算。
步骤:
- 确认 Helm 3.8+ 与集群访问权限。
- 安装(内置 PostgreSQL):
helm install hindsight oci://ghcr.io/vectorize-io/charts/hindsight --set api.llm.provider=openai --set api.llm.apiKey=sk-xxx --set postgresql.enabled=true- 需要吞吐时加 worker 副本:
helm upgrade hindsight oci://ghcr.io/vectorize-io/charts/hindsight --set worker.enabled=true --set worker.replicaCount=3关键配置:worker 以 StatefulSet 部署,Pod 名固定,任务身份在重启后依然可识别;如果你换成普通 Deployment,必须给每个副本显式设置HINDSIGHT_API_WORKER_ID,否则任务会成孤儿。全部可调项见 helm/hindsight/values.yaml。
踩坑速查:高频问题三句话
| 现象 | 原因 | 解决 |
|---|---|---|
| 内置库启动报 Permission denied | 宿主绑定目录不归容器用户(UID 1000)所有 | 改用命名卷,或把目录属主改为 UID 1000 |
| 容器重启后任务滞留、不再被认领 | worker 身份取容器 ID,每次重启都变 | 设固定的HINDSIGHT_API_WORKER_ID |
| Intel Mac 上 pip 安装"成功"却行为异常 | 完整包无 Intel Mac 轮子,静默回退到旧版本 | 改装hindsight-all-slim并配外部嵌入服务 |
| 外部 PostgreSQL 连接报缺扩展 | 数据库未装向量扩展 | 建库后执行CREATE EXTENSION vector; |
| LLM 调用超时 | 网络或密钥问题 | 先用 curl 单独验证提供商端点,再检查密钥与代理 |
进阶调优:三条真正影响性能的点
- slim 镜像 + 外部嵌入/重排服务:镜像从约 9 GB 降到约 500 MB,常驻内存降到 1 GB 内,代价是多一个外部服务依赖。
- recall 延迟瓶颈在重排:CPU 上跑 cross-encoder 是主要开销,可给 GPU 或把重排卸载到外部服务(TEI、Cohere 等)。
- worker 与 API 分离扩缩容:
worker.replicaCount独立加副本,写入/整合吞吐提升,不影响 API 面。
收尾与下一步
四种方式本质是同一个 API 服务在不同载体上:嵌入式进你的进程,Docker 管单机,Compose 把数据库拆出去,Helm 管集群。从嵌入式或单容器起步验证功能,再按压力逐步外移数据库和副本,是最平滑的路径。
下一步(都可以直接执行):
- 通读 hindsight-docs/docs/developer/installation.md,里面有 Windows、slim 镜像等细节。
- 跑一遍 docker/docker-compose/external-pg/ 的 compose,体会生产形态。
- 部署完成后对照 hindsight-docs/docs/developer/performance.md 做基线测量。
【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考