
Hindsight 自托管 Agent 长期记忆 60 秒快速上手一条命令完成部署三步跑通 retain / recall / reflect【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight多数 AI 智能体Agent都有失忆问题会话一结束上下文全部丢失。Hindsight 是一个开源的 Agent 长期记忆系统核心能力是三个操作——retain写入记忆、recall检索记忆、reflect基于记忆综合回答。本文从自托管部署讲起用一条 Docker 命令启动本地实例再用客户端三步跑通完整的记忆链路并解释记忆库memory bank与回忆预算recall budget这两个最容易配错的设计——既教你怎么做也讲清为什么这么设计。一条命令自托管部署 Hindsight前提只有一个 LLM API Key——Hindsight 需要 LLM 做事实抽取、实体识别与答案合成支持 25 提供方用 OpenAI 最直接。一条 Docker 命令启动export OPENAI_API_KEYsk-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启动后 API 位于http://localhost:8888Web UI 位于http://localhost:9999。用一条健康检查命令确认存活curl http://localhost:8888/health 三个容易踩坑的设计点内嵌数据库省去运维 PostgreSQL——-v hindsight-data:/home/hindsight/.pg0把内嵌数据库挂到命名卷数据随容器重建而保留生产环境建议换成外部 PostgreSQL 或托管数据库。LLM API Key 是唯一必填项——HINDSIGHT_API_LLM_API_KEY由服务端内部消费换提供方只需追加HINDSIGHT_API_LLM_PROVIDERollama、groq、deepseek 等均可含完全本地方案。容器默认以 UID 1000 运行——若改用宿主机目录绑定挂载而非命名卷该目录必须归 1000 所有否则内嵌数据库会以Permission denied启动失败。其余部署方式裸机pip install hindsight-api、Helm/Kubernetes、Python 嵌入式见 安装文档 与 模型提供方文档。三步跑通三大记忆操作retain、recall、reflect安装 Python 客户端pip install hindsight-client指向本地地址即可使用三个核心操作。第一步retain 写入事实from hindsight_client import Hindsight client Hindsight(base_urlhttp://localhost:8888) client.retain(bank_idmy-bank, contentAlice works at Google as a software engineer)retain 不是把字符串存进数据库。背后它把文本交给 LLM 做事实抽取识别并归一化实体再以文本 向量 时间戳 元数据的记忆单元memory unit存储同时构建实体、时序、语义、因果四类链接。你给进去的是一句话得到的是知识图谱knowledge graph里的一套索引——这正是后面 recall 无论怎么问法都能找到的前提。抽取时会自动区分两类事实world facts客观事实灶台是烫的与 experience智能体自身经历我摸了灶台很疼。默认抽取模式是concise只保留值得长期记住的事实想让抽取聚焦特定内容可在记忆库上配置retain_mission如只关注技术决策忽略寒暄。第二步recall 并行四路检索results client.recall(bank_idmy-bank, queryWhat does Alice do?)一条 query 同时驱动四条检索通道语义检索向量相似度处理改述与同义词、关键词检索BM25 精确匹配处理专有名词与技术词、图谱遍历沿实体与因果链接多跳、时序检索按时间范围过滤。四路结果经倒数排名融合reciprocal rank fusion合并排序再由交叉编码器重排cross-encoder reranking精调最后按 token 预算裁剪输出。为什么要并行四路「Alice works at Google」需要精确匹配名字「Where does Alice work?」需要语义理解「What did Alice do last spring?」需要时序推理——没有任何单一检索方法能全部覆盖这正是 Hindsight 在长期记忆基准上准确率的来源。第三步reflect 深度综合answer client.reflect(bank_idmy-bank, queryWhat should I know about Alice?)recall 返回的是按相关性排好序的事实清单reflect 则运行一个智能体循环agentic loop自主决定先查什么证据先查心智模型mental model摘要再查观察observation——从多条事实蒸馏出的去重结论最后回落到原始事实推理受银行性情disposition三维度怀疑度/字面度/共情度默认均为 3 的平衡档约束且只能引用它实际检索到的记忆 ID——必须先收集证据才能回答是一条硬性护栏。怎么选日常问答用 recall快且成本可控需要下判断或回答开放式问题时用 reflect输出带引用来源。记忆库隔离与关键参数默认值以上操作都读写my-bank这个记忆库memory bank。Bank 是完全隔离的存储单元内含记忆、文档、实体、关系与指令不同 bank 之间记忆互不可见——这是每个用户、每个项目各建一个 bank这一多租户模式的基础。 两个边界行为值得记牢bank 无需预创建——第一次写入retain时按默认配置自动建库零前置配置。读取不存在的 bank 返回 404而不是空结果——bank ID 拼错或误删会显式报错。这是刻意的设计如果监控脚本轮询 bank 统计接口不存在的 bank 会响亮地失败而不是返回一组看起来像健康空库的全零计数。参数作用默认值底层对应边界行为bank_id读写哪个记忆库无默认首次写入自动创建URL 路径参数读不存在的 bank 返回 404budgetrecall每路检索的深度mid映射为内部thinking_budgetfixed 档 100/300/1000可用HINDSIGHT_API_RECALL_BUDGET_FIXED_LOW/MID/HIGH调整low适合低延迟查询high适合需要穷尽覆盖的场景max_tokensrecall返回事实的总 token 预算4096只统计每条事实的text字段按相关性顺序返回单条超剩余预算会被跳过而非截断更靠后的短事实仍会返回queryrecall同时驱动四路检索唯一必填项向量化 BM25 分词 图谱遍历 时序解析超过 500 token 直接拒绝typesrecall限定检索的记忆类型全搜world/experience/observation每种类型独立跑完整四路流水线收窄范围同时减少结果集与查询成本retain_extraction_mode事实抽取力度concisebank 级配置verbose保留更多细节但更慢更贵chunks模式按原文逐块存储且不调用 LLMdisposition_*reflectreflect 的推理风格怀疑/字面/共情3平衡档1–5 刻度bank 级配置只影响 reflect1偏轻信字面/冷分析5偏质疑/共情budget还可以从固定映射切换为自适应模式adaptivethinking_budget max_tokens × 比例默认比例 0.025 / 0.075 / 0.25并钳制在 20–2000 之间——检索广度随你申请的输出预算伸缩。完整环境变量清单见 配置文档。各操作与 bank 配置的完整字段参考retain · recall · reflect · 记忆库配置四路检索与融合机制的拆解见 检索架构指南。完整路径回顾回顾一遍最短路径跑 Docker 命令启动本地实例API 在http://localhost:8888curl /health确认存活→pip install hindsight-client并指向该地址 →retain写入事实 →recall检索按延迟与深度需求选budget、按上下文窗口配额设max_tokens→ 需要形成判断时改用reflect。所有记忆按记忆库隔离一个用户或项目一个 bank拼错 ID 立刻 404数据不会跨库泄露。【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考