cognee
开源AI记忆平台,为LLM Agent提供跨会话持久化长期记忆,基于自托管知识图谱引擎。结合向量嵌入、图谱推理和认知科学,支持多种LLM后端,可本地部署或连接云端,并提供Claude Code插件让Agent自动捕获和同步记忆。亮点在于统一的数据摄取、图谱/向量混合检索、跨agent知识共享以及可审计的追踪能力。
README
Cognee - 面向智能体的开源 AI 记忆平台
演示 . 文档 . 了解更多 · 加入 Discord · 加入 r/AIMemory . 社区插件与扩展
Cognee 是开源 AI 记忆平台,为 AI 智能体(agent)提供跨会话的持久长期记忆。以任何格式摄入数据,构建自托管知识图谱,让每个智能体都能回忆、关联并基于完整上下文执行操作。
🌐 本 README 也提供以下语言版本: : Deutsch | Español | Français | 日本語 | 한국어 | Português | Русский | 中文
📄 阅读研究论文:优化知识图谱与大语言模型(LLMs)之间的接口以进行复杂推理 — Markovic et al., 2025
关于 Cognee
Cognee 是一个面向 AI 智能体(agent)的开源 AI 记忆平台。以任意格式摄入数据,Cognee 会持续构建一个自托管的知识图谱,为您的智能体提供跨会话的持久长期记忆。Cognee 结合了向量嵌入(vector embeddings)、图谱推理(graph reasoning)和基于认知科学的本体生成(ontology generation),使文档既可通过语义搜索,又可通过随知识演变的关系进行关联。
:star: 帮助我们触达更多开发者,壮大 cognee 社区!请为本仓库点星!
:books: 查看我们的详细文档以获取安装和配置指南。
:crab: 可作为 OpenClaw 插件使用 — cognee-openclaw
✴️ 可作为 Claude Code 插件使用 — claude-code-plugin
为什么使用 Cognee:
- 轻松构建企业大脑(Company Brain)—— 将来自不同来源的数据统一到一个地方,让智能体掌握您的领域知识
- 知识基础设施 —— 统一摄入、图/向量搜索、本地运行、本体接地(ontology grounding)、多模态
- 持久且能学习的智能体 —— 从反馈中学习、上下文管理、跨智能体知识共享
- 可靠且值得信赖的智能体 —— 基于智能体的用户/租户隔离、可追溯性、OTEL 收集器、审计特性
产品特性
基本用法与功能指南
要了解更多,请查看这个端到端的 Colab 简短教程,其中演示了 Cognee 的核心功能。
快速开始
让我们用几行代码体验 Cognee。
前置条件
- Python 3.10 至 3.14
第 1 步:安装 Cognee
您可以通过 pip、poetry、uv 或您偏好的 Python 包管理器来安装 Cognee。
uv pip install cognee
第 2 步:配置 LLM
import os
os.environ["LLM_API_KEY"] = "YOUR OPENAI_API_KEY"
或者,根据我们的模板创建一个 .env 文件。
要集成其他 LLM 提供商,请参阅我们的 LLM 提供商文档。
第 3 步:运行流水线
Cognee 的 API 提供了四个操作 —— remember(记住)、recall(回忆)、forget(遗忘)和 improve(改进):
import cognee
import asyncio
async def main():
# 永久存储到知识图谱中(执行 add + cognify + improve)
await cognee.remember("Cognee turns documents into AI memory.")
# 存储在会话记忆中(快速缓存,后台同步到图谱)
await cognee.remember("User prefers detailed explanations.", session_id="chat_1")
# 查询并自动路由(自动选择最佳搜索策略)
results = await cognee.recall("What does Cognee do?")
for result in results:
print(result)
# 先查询会话记忆,必要时回退到图谱
results = await cognee.recall("What does the user prefer?", session_id="chat_1")
for result in results:
print(result)
# 完成后删除
await cognee.forget(dataset="main_dataset")
if __name__ == '__main__':
asyncio.run(main())
使用 Cognee CLI
cognee-cli remember "Cognee turns documents into AI memory."
cognee-cli recall "What does Cognee do?"
cognee-cli forget --all
要打开本地 UI,运行:
cognee-cli -ui
注意:
cognee-cli -ui启动的 MCP 服务器运行在 Docker 容器中。 需要 Docker Desktop、Colima 或任何与dockerCLI 兼容的 OCI 运行时。 详见 Docker 和 Colima 设置。
与 AI 智能体配合使用
Claude Code
安装 Cognee 记忆插件,让 Claude Code 拥有跨会话的持久记忆。该插件通过钩子自动将工具调用捕获到会话记忆中,并在会话结束时同步到永久知识图谱。
设置:
# 安装 cognee
pip install cognee
# 配置
export LLM_API_KEY="your-openai-key"
# 克隆插件
git clone https://github.com/topoteretes/cognee-integrations.git
# 启用插件(如需永久使用,请添加到 ~/.zshrc 中)
claude --plugin-dir ./cognee-integrations/integrations/claude-code
或者连接到 Cognee Cloud 而不是本地运行:
export COGNEE_SERVICE_URL="https://your-instance.cognee.ai"
export COGNEE_API_KEY="ck_..."
该插件挂接到 Claude Code 的生命周期 —— SessionStart 初始化记忆,PostToolUse 捕获操作,UserPromptSubmit 注入相关上下文,PreCompact 在上下文重置时保留记忆,SessionEnd 将会话数据桥接到永久图谱中。
连接到 Cognee Cloud
将任何 Python 智能体指向托管的 Cognee 实例 —— 所有 SDK 调用都会路由到云端:
import cognee
await cognee.serve(url="https://your-instance.cognee.ai", api_key="ck_...")
await cognee.remember("important context")
results = await cognee.recall("what happened?")
await cognee.disconnect()
示例
在 examples/ 文件夹中浏览更多示例 —— 演示、指南、自定义流水线和数据库配置。
用例 1 —— 客户支持智能体
目标:利用客户的个人数据(财务、支持、产品历史)解决客户问题。
用户:"我的发票看起来不对,问题仍未解决。"
Cognee 跟踪:过往交互、失败操作、已解决案例、产品历史
# 智能体响应:
智能体:"我发现上个月有两个类似的账单案例已解决。
问题是由支付和发票系统之间的同步延迟引起的 ——
已对您的账户应用了修复。"
# 底层实现:
- 统一来自公司各渠道的数据源
- 重建交互时间线并跟踪结果
- 检索类似的已解决案例
- 映射到最佳解决策略
- 执行后更新记忆,使智能体不再犯同样错误
用例 2 —— 专家知识蒸馏(SQL Copilot)
目标:帮助初级分析师通过复用专家级查询、模式和推理来解决任务。
用户:"如何计算这个数据集的客户留存率?"
Cognee 跟踪:专家 SQL 查询、工作流模式、模式结构、成功实现
# 智能体响应:
智能体:"高级分析师如何解决类似的留存查询。
Cognee 将您的模式映射到已知结构,并将专家逻辑适配到您的数据集。"
# 底层实现:
- 从专家 SQL 查询和工作流中提取并存储模式
- 将当前模式映射到先前见过的结构
- 检索类似任务及其成功实现
- 将专家推理适配到当前上下文
- 用新的成功模式更新记忆,使初级分析师达到接近专家的水平
部署 Cognee
使用 Cognee Cloud 获得完全托管体验,或使用下面的一键部署配置自行托管。
| 平台 | 最佳适用场景 | 命令 |
|---|---|---|
| Cognee Cloud | 托管服务,无需维护基础设施 | 注册 或 await cognee.serve() |
| Modal | 无服务器、自动扩缩、GPU 工作负载 | bash distributed/deploy/modal-deploy.sh |
| Railway | 最简单的 PaaS,原生 Postgres | railway init && railway up |
| Fly.io | 边缘部署,持久化卷 | bash distributed/deploy/fly-deploy.sh |
| Render | 简单 PaaS,托管 Postgres | 一键部署到 Render 按钮 |
| Daytona | 云端沙箱(SDK 或 CLI) | 见 distributed/deploy/daytona_sandbox.py |
请参阅 distributed/ 文件夹中的部署脚本、工作节点配置和更多细节。
最新消息
社区与支持
贡献
我们欢迎来自社区的贡献!您的参与能让 Cognee 变得更好。请参阅 CONTRIBUTING.md 开始贡献。
行为准则
我们致力于营造一个包容且相互尊重的社区。请阅读我们的行为准则了解相关准则。
研究与引用
我们最近发表了一篇关于优化用于大语言模型推理的知识图谱的研究论文:
@misc{markovic2025optimizinginterfaceknowledgegraphs,
title={Optimizing the Interface Between Knowledge Graphs and LLMs for Complex Reasoning},
author={Vasilije Markovic and Lazar Obradovic and Laszlo Hajdu and Jovan Pavlovic},
year={2025},
eprint={2505.24478},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2505.24478},
}