Hindsight

让智能体把交互沉淀为可检索、可反思的长期记忆。

Star 数
★ 59k
最近更新
今天
License
MIT
主语言
Python

30 秒速览

运行形态
自托管服务代码库 / SDKMCP 服务器
可在哪里用
通用 · 跨平台OpenAI API · Claude API
费用
有免费版,另有付费云服务
上手难度
低 · 几分钟可跑通
开始前需要
DockerLLM 提供商 API 密钥Shell / 命令行网络访问本地文件系统
典型场景
为客服聊天机器人按用户写入对话、工具调用和元数据,再在后续会话中只召回该用户的相关记忆。
不适合
  • 需要完全离线、不接任何 LLM 服务的团队
  • 不愿把对话数据交给第三方模型或云端的团队
  • 只想用简单工作流、不需要长期记忆的轻量应用

这个 Agent 能做什么,适合哪些场景?

Hindsight 是面向对话式与自主任务型智能体的记忆系统,重点是让智能体从既有信息和经历中形成可用的理解,而不只是保存聊天记录。它以 memory bank 为隔离单元,区分世界事实、智能体经历和由反思形成的 mental models。系统以服务方式提供 Retain、Recall 和 Reflect 三个操作,并提供 Python、Node.js/TypeScript、REST API 与 CLI 接入路径。Docker 部署默认暴露 API 的 8888 端口和 UI 的 9999 端口,也支持外部 PostgreSQL、Oracle AI Database,以及通过 hindsight-all 在 Python 中嵌入运行。适合需要跨交互累积上下文、按用户隔离记忆并在后续任务中检索或分析这些记忆的开发团队。

调用方通过 client.retain(bank_id, content) 写入文本,也可传入 context、timestamp 与元数据。Retain 使用 LLM 提取关键事实、时间数据、实体和关系,并将其规范化为实体、时间序列、搜索索引及元数据;记忆进入 world facts 或 experiences 路径。client.recall(bank_id, query) 会并行执行语义向量、BM25 关键词、实体/时间/因果图和时间范围四种检索,再以 reciprocal rank fusion、cross-encoder 重排并按令牌限制裁剪结果。client.reflect(bank_id, query) 则基于已有记忆与经历生成新的观察、洞见或面向问题的回答。服务可由 hindsight-client 或 @vectorize-io/hindsight-client 调用,也可通过 HTTP 直接集成。

  1. 为客服聊天机器人按用户写入对话、工具调用和元数据,再在后续会话中只召回该用户的相关记忆。
  2. 为需要长期处理项目的 AI 项目经理保存项目事件,并用 Reflect 分析需要缓解的项目风险。
  3. 让销售智能体保留外联经历和结果,再用 Reflect 分析哪些外联信息获得了回复。
  4. 让支持智能体汇集客户问题与交互记录,并反思现有产品文档未覆盖的疑问。
  5. 在已有 Python 或 Node.js 智能体中通过 Hindsight 客户端增加 retain、recall 和 reflect 调用,而非自行实现多路记忆检索。

如何安装或部署这个 Agent?

Docker 部署需要一个 LLM 提供方密钥。以 OpenAI 为例:

export OPENAI_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=$OPENAI_API_KEY -v hindsight-data:/home/hindsight/.pg0 ghcr.io/vectorize-io/hindsight:latest

服务启动后,API 位于 http://localhost:8888,UI 位于 http://localhost:9999。可用 HINDSIGHT_API_LLM_PROVIDER 选择 openai、anthropic、gemini、groq、ollama、lmstudio、minimax 或 atlas。Python 客户端安装命令为 pip install hindsight-client -U;Node.js 客户端安装命令为 npm install @vectorize-io/hindsight-client。若要在 Python 内嵌运行且不单独启动服务器,安装 hindsight-all -U;Intel x86_64 Mac 应使用 hindsight-all-slim。

如何使用这个 Agent?

Python 首次调用:

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")
results = client.recall(bank_id="my-bank", query="What does Alice do?")
answer = client.reflect(bank_id="my-bank", query="Tell me about Alice")

