AI Agent 共享知识库搭建教程:让 Claude Code、Hermes、Codex、VSCode 共用同一份记忆

你是否遇到过:在 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.yamlmcp_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 API
  • 8001 --- 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 里重复解释上下文了。存一次,处处可用。