【教程】零基础部署Cognee:给AI Agent装上永久记忆的知识图谱实战
发布时间:2026-06-22 | 分类:技能教程 | 阅读约需8分钟
一、前言
最近GitHub Trending上有个项目叫 Cognee,号称是"开源AI记忆平台",能让你的AI Agent拥有跨会话的持久记忆。听起来很玄,实际用下来确实有点东西——它能把你喂给它的文档自动转成知识图谱,下次对话时Agent能直接"想起来"之前聊过什么。
今天这篇教程,手把手教你从零部署Cognee,让你的AI Agent告别"金鱼记忆"。
二、前置条件
- Python 3.10 ~ 3.14(推荐3.11或3.12)
- 一个OpenAI API Key(或其他兼容的LLM Provider)
- 至少4GB可用内存(知识图谱构建时会占用较多内存)
- 基础命令行操作能力
三、安装步骤
步骤1:创建虚拟环境
- # 创建项目目录
- mkdir ~/cognee-demo && cd ~/cognee-demo
- # 创建虚拟环境(推荐uv,pip也行)
- python -m venv venv
- source venv/bin/activate # Windows用: venv\Scripts\activate
复制代码
步骤2:安装Cognee
- # 方式一:用uv(最快)
- uv pip install cognee
- # 方式二:用pip
- pip install cognee
- # 方式三:用poetry
- poetry add cognee
复制代码
步骤3:配置环境变量
- # 创建.env文件
- cat > .env << 'EOF'
- LLM_API_KEY=sk-your-openai-api-key-here
- LLM_PROVIDER=openai
- LLM_MODEL=gpt-4o-mini
- EMBEDDING_PROVIDER=openai
- EMBEDDING_MODEL=text-embedding-3-small
- EOF
复制代码
也可以直接在代码里设置:
- import os
- os.environ["LLM_API_KEY"] = "sk-your-openai-api-key-here"
复制代码
步骤4:验证安装
- python -c "import cognee; print(cognee.__version__)"
复制代码
看到版本号说明安装成功。
四、核心实战:让AI记住你的文档
场景:构建一个"公司知识库"Agent
假设你有一堆产品文档、技术规范、会议纪要,想让AI Agent能随时调用这些知识。
步骤1:写入记忆(Ingest)
- import cognee
- import asyncio
- async def build_memory():
- # 存入永久知识图谱
- await cognee.remember(
- "我们的产品是一款面向中小企业的智能客服系统,
- 核心功能包括:多渠道接入、自动回复、人工转接、数据分析。
- 技术栈:Python + FastAPI + PostgreSQL + Redis + React"
- )
-
- # 再存一条
- await cognee.remember(
- "2026年Q2产品路线图:
- 1. 上线语音客服功能
- 2. 集成主流CRM系统
- 3. 推出AI辅助坐席功能"
- )
-
- print("✅ 知识已存入记忆图谱")
- asyncio.run(build_memory())
复制代码
步骤2:查询记忆(Recall)
- async def query_memory():
- # 自动选择最佳搜索策略(向量搜索 + 图谱推理)
- results = await cognee.recall("我们产品的技术栈是什么?")
-
- for result in results:
- print(f"📌 {result}")
- asyncio.run(query_memory())
复制代码
输出示例:- 📌 技术栈:Python + FastAPI + PostgreSQL + Redis + React
- 📌 产品是一款面向中小企业的智能客服系统
复制代码
步骤3:会话隔离记忆
如果你想让不同用户的对话互不干扰,可以用session_id:
- async def session_memory():
- # 用户A的偏好
- await cognee.remember(
- "用户喜欢简洁的回答,不需要过多解释",
- session_id="user_a"
- )
-
- # 用户B的偏好
- await cognee.remember(
- "用户是技术背景,需要详细的技术实现细节",
- session_id="user_b"
- )
-
- # 查询时带上session_id
- results = await cognee.recall(
- "用户的偏好是什么?",
- session_id="user_a"
- )
- print(results) # 只返回用户A的偏好
- asyncio.run(session_memory())
复制代码
步骤4:删除记忆(Forget)
- # 清空整个数据集
- await cognee.forget(dataset="main_dataset")
- # 或者删除特定会话的记忆
- await cognee.forget(session_id="user_a")
复制代码
五、进阶:批量文档处理
实际项目中,你不会一条条手动输入。Cognee支持直接读取文件:
- import cognee
- import asyncio
- async def ingest_files():
- # 读取单个文件
- await cognee.add("path/to/your/document.pdf")
-
- # 读取整个目录
- await cognee.add("path/to/knowledge-base/")
-
- # 构建知识图谱(cognify = 认知化)
- await cognee.cognify()
-
- print("✅ 文档已转为知识图谱")
- asyncio.run(ingest_files())
复制代码
支持的格式:PDF、TXT、Markdown、Word、CSV、JSON等。
六、常见问题
Q1:安装时报错"No module named 'cognee'"?
确保你在虚拟环境中,且Python版本在3.10-3.14之间。
Q2:API Key泄露风险?
建议用.env文件管理密钥,不要硬编码到代码里。Cognee支持多种LLM Provider,包括本地模型(Ollama、LM Studio)。
Q3:知识图谱占用空间大吗?
默认使用SQLite本地存储,一个1000页文档的知识图谱大约几十MB。支持PostgreSQL扩展。
Q4:查询速度慢?
首次构建知识图谱需要一些时间,但查询是毫秒级的。如果数据量大,建议用PostgreSQL替代SQLite。
Q5:支持中文吗?
完全支持。Cognee的向量嵌入和图谱推理对中文文档效果良好。
七、总结
Cognee的核心价值在于:
- 持久记忆:Agent跨会话记住上下文,不用每次重复交代背景
- 知识图谱:文档自动关联,查询时能"联想"到相关内容
- 本地优先:数据不上云,隐私可控
- 开源免费:Apache 2.0协议,可商用
部署完成后,你的AI Agent就从一个"临时工"变成了"老员工"——不仅记得公司所有文档,还能根据历史对话调整回答风格。
相关资源:
如果你部署过程中遇到问题,欢迎在楼下留言讨论! |