agentic_huge_data_base / wiki
页面 Cognee · 1 Cognee 介绍·DeepWiki 中文全文译文

1 · Cognee 介绍(Introduction to Cognee)

记忆管道与知识图谱构建 · 聚焦本章的模块关系、源码依据与实现要点。

项目Cognee 章节1 状态全文译文 模块系统架构、检索、召回与索引、界面与交互、配置治理
源码线索
  • .env.template
  • README.md
  • assets/cognee_benefits.png
  • cognee/api/v1/add/add.py
  • cognee/api/v1/cognify/cognify.py
  • cognee/api/v1/config/config.py
  • cognee/infrastructure/llm/config.py
  • cognee/infrastructure/llm/structured_output_framework/litellm_instructor/llm/bedrock/adapter.py
  • cognee/infrastructure/llm/structured_output_framework/litellm_instructor/llm/get_llm_client.py
  • cognee/modules/data/models/Data.py
模块标签
  • 系统架构
  • 检索、召回与索引
  • 界面与交互
  • 配置治理
  • 图谱与关系

章节正文

Cognee 介绍

Cognee 简介

相关源文件

本 Wiki 页面的生成参考了以下文件:

  • .env.template
  • README.md
  • assets/cognee_benefits.png
  • cognee/api/v1/add/add.py
  • cognee/api/v1/cognify/cognify.py
  • cognee/api/v1/config/config.py
  • cognee/infrastructure/llm/config.py
  • cognee/infrastructure/llm/structured_output_framework/litellm_instructor/llm/bedrock/adapter.py
  • cognee/infrastructure/llm/structured_output_framework/litellm_instructor/llm/get_llm_client.py
  • cognee/modules/data/models/Data.py
  • cognee/modules/pipelines/operations/pipeline.py
  • cognee/modules/pipelines/operations/run_tasks.py
  • cognee/modules/settings/__init__.py
  • cognee/modules/settings/get_settings.py
  • cognee/modules/settings/save_llm_config.py
  • cognee/modules/settings/save_vector_db_config.py
  • cognee/tasks/ingestion/ingest_data.py
  • cognee/tasks/ingestion/save_data_item_to_storage.py
  • cognee/tests/unit/infrastructure/llm/test_get_llm_client.py
  • poetry.lock
  • pyproject.toml
  • uv.lock

什么是 Cognee?

Cognee 是一个开源的知识引擎,为 AI 智能体提供持久化记忆基础设施。它充当原始数据与大语言模型(LLM)上下文之间的语义层,将非结构化信息转换为可查询的知识图谱,智能体可以利用这些图谱进行增强推理和上下文检索 README.md:65-68

核心价值主张:

  • 知识基础设施:提供统一的入库、图谱/向量搜索以及本体对齐功能 README.md:85
  • 持久化与学习型智能体:使智能体能够从反馈中学习,并在不同会话间共享知识 README.md:86
  • 可靠与可信赖:提供基于智能体的用户/租户隔离、通过 OpenTelemetry (OTEL) 实现的可追溯性以及审计特性 README.md:87
  • 多接口支持:可通过 Python API、CLI、REST API 和 MCP 服务器访问 README.md:128-175

系统接口:

接口入口点传输方式使用场景
Python SDKimport cognee直接函数调用嵌入 Python 应用程序
CLIcognee-cliShell 执行本地开发和脚本编写
REST APIcognee.api.client:app端口 8000 的 HTTPWeb 应用和远程客户端
MCP 服务器cognee-mcpstdio/SSE/HTTPIDE 集成(Cursor, Claude, VS Code)

所有接口都暴露了相同的核心操作:add()cognify()search(),或者更高级别的记忆 API:remember()recall()forget() README.md:126-155

本文档涵盖了架构基础和数据流。有关实现细节,请参阅:

来源README.md:1-90pyproject.toml:1-10cognee/api/v1/add/add.py:92-114cognee/api/v1/cognify/cognify.py:43-59

核心操作

Cognee 的功能围绕着一系列操作展开,这些操作处理从数据入库、知识提取到检索的完整流程。

Cognee · 核心操作 · 图 1
Cognee · 核心操作 · 图 1

核心操作流程:从数据入库到知识检索

remember() - 统一存储

