如何让 AI Agent 拥有持久记忆?Hindsight 快速上手指南
【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight
Hindsight 是一款面向 AI Agent 的开源 AI 记忆系统,让智能体在会话之间拥有持久记忆,不只是记录说过什么,还能把经验沉淀成可复用的洞察。本文用大白话讲清它的原理,并给出一行 Docker 启动命令加最小 Python 示例的完整快速上手流程,适合刚接触 AI Agent 开发的新手。
AI Agent 记忆难题:为什么每次会话都要重复交代背景
先说一个你可能遇到过的场景:早上你花 20 分钟告诉 AI 助手项目的技术栈、数据库选型和团队约定,下午开一个新会话,它又问"你们用的是哪个数据库?"把背景塞进系统提示词可以缓解,但越写越长,也覆盖不了"上周你说过"这类信息。上下文窗口只是一张更大的桌子,不是大脑——会话一结束,记忆就清零。大部分 Agent 对经验是失忆的:能完成任务,却不积累。
Hindsight 是什么:会学习经验的 AI 记忆系统
一句话定位:Hindsight 是给 AI 代理用的 AI 记忆系统,以独立服务方式运行,提供 Python、TypeScript、Go 客户端和标准 HTTP 接口。它和 RAG / 向量数据库的分界线在输入上:RAG 索引的是"你准备好的固定文档库",Hindsight 接收的是"代理在对话和任务中经历过的事"。RAG 把文档切片、向量化,提问时取回最相似的片段,回答"资料里写了什么";Hindsight 把对话写成事实、实体和时间序列,再在后台把相近事实合并成"观察",进一步提炼成可直接读取的"心智模型",回答"我学到了什么"。所以它强调 Agent 经验学习,两者是互补关系:RAG 是外部资料库,Hindsight 是代理自己的长期记忆。官方仓库里有专门讲 Hindsight 和 RAG 的区别 的对比文章。
Hindsight 原理拆解:记录、回忆、复盘成经验 🧠
类比一个好员工的笔记习惯:先把事情记下来,需要时再翻出来,最后定期复盘总结方法。Hindsight 的三个核心操作 Retain、Recall、Reflect 正好对应这三步。和"往数据库里塞日志"的关键区别是:写入那一刻系统就开始在后台整理,你之后取回的不是原文堆。下面按这个顺序讲。
怎么记住:Retain 把一句话变成结构化事实
输入是一句对话或经验,外加可选的上下文和时间,例如retain(bank_id="my-bank", content="Alice 升了高级工程师", timestamp="2025-06-15")。系统做什么:内部由 LLM 抽取事实、实体、时间和关系,规范化后分别写入"世界事实"和"个人经历"两条通路,并建立可检索的索引。输出不再是原文,而是一条能按实体、按时间关联的结构化记忆。写入后还有后续:相关事实会在后台自动合并成"观察",比如三次"用户偏好简洁回复"会并成一条信念,保留原始证据和计数;新证据到来时是"加强或修正"这条信念,而不是覆盖。
怎么召回:Recall 用四条路找记忆
输入是一个问题,例如"Alice 六月做了什么?"。系统做的不是单路关键词匹配:语义向量相似、BM25 关键词、实体与因果图、时间序列四路检索并行跑,再融合四份结果、用交叉编码器重排,最后按你的 token 预算裁剪。输出是带实体上下文和时间信息的有序记忆集合。好处是"上个月发生了什么"这类时间类、关系类问题,不需要你把它翻译成模糊关键词。
怎么变聪明:Reflect 把经验变洞察
Recall 是"查卡片",reflect 是"做复盘"。输入是那种需要思考的问题,比如"关于 Alice 我应该知道什么?"。系统先召回相关记忆,再加载代理档案(包括怀疑度、共情这类性格特质和背景设定),让 LLM 在记忆上深度推理。输出不是一串片段,而是一段合成结论。关键在副作用:这次反思的结论会写回记忆库,作为新的观察或观点,并按证据调整置信度。你定义一个常设问题(比如"用户偏好是什么"),Hindsight 会写出初版答案,之后记忆增长时后台自动重写——代理启动时直接读取这份"心智模型",不必每次重新推导。
一行命令启动 Hindsight:跑通最小 Python 示例
先起服务(Retain 和 Reflect 要用到 LLM,需要配 key):
docker run -it -p 8888:8888 -p 9999:9999 -v hindsight-data:/home/hindsight/.pg0 \ -e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \ ghcr.io/vectorize-io/hindsight:latestAPI 在 8888 端口,9999 端口是 Web 界面。然后在 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") print(client.recall(bank_id="my-bank", query="What does Alice do?")) print(client.reflect(bank_id="my-bank", query="Tell me about Alice"))跑起来后你会看到:retain 返回后,事实抽取在后台进行,几秒后才可检索;recall 打印的是带相关性分数的结构化事实列表,reflect 则是一段合成段落。打开 9999 的界面还能看到 bank 里的事实数量与记忆统计。Python 客户端源码在 hindsight-clients/python/,也可以pip install hindsight-all在 Python 里直接拉起内嵌服务,不单独起容器。
Hindsight 适合谁:看 3 个场景,知 1 个边界
先看三类场景。一是长期服务某个用户的代理,比如客服或个人助理:每个用户建一个独立 bank,记住偏好和历史,回复会越用越贴合。二是长周期项目的编码代理:把约定、架构决策、踩过的坑沉淀进记忆,新会话不必重新理解代码库。三是需要"根据过往成败调整行为"的自主任务代理,比如销售代理复盘哪些外联消息有回复、哪些没有。官方文档里这些场景都有现成模式可抄。边界也要说清:如果你只是"查固定文档库",或者流程一次性跑完就结束,上整套记忆服务属于杀鸡用牛刀——简单 RAG 更直接。
想动手的话,最短路径是用上面的命令起服务、跑三行示例,再在界面里观察"观察"的合并效果。想深入,从 安装指南 和 心智模型章节 读起,它们覆盖了"经验"如何变成"洞察"的完整机制。
【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考