RepoDaily · 2026-06-27 · Security tool

Cognee:带租户隔离与审计追踪的自托管 AI 代理记忆引擎

#9 Security tool Python +755 topoteretes/cognee 打开仓库

开源知识图谱引擎,为 AI 代理提供跨会话持久记忆,支持用户级隔离、OTEL 链路追踪和私有化部署,数据完全自主掌控。

项目类型Security tool
最适合需要为 AI 代理构建持久、可审计记忆层,且不希望将知识图谱数据发送给第三方 SaaS 记忆服务的团队。
风险等级Medium
评估时间本地 Docker 部署加 OpenAI API 密钥配置约需 2–4 小时

核心问题: 你的代理层是否需要自托管、租户隔离、带完整审计追踪的长期记忆?

92/100

RepoDaily 采用评分

RepoDaily 将该项目的采用分评为 92/100(强):分数来自文章来源、安装路径、生产风险、差异化、许可证清晰度以及 AI/Agent 适配度。

基于 RepoDaily 来源和采用说明的方向性评分,不是基准测试。风险: 中
100证据质量

包含 5 个来源、覆盖 3 类来源;如有 RepoDaily 独有模块,会进一步提高证据分。

100可安装/可试用性

检测到 5 个工作流步骤、5 个下一步动作,以及 5 个命令/安装信号。

66维护可信度

趋势热度为 +755 stars;如内容中有 release、issue 或维护信号,会提高维护可信度。

96生产准备度

采纳风险标记为 medium,并包含 8 条安全说明与 4 条跳过条件。

97差异化

2 个机会视角、4 个替代方案,以及 3 个类型化模块支撑差异化判断。

82许可证清晰度

文章中包含许可证来源或许可证表述。

90Agent / AI 适配度

文章正文和元数据中检测到 7 个 AI/Agent 相关信号。

项目概览

Cognee(v1.2.2,Apache-2.0)是一个 Python 库和服务端程序,可摄入任意格式的非结构化数据,构建结合向量嵌入与图谱推理的自托管知识图谱,并通过 remember、recall、forget、improve 四个操作同时提供 Python API 和 CLI。项目面向希望让 AI 代理跨会话保持上下文、且不依赖外部托管记忆服务的开发者。2026-06-27 周期内获得 755 星、排名第 9,是本周上升最快的代理基础设施仓库之一。

从安全角度看,Cognee 的突出特点是明确的代理用户和租户隔离、用于可追溯性的 OTEL(OpenTelemetry)采集器,以及内置于管道中的审计特性。项目同时发布 API 服务镜像(cognee/cognee,端口 8000)和 MCP 服务镜像(cognee/cognee-mcp,端口 8001),支持完全自托管部署——除非配置了外部 LLM 提供商,否则文档内容不会离开运营方的基础设施。pyproject.toml 主动排除了存在漏洞的 pydantic-settings 版本范围(GHSA-4xgf-cpjx-pc3j,2.12.0–2.14.1),并在注释中记录了 2.14.2+ 的修复信息,表明依赖管理是构建流程的一部分。

项目支持 Python 3.10 至 3.14,附带 Neo4j、Postgres/PGVector、Redis、LangChain、LlamaIndex、Anthropic、Azure、Ollama 等可选依赖组,并引用了一篇研究论文(Markovic 等人,2025,arXiv:2505.24478),探讨知识图谱与 LLM 接口优化以提升复杂推理能力。SECURITY.md 将漏洞报告引导至 info@topoteretes.com 并承诺快速响应,同时 DCO(开发者原产地证书)要求确保每次合并提交的来源可追溯。

解决什么问题

  • AI 代理在会话间丢失上下文,因为无状态推理 API 没有内置持久记忆层。
  • 托管记忆服务将敏感文档内容路由到第三方基础设施,产生数据治理和合规风险。
  • 简单的 RAG 管道仅按语义相似度检索,缺失知识图谱所提供的关系推理能力。
  • 多租户代理部署需要按用户隔离,确保一个租户的查询不会暴露另一个租户的数据。
  • 调试代理幻觉需要可追溯性——知道哪条摄入来源产生了某个检索结果。

