你是否遇到过:在 Claude Code 里问过的问题,换到 Hermes 又要重新解释一遍?四个 AI 助手各记各的,信息割裂?本文教你搭建一套共享知识库,让所有 AI Agent 读写同一份记忆。
一、Cognee 是什么
Cognee 是一个开源 AI 记忆平台(26K+ Stars),为 AI Agent 提供跨会话的持久化长期记忆。它通过知识图谱 + 向量搜索 + 认知科学本体,让 Agent 能"记住"并"推理"你的知识。
bash
┌─────────┐ ┌─────────┐ ┌──────────┐ ┌─────────┐
│ Claude │ │ Hermes │ │ VSCode │ │ Codex │
│ Code │ │ Agent │ │ (Cline) │ │ CLI │
└────┬────┘ └────┬────┘ └────┬─────┘ └────┬────┘
│ │ │ │
└────────────┴─────┬──────┴─────────────┘
│ MCP 协议
┌────────▼────────┐
│ Cognee Server │ ← 独立知识引擎
│ (Docker / pip) │
└────────┬────────┘
│
┌────────▼────────┐
│ Neo4j + Qdrant │ ← 图数据库 + 向量库
│ (SQLite 可替代) │
└─────────────────┘
架构要点:Cognee 是独立后端服务,所有 AI 客户端通过 MCP 协议连接,天然支持多客户端共享。
二、用了 vs 不用,核心区别
| 场景 | 不用知识库 | 用了知识库 |
|---|---|---|
| 跨会话记忆 | 每次对话从零开始 | 自动加载历史上下文 |
| 换 AI 工具 | Claude 记的,Hermes 完全不知道 | 所有 AI 共享同一份记忆 |
| 文档知识 | 每次手动贴文档 | 一次摄入,永久可查 |
| 知识关联 | 孤立的片段 | 自动构建实体关系图 |
| 遗忘管理 | 手动清理上下文 | forget 精确删除 |
实际例子: 你在 Claude Code 里说"API Key 在 .env 文件第 15 行",Cognee 记住了。下次在 Hermes 里问"API Key 在哪",直接就能回答------因为读的是同一个数据库。
三、四个 AI 助手的接入方式
| AI 工具 | 接入方式 | 配置位置 |
|---|---|---|
| Claude Code | MCP Server(claude-code-plugin) | ~/.claude/settings.json |
| Hermes Agent | Native MCP Client | D:/.hermes/config.yaml → mcp_servers |
| VSCode (Cline/Roo) | MCP Server 配置 | VSCode 设置 → Cline MCP Servers |
| Codex CLI | MCP 协议(mcp.json) | 项目级 .codex/mcp.json |
核心原理:都是 MCP 协议,连同一个端口,读写同一份数据。
四、安装部署(两种方案)
方案 A:完整 Cognee(推荐,需 Docker)
bash
# 1. 克隆项目
git clone https://github.com/topoteretes/cognee.git
cd cognee
# 2. 配置环境变量
cp .env.template .env
# 编辑 .env,填入 LLM_API_KEY(支持 DeepSeek/OpenAI/通义千问等)
# 3. 启动服务(API + MCP + Neo4j 图库)
docker compose --profile mcp --profile neo4j up -d
# 4. 验证
curl http://localhost:8000/health
端口分配:
8000--- Cognee API8001--- MCP Server(AI 客户端连这个)7474--- Neo4j 浏览器7687--- Neo4j Bolt
方案 B:轻量共享知识库(无需 Docker,立即可用)
适合网络受限或快速体验,纯 Python + SQLite 实现,API 兼容 Cognee(remember / recall / forget):
bash
# 1. 创建目录
mkdir D:/tools/shared-knowledge
# 2. 下载引擎文件(或直接复制下方代码)
# engine.py --- 知识引擎核心
# kb.py --- CLI 命令行接口
# 3. 初始化数据库(首次运行自动创建)
python kb.py stats
engine.py 核心代码:
python
import sqlite3, json, hashlib
from datetime import datetime
from pathlib import Path
DB_PATH = Path(__file__).parent / "knowledge.db"
def remember(text: str) -> dict:
"""存储知识,自动去重"""
conn = sqlite3.connect(str(DB_PATH))
fact_id = hashlib.md5(text.encode()).hexdigest()[:16]
now = datetime.now().isoformat()
conn.execute("""
INSERT OR REPLACE INTO facts (id, content, updated_at)
VALUES (?, ?, ?)
""", (fact_id, text, now))
conn.commit()
conn.close()
return {"id": fact_id, "content": text, "status": "stored"}
def recall(query: str, limit: int = 10) -> list:
"""搜索知识,支持中英文关键词"""
conn = sqlite3.connect(str(DB_PATH))
conn.row_factory = sqlite3.Row
rows = conn.execute("""
SELECT * FROM facts
WHERE content LIKE ?
ORDER BY updated_at DESC LIMIT ?
""", (f"%{query}%", limit)).fetchall()
conn.close()
return [dict(r) for r in rows]
def forget(fact_id: str) -> int:
"""按 ID 删除知识"""
conn = sqlite3.connect(str(DB_PATH))
conn.execute("DELETE FROM facts WHERE id=?", (fact_id,))
conn.commit()
deleted = conn.total_changes
conn.close()
return deleted
完整版含 FTS5 全文索引、关系图谱、标签系统,见 GitHub 仓库。
五、使用演示
5.1 存入知识
bash
# Hermes 终端 / Claude Code 终端 / 任意终端
python D:/tools/shared-knowledge/kb.py remember "GitHub Token 存放在 D:/.hermes/.env 的 GITHUB_TOKEN 变量"
python D:/tools/shared-knowledge/kb.py remember "DeepSeek API 余额不足时需充值,当前模型 deepseek-chat,每百万 token 约 2 元"
输出:
json
{
"id": "a23a52cb66122ca1",
"content": "GitHub Token 存放在 D:/.hermes/.env 的 GITHUB_TOKEN 变量",
"status": "stored"
}
5.2 搜索知识
bash
# 中文搜索
python kb.py recall "Token"
# 输出:
# [a23a52cb] GitHub Token 存放在 D:/.hermes/.env 的 GITHUB_TOKEN 变量
# 英文搜索
python kb.py recall "DeepSeek"
# 输出:
# [a3e6d74c] DeepSeek API 余额不足时需要充值...
# [7f3ed449] Hermes 工作目录在 D:/.hermes,使用 DeepSeek API
5.3 查看全部 & 删除
bash
python kb.py list # 列出所有知识
python kb.py forget a23a52cb # 按 ID 删除
python kb.py stats # 查看统计 {"total_facts": 6}
六、快捷命令速查表
| 操作 | Cognee CLI | 轻量版 CLI |
|---|---|---|
| 存储 | cognee-cli remember "xxx" |
python kb.py remember "xxx" |
| 搜索 | cognee-cli recall "xxx" |
python kb.py recall "xxx" |
| 删除 | cognee-cli forget --all |
python kb.py forget <id> |
| 列表 | --- | python kb.py list |
| 统计 | --- | python kb.py stats |
| 启动 UI | cognee-cli -ui |
--- |
七、Hermes 专用:Skill 集成
已为 Hermes 创建 shared-knowledge Skill,触发即自动调用:
bash
用户: "记住 DeepSeek 每百万 token 约 2 元"
用户: "查一下知识库 Token 在哪"
用户: "知识库有哪些内容"
Hermes 自动识别意图,调用 kb.py,无需手动输入命令。
八、总结
| 要点 | 说明 |
|---|---|
| Cognee 是独立服务 | 不绑定任何 AI,所有客户端通过 MCP 共享 |
| 轻量版立即可用 | 纯 Python + SQLite,零依赖,API 兼容 Cognee |
| 四个 AI 都能用 | Claude Code、Hermes、VSCode、Codex 统一接入 |
| 一套数据,多方共享 | 在 Claude Code 记的,Hermes 直接查到 |
| 后续升级零改动 | 网络好了切到完整 Cognee,API 不变 |
再也不用在每个 AI 里重复解释上下文了。存一次,处处可用。