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个标准化工具。系统分为三层:
- 基础设施层:Qdrant负责HNSW向量索引和BM25稀疏向量,Ollama或外部嵌入模型提供嵌入。
- 核心引擎层:Node.js负责文件发现、AST分块、嵌入生成、依赖图构建和锁管理。
- 协议层: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编程平台集成,可作为这些工具的底层上下文引擎。