程序员老鬼

Cognee:我盯着这个“给 Agent 加记忆”的开源项目看了几分钟

很多人给 AI Agent 补记忆,第一反应还是上 RAG。

先切片,做 embedding,检索,再把捞回来的上下文塞进 prompt。流程大家都很熟,但真做到复杂任务里,问题也差不多会一起冒出来:上下文是拼回来了,记忆却还是断的;能搜到相近内容,不代表能把前后关系也一并找回来。

我刚看到 Cognee 的时候,停了一下。

Image

它没把“记忆”继续写成一个更复杂的检索层,而是往前挪了一步:既要让信息能按语义被搜到,也要让这些信息彼此之间有连接。文档不是一块块散着存,而是进了统一的记忆层,能查相似内容,也能顺着关系往下走。

这个味道就不太一样了。

因为很多 Agent 场景,麻烦从来不只是“找不到”,而是“只找到半句”。你明明想让它记住某段对话里提过的人、事、文件和决策,最后捞回来的却只是几段相近文本。语义接近,但关系丢了,后面的推理就容易发虚。

Cognee 把这件事拆成了一个 ECL 管道:Extract、Cognify、Load。

这个命名挺直接。先把数据抽出来,再做认知加工,最后装进存储层。看到这里大概就明白它为什么会吸引做 Agent 的人:它不是单纯换一个向量库,也不是再包一层检索 API,而是在认真处理“原始资料进来之后,到底该怎么变成可长期调用的记忆”。

而且它给的入口很低。

Image

官方设定里,6 行代码就能把持久化记忆接进去。这个数字当然很像项目对外展示时会强调的那个点,但我更在意的是它后面那套抽象有没有站住。至少从提供的形态看,Cognee 没把自己做成一个只能跑 demo 的玩具,它有 Pythonic 的数据管道,也给了 CLI 和本地 UI,接入方式对开发者算友好。

数据源这块也比较实在,支持 30 多种来源。

过往对话、文件、图像、音频转写都能往里喂。你能感觉到它瞄准的不是“做一次知识问答”,而是想接住 Agent 在真实使用里不断积累下来的那堆杂数据。今天聊过的话,昨天传过的 PDF,某次会议转写里提到的结论,不一定同一种格式,但都可能属于记忆的一部分。

还有个细节挺顺手:它兼容 Ollama。

Image

也就是说,你不一定非得把这套记忆能力绑在云端模型上,本地模型也能往里接。对一些想自己搭 Agent、又希望数据尽量留在本地环境里的开发者,这个口子开得很对。

现在项目已经有 15900 多个 Star。这个数本身不说明一切,但放在“Agent 记忆”这条线上,至少说明它确实戳中了不少人的同一个痛点。

我看完之后的感觉很简单:Cognee 不是在把 RAG 再包装一遍,它更像是在补 RAG 一直没补好的那块——记忆不该只是可检索,还得是连续的。

GitHub地址:topoteretes/cognee