开发与工程 agent-memorylong-term-memorymemory-retrievalpython-sdktypescript-sdkrest-apidocker

Hindsight

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

FollowAgents 评估 · FARS-2.1
不推荐
46/ 100 五分制 2.3 / 5
1 2 3 4 5 6
按维度查看评分与理由
1信任安全8 / 29 · 1.4/5

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

2可靠稳定8 / 14 · 2.9/5

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

3适用触发10 / 18 · 2.8/5

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

4规范维护10 / 18 · 2.8/5

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

5有效结果7 / 13 · 2.7/5

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

6证据核验3 / 8 · 1.9/5

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

证据充分度: 评估于 2026年8月9日 审查版本 f1c825d88471
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
源码中未见的安全控制:执行前用户确认、回滚或恢复路径
使用前请注意
  • 发布者身份未经验证,应谨慎对待其安全性和可靠性声明。
  • README 中的性能声明(如 LongMemEval SOTA)缺乏可验证的数据和复现步骤,不应仅凭此评估。
  • Docker 部署会暴露端口并持久化数据,需注意网络安全和数据保护。
  • 依赖安全仅通过 overrides 修复已知漏洞,未提供完整的依赖审计报告。
查看完整评分方法 →

这个 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 有哪些优点和局限?

优点
  • 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?

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 与同类方案有什么区别?

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

常见问题

需要使用 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 提供方的密钥。

对比同类 Agent

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

相关 Agents