很多人一听“AIAgent记忆”,脑子里会同时冒出一堆词:RAG向量数据库长期记忆聊天历史SQLiteHNSW看起来都像一回事,其实不是。把这件事讲透,只需要一句话:Agent不是像人一样把东西记在脑子里,而是系统在替它管理信息。理解了这句话,后面所有概念都会顺很多
很多人一听“AI Agent 记忆”,脑子里会同时冒出一堆词:
看起来都像一回事,其实不是。
把这件事讲透,只需要一句话:
Agent 不是像人一样把东西记在脑子里,而是系统在替它管理信息。
理解了这句话,后面所有概念都会顺很多。
就是当前这次对话正在用的信息。
比如你刚问了一个问题,下一句继续追问,它还能接得上。不是模型突然有了永久记忆,而是系统把前面的内容继续带给它了。
所以短期记忆本质上就是:当前上下文。
你可以把它理解成 Agent 手里正拿着的便签。
就是以后还可能反复用到的信息。
比如:
这不是把所有聊天记录都存起来,而是只留下“以后还可能有用”的部分。
所以长期记忆本质上就是:有选择地保存重要信息。
你可以把它理解成 Agent 抽屉里长期留着的笔记。
RAG 说白了就是:需要时去查资料。
比如去查:
它不等于“记住了”,更像“遇到问题先翻书”。
所以:
这三样经常一起出现,所以很多人容易混。
向量数据库不是记忆本身,它只是一个找东西的工具。
做法通常是:
所以向量数据库更像一个“按语义检索”的引擎。它可以被拿来做 RAG,也可以拿来做长期记忆检索,但它本身不等于记忆系统。
很多文章喜欢一句话带过:“接个向量库,Agent 就有记忆了。”这话不算全错,但不准确。
因为真正的记忆系统,不只是“能存、能搜”,还要解决这些问题:
这些才是记忆系统真正难的地方。
HNSW 是向量检索里很常见的一种方法。你不用记全名,只要知道它是干什么的:
它是为了让“按意思找内容”这件事更快、更稳。
为什么很多 Agent 喜欢用它?
因为 Agent 很怕漏掉关键资料。普通搜索漏一条结果,可能无所谓;但 Agent 如果少拿到一段关键上下文,后面的回答可能整条跑偏。
所以 Agent 很在意两件事:
HNSW 在这两件事之间,通常是一个很稳的平衡点,所以在很多向量库和 RAG 系统里都很常见。
简单说就是:HNSW 适合做语义检索。
因为不是所有 Agent 都在解决“语义检索”问题。
很多 Agent 处理的内容,其实更适合按“字面”找,比如:
这些内容最重要的不是“意思接近”,而是精确字符串本身。
这时候,用 SQLite + FTS5 往往更合适。
FTS5 可以理解成 SQLite 里内置的一个轻量全文搜索能力,擅长按关键词、短语、文本内容去查。它特别适合:
所以很多本地 Agent、代码助手、日志助手,很喜欢 SQLite + FTS5。不是因为它们“技术落后”,而是因为它们解决的问题更实际。
简单说就是:
很多人总想问:
到底 HNSW 高级,还是 SQLite + FTS5 高级?
其实这问题问偏了。
不是谁更高级,而是你到底在找什么。
如果你主要找的是:
那 SQLite + FTS5 往往很好用。
如果你主要找的是:
那 HNSW 这类向量检索方案更合适。
因为现实里的用户提问,往往同时包含两种信号:
比如一句话里,既有产品名、报错名、函数名,也有模糊的自然语言问题。
这时候只靠关键词不够,只靠语义也不够。于是很多真正能打的系统,最后都会走向一个更实用的方案:
关键词检索 + 语义检索一起上。
也就是:
这才更接近真实世界。
AI Agent 的记忆,不是模型突然像人一样“全都记住了”,而是系统把信息分成三类:
而 HNSW、向量库、SQLite、FTS5,本质上都只是这套信息管理体系里的不同工具。
Agent 不是会记忆,而是会管理信息。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!