Node.js 可创建 new HindsightClient({ baseUrl: "http://localhost:8888" }),然后依次调用 await client.retain("my-bank", "Alice loves hiking in Yosemite") 与 await client.recall("my-bank", "What does Alice like?")。同一 bank_id 用于将相关记忆放在同一个 memory bank 中。

这个 Agent 有哪些优点和局限?

优点
  • Recall 明确组合四类并行检索:语义、BM25、图关系与时间范围,而不是只做单一向量相似度搜索。
  • Retain 会从输入中抽取并规范化事实、实体、关系和时间数据,随后可供 Recall 与 Reflect 复用。
  • 同时提供 Docker 服务、嵌入式 Python 运行、Python/Node.js 客户端、REST API 和 CLI 路径,便于接入不同应用架构。
  • 可通过 memory bank 和元数据过滤将记忆按用户等维度隔离。
局限
  • 写入和反思依赖配置 LLM 提供方及 API 密钥;仓库列出提供方选项,但未在给定材料中说明各模型的成本、配额或故障处理行为。
  • Intel x86_64 Mac 的嵌入式安装有特殊限制,需要 hindsight-all-slim。
  • README 未给出认证、权限控制、备份、数据保留或多租户安全边界的具体配置,生产采用前需自行核实。
  • 基准表现属于仓库报告;图中其他产品分数说明为厂商自报,仍应使用自身数据和任务验证检索质量。

这个 Agent 与同类方案有什么区别?

README 将 Hindsight 定位为不同于仅依赖 RAG 或知识图谱的记忆实现:它在召回阶段结合向量、关键词、图关系和时间检索,并在写入后形成实体、关系与时间序列表达。材料没有提供可复现的迁移步骤或与某个具体产品的逐项功能对照。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Hindsight 当前 46 · 缺口较多 自托管服务免费版 + 付费版 ★ 59k 今天 Python OpenAI API · Claude API
Memanto 50 · 缺口较多 命令行工具免费版 + 付费版 ★ 2.4k 6 天前 Python Codex · Claude Code
Honcho 记忆基础设施 44 · 缺口较多 代码库 / SDK免费版 + 付费版 ★ 8k 今天 Python Claude Code · OpenAI API · Claude API
Mem0 智能记忆层 52 · 缺口较多 代码库 / SDK免费版 + 付费版 ★ 68k 2 天前 Python ChatGPT · Codex · Claude Code · Claude.ai · OpenAI API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
46/ 100 五分制 2.3 / 5
本评测基于 2026年8月9日 的源码;此后该项目发布了 9 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 8/29
可靠稳定 8/14
适用触发 10/18
规范维护 10/18
有效结果 7/13
证据核验 3/8
查看各维度的扣分理由
信任安全8 / 29 · 1.4/5

证据显示:README 提供了 Docker 和嵌入式部署的配置示例,但未明确权限最小化原则;用户确认机制未提及;数据流透明度部分描述了 retain/recall/reflect 操作,但未说明数据如何被处理或存储;敏感数据处理未专门讨论;依赖安全方面,package.json 中有 overrides 修复已知漏洞,但未提供依赖审计报告;外部影响方面,Docker 命令会暴露端口并持久化数据,但未说明网络暴露风险;回滚机制未提及;来源归属方面,README 提到由 Vectorize.io 构建,但发布者未经验证。扣分原因:缺乏权限最小化、用户确认、回滚等关键安全机制,数据流和敏感数据处理描述不充分。

可靠稳定8 / 14 · 2.9/5

证据显示:README 和测试文件在描述 API 和功能时保持一致,但未提供完整的错误处理文档;依赖可用性方面,提供了多种安装方式(Docker、pip、npm),但未说明依赖的可用性保障;失败消息方面,测试中检查了错误情况,但未提供用户友好的错误消息指南。扣分原因:错误处理文档不完整,依赖可用性未明确说明。

适用触发10 / 18 · 2.8/5

