作者:互联网 时间: 2026-07-11 08:54:58
一个月前我开始跑 Agent。我不是做研究,是在生产环境里搭一套能用的 Agent 治理体系。结果第一个月踩了 160 多个坑。

这些坑我得记下来。不记等于白踩。
于是问题来了:用什么存这些记忆?
这不是一个技术选型问题,是一个生存问题——你每天新增几十条踩坑记录、项目决策、产品知识,如果存储方案选错了,后面迁移一次哭一次。
我花了三天调研了五个方向,最后选了 Hindsight。这篇讲讲为什么。
先说我到底要存什么:
一个月累计了 300 多条。每条都不长(几十到几百字),但相互之间有引用关系——比如「COS 加速方案」依赖「Hindsight 升级踩坑」里发现的存储引擎变更知识。
所以我的要求就三个:
最直接的方案。JSON 文件一写,完事。
试了三天发现问题了:
不是说不能用,而是随着记录从 50 条涨到 300 条,维护成本线性增长。50 条的时候还行,300 条的时候你就不想碰了。
Redis 快,内存操作,毫秒级响应。
但 Redis 的问题是无结构。你要存的不是 key-value 对,是带上下文、带关联、带版本的事实。往 Redis 里塞结构化数据,要么自己序列化 JSON 然后失去查询能力,要么自己搭索引——这不又回到了"自己写存储"的老路吗。
而且 Redis 的数据是易失的,持久化配置不对重启就丢数据。我踩不起这个坑。
关系数据库,结构化存储没问题,查询能力强。
但问题是太重了。为了记几百条踩坑记录,我得上一个完整的数据库服务?建表、写 migration、配备份?这套流程走下来,记忆还没记几条,运维配置写了一堆。
而且关系的核心是表结构要稳定。但踩坑记录的知识结构是在演化的——今天多一个"关联产品"字段,明天多一个"严重级别"维度。关系数据库对 schema 变更的代价很高,不适合这种知识结构频繁演化的场景。
专门做 AI 记忆的服务,看起来很对口。
但我评估下来有两个问题:
第一,数据在别人手里。 我存的是产品参数、客户集成配置、生产环境拓扑——这些东西不可能放到第三方服务上。不是信任问题,是合规问题。
第二,定价不透明。 300 条记忆可能免费,3000 条呢?30000 条呢?这种基础设施级别的组件,如果定价权在别人手里,后面迁移成本会非常高。
Hindsight 是 Nous Research 开源的一个 Agent 记忆引擎。它的设计思路跟我的需求刚好对上了。
核心能力:
Hindsight 的定位很明确:不是通用数据库,是专门给 Agent 用的记忆引擎。这个定位意味着它不会试图解决所有存储问题,但它解决的那几个问题正好是我的痛点。
| 需求 | 自建文件 | Redis | MySQL | 第三方服务 | Hindsight |
|---|---|---|---|---|---|
| 结构化存储 | ❌ | ❌ | ✅ | ✅ | ✅ |
| 自动关联 | ❌ | ❌ | ❌ | ✅ | ✅ |
| 轻量部署 | ✅ | ✅ | ❌ | ✅ | ✅ |
| 数据可控 | ✅ | ✅ | ✅ | ❌ | ✅ |
| 语义检索 | ❌ | ❌ | ❌ | ✅ | ✅ |
五个需求,Hindsight 全部命中。
选型不是选完就完了,每选一个方案都要承担它的代价。
Hindsight 的代价是:它还在快速迭代中。 而且迭代幅度不小。
我选的时候 Hindsight 还在 Nous Research 名下,v0.7.2 Docker 镜像默认用 SQLite,轻量省事。但没隔多久项目被 vectorize.io 接手,v0.8.0 全面重构,存储引擎换成了嵌入式 pg0(PostgreSQL 的嵌入式版本),API 和配置格式也变了。两个镜像来自不同的组织,SQLite 的数据文件 pg0 不认,数据不向前兼容。
这个代价我选型的时候其实是知道的,但当时我觉得"升级的时候注意一下就行"——结果我高估了自己的谨慎。
关于那次升级我踩了什么坑——下篇说。
选型有据可查,执行有坑要填。接下来是我用 Hindsight 后,一次升级把 300 条记忆干成了 29 条的真实经历。