项目简介

LLM知识图谱服务器是一个为大语言模型(LLM)提供长期记忆和上下文管理的关键基础设施。它能将LLM分析的文档、学习到的见解和发现的关联永久嵌入语义空间,并支持自然语言查询,确保LLM的知识随着时间推移不断积累和丰富,不再“失忆”。这使得LLM能够跨会话保持和利用专业知识,实现更深入、更连贯的研究和交互。

主要功能点

  • 文档存储与分析: 自动分析文档内容,提取关键学习点、洞察和问题,并将其嵌入384维语义空间,作为LLM的结构化记忆。
  • 智能集群与分类: 文档会根据语义相似性自动聚类,并分配层级区域代码(例如 'physics.cosmology.desitter'),实现知识的自动组织,无需手动标签或分类。
  • 语义检索: 支持自然语言查询,能够返回语义相似的文档及完整上下文(包括总结、学习点和问题),帮助LLM快速回忆和利用先前学习到的信息。
  • 持久化记忆: 所有存储的知识在不同会话中永久保留,使LLM能够在过去的学习基础上进行持续研究,实现知识的累积效应。
  • 数据管理与可视化: 提供查询统计、获取特定文档、列出知识集群等功能,并支持生成知识图谱的GPU加速可视化界面(需额外安装Graphistry并提供凭证)。
  • 数据库交互: 允许执行原始SQL查询并查看数据库Schema,方便高级用户进行自定义分析和数据探索。

安装步骤

在配置MCP客户端之前,您需要先设置LLM知识图谱服务器:

  1. 安装Claude Code: 从 'claude.ai/code' 获取Claude Code应用程序,并确保您的Anthropic API Key已正确配置。
  2. 安装Python 3.10+ 和 'uv' (或 'pip'): 确保您的系统安装了Python 3.10或更高版本。推荐使用 'uv' 作为Python包管理器,它速度更快。
  3. 通过npm安装 (推荐): 如果您使用Node.js环境 (例如,Claude Code通常通过 'npx' 运行其MCP服务器),这是最简单的安装方式:
    • 确保已安装Node.js 18+。
    • 在命令行中运行 'npm install @silkspace/llm-kg-mcp'。此命令会自动下载并安装所有Python依赖。
  4. 手动从源代码安装 (适用于开发):
    • 通过Git克隆仓库:'git clone https://github.com/silkspace/llm-knowledge-graph.git'
    • 进入项目目录:'cd llm-knowledge-graph'
    • 安装Python依赖:'uv sync' (如果您没有'uv',可以使用 'pip install -r requirements.txt')
  5. 配置Anthropic API key:
    • 设置环境变量:'export ANTHROPIC_API_KEY="您的Anthropic API密钥"'
    • 或者创建一个文件:'echo "您的Anthropic API密钥" > ~/.anthropic_api_key'
  6. 启动嵌入服务: (此服务提供本地嵌入,加速知识图谱运行)
    • 确保您处于项目目录 ('llm-knowledge-graph')。
    • 激活Python虚拟环境(例如,如果您使用'uv',通常是 'source .venv/bin/activate')。
    • 运行命令在后台启动服务:'python embedding_service.py &'
    • 您可以通过运行 'curl http://localhost:8765/health' 来验证嵌入服务是否健康运行,预期返回 '{"status": "healthy", "model_loaded": true, "dimensions": 384}'。

服务器配置 (用于MCP客户端)

将以下配置添加到您的MCP客户端设置文件 (例如 '~/.claude/mcp_settings.json'):

如果您通过npm安装 (推荐方式):

{
  "mcpServers": {
    "llm-kg": {
      "command": "npx",                 // 启动命令为npx
      "args": ["-y", "@silkspace/llm-kg-mcp"], // npx的参数,用于运行llm-kg-mcp包
      "description": "通过npm运行的LLM知识图谱MCP服务器",
      "notes": "此配置会通过npm自动查找并启动llm-kg-mcp。推荐确保Node.js和uv/pip已正确安装。"
    }
  }
}

如果您从源代码手动安装 (适用于开发):

{
  "mcpServers": {
    "llm-kg": {
      "command": "python",              // 启动命令为python
      "args": ["/path/to/llm-knowledge-graph/kg_mcp_server.py"], // python脚本的路径
      "description": "从本地路径运行的LLM知识图谱MCP服务器",
      "notes": "请将 '/path/to/llm-knowledge-graph/' 替换为您实际的项目根目录路径,例如:'/Users/youruser/dev/llm-knowledge-graph/kg_mcp_server.py'。"
    }
  }
}

基本使用方法

配置完成后,在您的MCP客户端 (如Claude Code) 中,您就可以直接通过工具调用来与知识图谱交互:

  • 添加文档: LLM可以通过调用 'mcp__llm_kg__kg_add()' 工具来将内容添加到知识图谱。例如,在Claude Code中:
    // 在刮取网页内容后,将内容、URL和标题添加到知识图谱
    mcp__llm_kg__kg_add(
        content=scraped_data["markdown"],
        url=scraped_data["url"],
        title=scraped_data["metadata"]["title"]
    )
    或者直接指示LLM: "将 'https://arxiv.org/abs/hep-th/0609062' 添加到知识图谱。"
  • 查询知识: LLM可以使用 'mcp__llm_kg__kg_query()' 工具进行自然语言语义搜索。例如:
    mcp__llm_kg__kg_query(
        query="de Sitter 全息理论",
        top_k=5 // 返回最相关的5个结果
    )
    或者直接提问LLM: "我们学到了关于de Sitter全息理论的什么?"
  • 查看统计信息: 调用 'mcp__llm_kg__kg_stats()' 可以获取知识图谱的总文档数、集群数和嵌入模型信息。
  • 获取特定文档或区域文档: 使用 'mcp__llm_kg__kg_get_document()' 工具:
    // 根据文档的唯一ID获取单个文档
    mcp__llm_kg__kg_get_document(doc_id="1234567890")
    // 获取某个语义区域(例如 'physics.cosmology.desitter')的所有文档
    mcp__llm_kg__kg_get_document(doc_id="physics.cosmology.desitter")
  • 列出所有知识集群: 调用 'mcp__llm_kg__kg_list_clusters()' 工具可以查看知识图谱中所有的语义集群及其包含的文档数量。
  • 执行SQL查询: 'mcp__llm_kg__kg_sql_query(sql="SELECT title, area_code FROM documents WHERE added_at > '2023-01-01' LIMIT 10")' 允许您直接对后端DuckDB数据库执行SQL查询,进行高级数据探索。

信息

分类

AI与计算