工作原理

  1. 通过 `uv pip install cognee` 安装(需 Python 3.10–3.14),并将 `LLM_API_KEY` 设为环境变量或写入从 `.env.template` 复制的 `.env` 文件。
  2. 调用 `await cognee.remember("...")` 摄入数据,该操作运行 add、cognify、improve 管道阶段,构建图节点和向量嵌入。
  3. 调用 `await cognee.recall("...")` 查询,系统根据查询特征在向量相似度搜索和图遍历之间自动路由,可选按 session_id 限定范围。
  4. 通过 `await cognee.forget(dataset="main_dataset")` 删除特定数据集,或用 `cognee-cli forget --all` 清除所有记忆。
  5. Docker 部署时运行 `docker compose up` 启动端口 8000 的 API 服务,或添加 `--profile neo4j`、`--profile postgres` 等 profile 挂载图或向量后端。

产品演示与界面预览

Cognee Demo
Cognee Demo — README 官方演示,展示 Cognee 的 remember 与 recall 管道运作流程,说明摄入的文本如何变为可查询的图谱记忆。 README.md image

架构:Cognee 存什么、怎么存

Cognee 的管道摄入原始数据后进行分块、生成向量嵌入(默认 LanceDB 0.24.3+,可选 FastEmbed 和 Postgres/PGVector 后端),同时使用认知科学驱动的本体生成方法构建知识图谱。图层使用 NetworkX 3.4.2+ 进行内存操作,安装 neo4j 扩展时可选择性持久化到 Neo4j 5.28+。

API 精确暴露四个操作:remember(摄入+构建)、recall(自动路由查询)、forget(删除)、improve(优化图谱)。会话级记忆使用快速缓存,后台同步到持久图谱,因此代理在当前会话中获得低延迟读取,同时跨会话获得持久召回。SQLAlchemy 2.0.39+ 配合 aiosqlite 管理关系元数据,Alembic 使用跨进程文件锁处理迁移,防止并发迁移竞态。

命令与 API 接口一览

  • `uv pip install cognee` — 核心安装,含 LanceDB、OpenAI、SQLite 默认配置。
  • `cognee-cli remember "text"` — 无需编写 Python 即可 CLI 摄入。
  • `cognee-cli recall "query"` — 自动路由搜索的 CLI 检索。
  • `cognee-cli forget --all` — 清除所有已存储记忆。
  • `cognee-cli -ui` — 启动本地 UI;需 Docker Desktop、Colima 或任何 OCI 兼容运行时。
  • `docker compose --profile neo4j up` — 挂载 Neo4j 作为图后端。
  • `docker compose --profile postgres up` — 挂载带 PGVector 的 Postgres 作为嵌入后端。

维护与依赖风险

Cognee 声明了 40+ 个运行时依赖,包括 openai、litellm、sqlalchemy、fastapi、lancedb、rdflib。可选依赖面涵盖 20+ 个扩展组(neo4j、postgres、langchain、llama-index、anthropic、ollama、scraping、tracing 等),意味着一次生产部署会拉取庞大的传递依赖树。`[tool.uv]` 部分设置 `exclude-newer = "2 days"`,避免拉取发布不足 48 小时的包,降低供应链风险,但也可能延迟紧急补丁的采纳。

pyproject.toml 明确记录了 GHSA-4xgf-cpjx-pc3j(pydantic-settings 在 2.12.0–2.14.1 的漏洞),并使用排除模式 `!=2.12.*,!=2.13.*,!=2.14.0,!=2.14.1` 而非硬性上限,使得已修复的 2.14.2+ 自动被采纳。这是一种有意识的、有文档记录的安全策略,而非静默锁定。每次提交强制 DCO 签名,加上基于 CODEOWNERS 的自动审查路由,为贡献提供了额外的供应链完整性保障。

谁适合关注

适合关注

  • 构建多租户代理平台、需要按用户数据隔离和审计追踪的团队。
  • 因数据驻留或合规要求必须自托管 AI 基础设施的组织。
  • 希望用知识图谱替代纯向量 RAG、但不想从零构建图摄入管道的开发者。
  • 评估 GraphRAG 方案、希望获得带同行评审论文支持的可用参考实现的人。

可以先跳过

  • 仅需临时会话记忆的项目(Redis 缓存或对话缓冲区即可满足)。
  • 没有 Python 3.10+ 运行时或任何 OCI 兼容容器运行时来运行 MCP 服务 UI 的团队。
  • 无法提供 LLM API 密钥的部署环境——Cognee 默认管道需要此密钥。
  • 40+ 依赖安装体量超过基于图的检索价值的场景。

