SocratiCode

SocratiCode

SocratiCode

SocratiCode是一个开源的、零配置、本地私有、MCP协议驱动的代码库上下文引擎,由开发者giancarloerra创建并维护。它旨在解决AI编程工具在面对大型代码库时因缺乏高质量上下文而产生的幻觉、工具调用爆炸和上下文溢出问题。

核心特性

  • 零配置启动:通过npx -y socraticode一键启动,自动管理Docker容器(Qdrant向量数据库和Ollama嵌入服务器)。
  • 完全本地私有:默认完全本地运行,无需API密钥,支持air-gapped环境。
  • AST感知分块:在函数、类、模块边界上切分代码,确保每个chunk是完整的语义单元。
  • 混合搜索:结合dense向量(语义搜索)和BM25稀疏向量(关键词搜索),通过RRF(Reciprocal Rank Fusion)融合排序。
  • 多语言依赖图:通过静态分析import/require语句构建,支持循环依赖检测和可视化。
  • 上下文工件:将非代码知识(如数据库Schema、API文档)纳入统一索引。
  • 跨进程协调:使用proper-lockfile防止多个AI实例重复索引或启动watcher。
  • 可恢复索引:基于checkpoint的索引过程,中断后可恢复。

架构

SocratiCode本质上是一个基于Node.js 18+实现的MCP服务器,对外暴露21个标准化工具。系统分为三层:

  1. 基础设施层:Qdrant负责HNSW向量索引和BM25稀疏向量,Ollama或外部嵌入模型提供嵌入。
  2. 核心引擎层:Node.js负责文件发现、AST分块、嵌入生成、依赖图构建和锁管理。
  3. 协议层:MCP工具接口,兼容Claude Desktop、Cursor、Claude Code、Gemini CLI等宿主。

性能基准

在VS Code仓库(245万行代码、5300+文件、5.5万个chunk)的测试中,使用Claude Opus 4.6回答架构问题,相比传统"AI+grep"模式:

  • 上下文消耗减少61.5%
  • 工具调用减少84%
  • 响应速度提升37倍

部署模式

  • 托管模式:默认启用,零配置Docker。
  • 外部模式:通过环境变量接入自托管或云服务。
  • 分支感知模式:每个Git分支独立持有一个collection。

集成

SocratiCode通过MCP协议与Claude Code、Cursor、VS Code Copilot、Zed、Gemini CLI等AI编程平台集成,可作为这些工具的底层上下文引擎。

分享到