函数签名:remember(data: Any, user_id: UUID, session_id: str = None)remember() 函数提供了一个高级抽象,它将 add()cognify()improve() 组合成单个调用 README.md:136-137。它可以将数据永久存储在知识图谱中,或者存储在快速的会话记忆里(并在后台同步到图谱)README.md:136-140

cognify() - 知识图谱生成

函数签名:cognify(datasets: Union[str, list[str], list[UUID]] = None, graph_model: BaseModel = KnowledgeGraph) cognee/api/v1/cognify/cognify.py:43-46。 通过一个多阶段管线将已入库的数据转换为结构化的知识图谱。该过程包括文档分类 cognee/api/v1/cognify/cognify.py:83、文本片段切分 cognee/api/v1/cognify/cognify.py:84 以及由大语言模型(LLM)驱动的实体/关系提取 cognee/api/v1/cognify/cognify.py:85-86

召回() - 多策略检索

函数签名:recall(query: str, session_id: str = None)。 查询知识时,会自动路由以选择最佳搜索策略,例如图谱补全或检索增强生成(RAG)README.md:142-143。它可以在回退到永久图谱之前,先查询会话记忆 README.md:147-148

来源cognee/api/v1/cognify/cognify.py:43-95README.md:119-155cognee/api/v1/add/add.py:92-150

系统架构总览

Cognee 的架构在接口层、应用逻辑层、存储层和外部服务层之间进行了关注点分离。

Cognee · 系统架构总览 · 图 2
Cognee · 系统架构总览 · 图 2

系统架构:组件交互与代码实体

关键组件
  • 接口层:入口点,包括 Python API、CLI pyproject.toml:204 和 FastAPI 服务器 pyproject.toml:44
  • 应用层:编排记忆管理逻辑。add() 负责处理入库 cognee/api/v1/add/add.py:92,而 cognify() 负责处理图谱生成 cognee/api/v1/cognify/cognify.py:43。两者都使用了 run_tasks 编排器 cognee/modules/pipelines/operations/run_tasks.py:56
  • 存储层:采用三数据库设计,使用 SQLAlchemy 处理关系型数据 pyproject.toml:29,并使用专用接口处理向量和图存储 pyproject.toml:40,50,52。后端可通过 LLMConfig 和环境变量进行配置 .env.template:120-161
  • AI 服务:通过 litellminstructor pyproject.toml:32-33BAML cognee/infrastructure/llm/config.py:41-48 与大语言模型(LLM)集成,用于结构化提取。

来源cognee/api/v1/add/add.py:92-114cognee/api/v1/cognify/cognify.py:43-59pyproject.toml:22-64cognee/infrastructure/llm/config.py:15-88cognee/modules/pipelines/operations/run_tasks.py:56-65

配置与可观测性

Cognee 提供了灵活的配置系统和内置的可观测性功能。

  • 配置:通过 LLMConfig cognee/infrastructure/llm/config.py:15config 的静态方法 cognee/api/v1/config/config.py:96 进行管理。它支持对提供商、模型和数据库路径进行运行时覆盖 cognee/api/v1/config/config.py:104-115
  • 数据库适配器:支持广泛的提供商,包括 LanceDB pyproject.toml:40、Neo4j pyproject.toml:96 和 PGVector pyproject.toml:100
  • 结构化输出:默认使用 instructor 框架,但也支持使用 BAML 进行更复杂的提取 cognee/infrastructure/llm/config.py:42, 127-135

来源cognee/infrastructure/llm/config.py:15-154cognee/api/v1/config/config.py:96-116pyproject.toml:96-107

总结

Cognee 提供了一个可用于生产环境的平台,用于将非结构化数据转换为可查询的知识图谱。其架构在各层之间实现了关注点分离,同时通过以下特性保持了灵活性:

  • 统一 API:使用如 remember()recall() 等简单函数来处理复杂工作流 README.md:136-151
  • 可插拔后端:支持多种向量数据库(LanceDB、Chroma、PGVector、Qdrant)和图数据库(Kuzu、Neo4j、NetworkX)pyproject.toml:40,50,88,116
  • 智能体集成:专门支持模型上下文协议(MCP)和智能体记忆装饰器,如 @agent_memory

下一步:

来源README.md:1-213cognee/api/v1/add/add.py:115-170pyproject.toml:1-145