风险与注意事项

Cognee 以 Apache-2.0 发布,有文档化的漏洞报告策略和 DCO 强制执行,但其广泛的依赖面、Beta 成熟度(Development Status 4 - Beta)和 LLM API 密钥要求构成中等采纳风险。

  • pyproject.toml 分类器标注为 Development Status :: 4 - Beta,尚未达到生产稳定。
  • 40+ 运行时依赖加 20+ 可选扩展构成庞大的传递依赖审计面。
  • MCP 服务 UI 需 Docker Desktop 或 Colima——非纯 Python 部署。
  • `exclude-newer = 2 days` 的 uv 策略可能将紧急依赖补丁延迟最多 48 小时。
  • 项目相对年轻且处于 Beta 阶段,尚无已发布的 CVE 应对记录可供参考。
  • SECURITY.md(https://github.com/topoteretes/cognee/blob/main/SECURITY.md)将报告引导至 info@topoteretes.com,邮件主题需含 'SECURITY'。
  • 代理用户和租户隔离防止多用户代理部署中的跨租户数据泄漏。
  • OTEL 采集器和审计特性为代理决策和检索来源提供可追溯性。
  • Apache-2.0 许可证包含明确的专利授权和终止条款(LICENSE 第 3 条)。
  • 每次提交强制 DCO 签名:通过 CONTRIBUTING.md 强制执行 `git commit -s`。
  • pydantic-settings 漏洞(GHSA-4xgf-cpjx-pc3j)在依赖规格中明确排除,附有文档化说明。
  • 自托管部署模式:除非调用外部 LLM API,否则文档内容不离开运营方基础设施。
  • CODEOWNERS 文件按变更目录自动将 PR 审查路由给领域负责人。

替代方案比较

方案适用场景代价
Mem0
当你偏好托管记忆服务、有 hosted 计划可选且不想自己运维基础设施时。Freemium SaaS,提供自托管选项
Zep
当你需要时序知识图谱功能,重点关注对话历史和实体追踪时。开源自托管 + 托管云
Letta(原 MemGPT)
当你希望代理记忆以操作系统风格的内存层次结构建模、并具备上下文窗口管理时。开源(Apache-2.0)
LangGraph + checkpointer
当你的代理框架已基于 LangChain,仅需对话持久化而非知识图谱时。开源(MIT)

这个趋势说明了什么

合规优先的代理记忆

Cognee 的租户隔离、审计特性和自托管部署模式符合 GDPR、HIPAA 和 SOC 2 的要求,这些法规禁止将敏感数据路由到第三方记忆 API。

通过 `docker compose --profile postgres up` 部署后,确认除配置的 LLM 提供商端点外无其他出站流量来验证。

GraphRAG 评估套件

evals 可选依赖组包含 plotly、pandas、scikit-learn 和 locust,表明内置支持检索质量基准测试和记忆管道负载测试。

通过 `uv pip install 'cognee[evals]'` 安装并检查 cognee/tests/ 测试套件中的基准入口点。

下一步建议

本地运行 Colab 教程

Cognee 在 README 中发布了覆盖核心功能的端到端 Colab 笔记本。在本地 fork 并用自己的文档运行,一小时内即可获得可用的知识图谱。

  1. 打开 README 中链接的 Colab 教程,理解 remember/recall/forget/improve 循环。
  2. 本地安装:`uv pip install cognee`,复制 `.env.template` 为 `.env` 并填入 `LLM_API_KEY`。
  3. 运行 `cognee-cli remember "你的第一份文档"` 然后 `cognee-cli recall "你存了什么?"`。
  4. 启动 `cognee-cli -ui`(需 Docker)以可视化检查生成的知识图谱。
  5. 查看 pyproject.toml 可选依赖,为目标架构选择后端扩展(neo4j、postgres、langchain)。

RepoDaily 判断

Cognee 通过将自托管知识图谱与租户隔离、审计追踪和简洁的四操作 API 相结合,为托管代理记忆服务提供了有说服力的开源替代方案。其 Beta 状态、广泛的依赖面和 LLM 密钥要求意味着生产部署需要彻底的安全和依赖审查——但文档化的 CVE 排除策略、DCO 强制执行和 Apache-2.0 许可为需要数据主权的代理记忆团队奠定了坚实的治理基础。

信息来源