证据显示:README 明确了目标受众(AI 代理开发者)和多种使用场景(如个性化聊天机器人、AI 员工),并提供了多种部署方式(Docker、嵌入式、客户端),但未明确能力边界(如支持的模型、数据规模限制);触发精度方面,描述了 retain/recall/reflect 的触发条件,但未提供精确的触发规则;环境适配方面,提供了平台支持矩阵,但未说明所有环境变量。扣分原因:能力边界和触发精度描述不充分。

规范维护10 / 18 · 2.8/5

证据显示:README 结构清晰,提供了安装说明、示例代码、架构说明和资源链接,但未提供 FAQ 或已知限制;命名稳定性方面,API 名称在文档中一致,但未说明版本兼容性;许可证为 MIT,但未提供变更日志;维护责任方面,README 提到贡献指南,但未明确维护者。扣分原因:缺少 FAQ、已知限制、变更日志和维护者信息。

有效结果7 / 13 · 2.7/5

证据显示:README 提供了清晰的 API 示例和输出格式,但未提供输出质量的评估;边际价值方面,声称优于 RAG 和知识图谱,但未提供详细对比;成本效益方面,未提供性能基准或成本分析。扣分原因:缺乏输出质量评估和成本效益分析。

证据核验3 / 8 · 1.9/5

证据显示:README 声称在 LongMemEval 上达到 SOTA,并提到独立复现,但未提供具体数据或复现步骤;跨来源验证方面,提到 Virginia Tech 和 Washington Post 的复现,但未提供链接;事实与推断分离方面,README 将性能声明与架构描述混合,未明确区分。扣分原因:性能声明缺乏可验证的数据和复现细节。

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 发布者身份未经验证,应谨慎对待其安全性和可靠性声明。
  • README 中的性能声明(如 LongMemEval SOTA)缺乏可验证的数据和复现步骤,不应仅凭此评估。
  • Docker 部署会暴露端口并持久化数据,需注意网络安全和数据保护。
  • 依赖安全仅通过 overrides 修复已知漏洞,未提供完整的依赖审计报告。
证据充分度:低 评估于 2026年8月9日 审查版本 f1c825d88471 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v1.2.0
    发布说明摘录
    What's Changed * docs: changelog and blog post for v1.1.0 by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/5935 * docs(blog): ChatGPT sign-in recording in the v1.1.0 post by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/5939 * fix(parsers): strip UTF-8 byte-order mark in markitdown text files by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/5949 * fix(embeddings): don't fail the call when the provider omits prompt_tokens by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/5951 …
    在 GitHub 查看 ↗
  2. v1.1.0
    发布说明摘录
    What's Changed * docs: v1.0.0 changelog, Memlake launch post, and version-1.0 docs snapshot by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/5550 * fix(client): stop the export poll loop from overrunning its timeout on Windows by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/5568 * feat/webhook event delivery ids by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/5576 * feat(control-plane): identify dataplane requests with its own User-Agent by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/5536 …
    在 GitHub 查看 ↗
  3. v1.0.0
    发布说明摘录
    What's Changed * fix(docs): overview hero reaches the window edges on wide screens by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/5440 * docs: changelog and blog post for v0.10.3 by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/5435 * docs: fix the home page link preview by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/5441 * docs(blog): plain post titles with a description subtitle and byline row by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/5460 …
    在 GitHub 查看 ↗

常见问题

需要使用 OpenAI 吗?
不需要。示例使用 OpenAI 密钥,但 HINDSIGHT_API_LLM_PROVIDER 还列出了 anthropic、gemini、groq、ollama、lmstudio、minimax 和 atlas。
它会保存什么内容?
调用 Retain 时传入的 content 可附带 context、timestamp 和元数据;系统会从中提取事实、实体、关系和时间数据并写入指定 memory bank。
如何按用户隔离聊天记忆?
将数据写入 Retain 时附带自定义元数据,并在检索时过滤相应的 raw memories 与 mental models。README 将这描述为按用户限制记忆范围的方法。
是否有公开的价格或云端使用费用?
材料提供 Hindsight Cloud 注册入口,但未给出定价。自托管示例仍要求配置所选 LLM 提供方的密钥。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents