图记忆重要性论述
属性图组织过的知识, 已经被北大论文证实. 可以大幅度提升 AI 能力, 也就是知道答案, 并知道答案怎么来的. 这就是 Cognee 记忆模块的厉害之处! 我已经写过两片分析文章, 有兴趣一步阅读:
《从预训练、后训练、后推理到后学习, 模型效率边际收益引发的技术迁移》
《AI论文解读 | 北京大学 K12-KGraph 论文解读 : 知识组织决定了 AI 后学习/推理性能?》
不是所有记忆系统,都叫知识引擎。
如果你关注 AI Agent 的「记忆层」,最近 Cognee 的讨论度越来越高。GitHub 上已经 16K+ Star,很多人拿它和 Mem0 比、和 Letta 比。
但我翻了一圈中文文章,发现大多在讲「怎么装、怎么用」,很少有人说清楚一件事——
Cognee 的「图」到底是怎么回事?它凭什么说自己是知识引擎?
我花了几天时间把 Cognee 的源码、架构、论文都过了一遍,又在自己项目里跑了几个场景。这篇不聊虚的,就从用户角度,把 Cognee 的图掰开揉碎讲清楚。
先搞清楚:Cognee 和普通记忆系统有什么不同?
市面上大多数 AI 记忆项目,核心思路是: 你把文本给我,我切成块,做向量嵌入,存起来,你搜的时候我找最像的几个块还给你。
这叫「向量检索」,本质上是模糊匹配。
Cognee 走的是完全不同的路: 你把文档给我,我不仅要存,还要读懂它。我会抽取出里面的实体、实体之间的关系、事件的来龙去脉,然后把这些信息建成一张知识图谱。
打个比方:
普通记忆系统 = 一个文件柜。你把纸放进去,找的时候翻出最相关的几页。 Cognee = 一个图书管理员。你给她一本书,她不仅放好,还会画出这本书的知识结构图——哪个概念和哪个概念有关、谁引用了谁、来龙去脉是什么。
这就是 Cognee 的核心差异: 不是「匹配」,而是「理解」。
Cognee 的「图」到底是什么图?
很多人一听到「知识图谱」就犯怵,觉得这是学术界搞的复杂东西。但 Cognee 的图其实不难理解。
它本质上是三样东西:
1. 实体(Entity)
就是「名词」——人、技术、概念、产品。
比如你告诉 Cognee:「微服务架构中,API 网关负责路由、限流和认证。」
它提取出的实体就是:微服务架构、API 网关、路由、限流、认证。
2. 关系(Relation)
实体之间的「动词」或「介词」——负责、属于、包含、导致。
上面的例子中,关系就是:API 网关 → 负责 → 路由,API 网关 → 负责 → 限流。
3. 三元组(Triplet)
实体 + 关系 + 实体 = 一条知识。
(API 网关) — 负责 → (路由) 就是一个三元组。
一张知识图谱,就是成千上万个这样的三元组连在一起形成的网络。
所以 Cognee 的「图」不是什么玄学,就是一个实体关系网。 它的特别之处在于:它不是让你手动建的,而是你给文档,它自动用 LLM 帮你抽。
真正厉害的地方:ECL 流水线
Cognee 的核心引擎叫 ECL 流水线——Extract(提取)→ Cognify(认知加工)→ Load(加载)。
这个流水线决定了 Cognee 「理解」文档的方式和别的项目有本质区别。
第一阶段:Extract(提取)
不只是分块。Cognee 会先对文档做分类——判断是技术文档、新闻文章、还是代码。然后根据文档类型做针对性的分块策略。
这一步就已经和普通 RAG 不一样了。普通 RAG 是「一刀切」,固定块大小;Cognee 是「看菜下饭」。
第二阶段:Cognify(认知加工)
这是 Cognee 的核心——也是「图」诞生的地方。
在这个阶段,Cognee 会对每个文本块做三件事:
实体提取——LLM 扫描文本,识别出所有有意义的实体 关系提取——LLM 分析实体之间的关系 摘要生成——给每段文本生成一个精炼的摘要
这些实体和关系被组合成三元组,准备存入知识图谱。
这一步非常关键: 大多数记忆系统只做向量化,Cognee 做的是「理解后的结构化」。
第三阶段:Load(加载)
把结构化后的数据存入三层存储:
图数据库——存实体和关系(Ladybug / Neo4j / Neptune) 向量库——存文本块的语义向量(LanceDB / Chroma / PGVector) 关系型数据库——存元数据和索引
三管齐下,互不打架。
14 种搜索策略:图的力量在这里爆发
如果你只是做简单的「找相似的文本」,那向量检索就够了。但 Cognee 提供了 14 种搜索策略,这才是图的真正威力所在。
我来拆几个最有特色的:
GRAPH_COMPLETION(默认策略)
这是 Cognee 的招牌。先在图谱里做多跳遍历——从你问的实体出发,沿着关系走到相关联的实体,拿到一大片上下文。然后把这些上下文喂给 LLM,生成最终答案。
举个例子:你问「API 网关挂了会怎么样?」
如果是普通 RAG:找文本里提到「API 网关挂了」的段落,拼给你。 如果是 Cognee:从「API 网关」出发,沿着关系走到「路由」「限流」「认证」「微服务架构」,再走到「服务A」「服务B」……它会给你一张完整的影响分析图。
这就是「图」的力量——它不是找相似,而是做推理。
TRIPLET_COMPLETION
直接搜三元组结构。比如你搜「什么负责路由?」,它返回 (API 网关) — 负责 → (路由)。结果清晰、结构化。
TEMPORAL
时间感知搜索。如果你灌入了带时间信息的数据,可以问「上个月关于 X 的决定是什么?」。Cognee 会结合时间轴和图谱做筛选。
NATURAL_LANGUAGE
把自然语言转成结构化图谱查询。你不需要学 Cypher 或 SPARQL,直接用中文问就行。
还有其他 10 种策略,覆盖了摘要搜索、代码搜索、多模态搜索等场景。
14 种策略不是说让你手动选,而是 Cognee 内部会根据查询自动匹配最优策略。 这是工程上的硬功夫。
一个 Postgres 搞定所有存储——这设计很妙
Cognee 在存储架构上做了一个我觉得非常聪明的决定: 一个 Postgres 实例同时做图、向量、关系存储。
之前我用过很多知识图谱项目,基本都是 Neo4j + Elasticsearch + PostgreSQL 三件套,运维起来相当痛苦。
Cognee 的做法是:
默认内嵌:Ladybug(图库)+ LanceDB(向量库)+ SQLite——零配置开箱即用 生产方案:一个 Postgres + pgvector(向量 + 关系),再加 Ladybug/Neo4j(图)
这个方案的好处是:
运维简单——不用维护三个独立的存储系统 事务一致——所有操作在一个数据库事务里 成本低——不需要买三个数据库实例
对于中小型团队来说,这真的是个福音。
还支持 OWL 本体——这个很多人没提
Cognee 一个很少被提及但很重要的特性是: 支持 OWL 本体文件。
OWL(Web Ontology Language)是语义网的标准语言。你可以定义一个 OWL 文件来描述你的领域知识结构——比如「在金融领域,一个「客户」可以有多个「账户」,每个「账户」有「交易记录」」。
把这个 OWL 文件喂给 Cognee,它建图的时候就会按照你定义的框架来组织知识。 这意味着 Cognee 的知识图谱不是瞎建的,而是有「骨架」的。
对于企业级应用来说,这非常关键——你的知识库不再是「一堆文本堆在那里」,而是「有结构、可查询、可推理」的资产。
真实感受:Cognee 用起来怎么样?
说实话,Cognee 的学习曲线比 Mem0 陡一些。不是因为它难用,而是因为它概念多。
你用 Mem0,核心就两个操作:add 和 search。你用 Cognee,要理解 remember、recall、ECL 流水线、14 种搜索策略、图谱遍历——概念确实多了一个量级。
但这是有原因的:
Mem0 解决的是「记住对话中的事实」——可以很薄,几行代码搞定 Cognee 解决的是「理解文档中的知识」——天然就更复杂
如果你只是想让 AI 记住用户偏好的颜色、名字、喜欢的语气,Cognee 确实有点杀鸡用牛刀。
但如果你在做的是:
企业知识库——几百份文档,需要 AI 能理解文档之间的关联 研究助手——需要追踪概念的演变和相关关系 技术文档问答——问题涉及多个知识点的交叉推理
那 Cognee 是当下最好的选择之一。
而且好消息是,Cognee 的默认配置(Ladybug + LanceDB + SQLite)是开箱即用的,pip install cognee 之后就能跑。上手体验一下图谱搜索和普通 RAG 的差别,你就知道我说的是什么了。
总结:Cognee 的「图」到底牛在哪?
最后用一句话总结:
Cognee 不是在做「记忆」,而是在做「理解」。它的图不是炫技,而是让 AI 真正能「读懂」文档之间的深层关系。
几个核心 takeaways:
如果你对 AI 记忆层感兴趣,Cognee 绝对是值得深入研究的项目。它的「图」不是花架子,而是实打实在工程上把「知识结构化」这件事做到了可落地的程度。
项目地址:github.com/topoteretes/cognee