将您的代码库转换为由嵌入式模型和大语言模型(LLMs)驱动的可搜索知识图谱。
CodeGraph 将您的源代码索引到图数据库中,创建语义嵌入,并公开一个**模型上下文协议(MCP)**服务器,该服务器可以被AI工具(如Claude Desktop、LM Studio等)查询以获取项目感知的上下文。
✨ 您将获得:
CodeGraph现在将Ollama/LM Studio嵌入直接写入SurrealDB的专用HNSW列。选择您想要的模型并设置匹配的环境变量,然后运行codegraph index:
export CODEGRAPH_EMBEDDING_PROVIDER=ollama
export CODEGRAPH_EMBEDDING_MODEL=qwen3-embedding:0.6b # 或 all-mini-llm, qwen3-embedding:4b, embeddinggemma等
export CODEGRAPH_EMBEDDING_DIMENSION=1024 # 支持384, 768, 1024, 1536, 2048, 2560, 3072或4096维数
# 可选本地重排序(LM Studio暴露了一个兼容OpenAI的重排序器端点)
export CODEGRAPH_RERANKING_PROVIDER=lmstudio
我们自动将嵌入路由到embedding_384、embedding_768、embedding_1024、embedding_2048、embedding_2056或embedding_4096,除非配置了提供者,否则禁用重排序。
MCP服务器中的FAISS+RocksDB支持已弃用,转而采用基于SurrealDB的架构。
新的代理MCP工具(如agentic_code_search、agentic_dependency_analysis等)需要SurrealDB:
选项1:免费云实例(推荐)
选项2:本地安装
# 安装SurrealDB
curl -sSf https://install.surrealdb.com | sh
# 本地运行
surreal start --bind 127.0.0.1:3004 --user root --pass root memory
免费云资源:
参见CHANGELOG.md获取详细的迁移指南。
CodeGraph现在支持AutoAgents框架作为代理编排的实验性功能。
带有实验性功能构建:
# 使用Makefile
make build-mcp-autoagents
# 或直接使用cargo
cargo build --release -p codegraph-mcp --features "ai-enhanced,autoagents-experimental,ollama"
# 带有AutoAgents的HTTP服务器
cargo build --release -p codegraph-mc --features "ai-enhanced,autoagents-experimental,embeddings-ollama,server-http"
不带AutoAgents(默认):
cargo build --release -p codegraph-mcp --features "ai-enhanced,ollama"
实验性功能通过构建标志启用,并在禁用时不影响现有功能。
选择符合您需求的设置:
最佳适用: 隐私意识用户,离线工作,无API费用。
提供商:
优点: ✅ 免费,✅ 私密,✅ 设置后无需互联网。 缺点: ❌ 较慢,❌ 需要本地GPU/CPU资源。
最佳适用: Mac用户(Apple Silicon),本地最佳性能。
提供商:
优点: ✅ 120嵌入/秒,✅ MLX + Flash Attention 2,✅ 免费。 缺点: ❌ 仅限Mac,❌ 需要LM Studio应用。
最佳适用: 生产用途,最佳质量,不想管理本地模型。
提供商:
优点: ✅ 最佳质量,✅ 快速,✅ 1M上下文(sonnet[1m])。 缺点: ❌ API费用,❌ 需要互联网,❌ 数据发送到云端。
最佳适用: 平衡成本和质量。
示例组合:
# 1. 安装Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
步骤1:安装Ollama
# macOS/Linux:
curl -fsSL https://ollama.com/install.sh | sh
# 或从:https://ollama.com/download 下载
brew install onnx-runtime
步骤2:拉取模型
# 拉取嵌入模型
hf (cli) download qdrant/all-minillm-onnx
# 拉取代码智能LLM(可选)
ollama pull qwen2.5-coder:14b
步骤3:构建CodeGraph
cd codegraph-rust
# 构建带有ONNX嵌入和Ollama支持
cargo build --release --features "onnx,ollama"
步骤4:配置
创建~/.codegraph/config.toml:
[embedding]
provider = "onnx" # 或 "ollama" 如果您喜欢
model = "qdrant/all-minillm-onnx"
dimension = 384
[llm]
enabled = true
provider = "ollama"
model = "qwen2.5-coder:14b"
ollama_url = "http://localhost:11434"
步骤5:索引和运行
# 索引您的项目
./target/release/codegraph index /path/to/your/project
# 启动MCP服务器
./target/release/codegraph start stdio
✅ 完成! 您的本地设置已经准备好。
步骤1:安装LM Studio
步骤2:在LM Studio中下载模型
jinaai/jina-embeddings-v4。lmstudio-community/DeepSeek-Coder-V2-Lite-Instruct-GGUF。步骤3:启动LM Studio服务器
http://localhost:1234)。步骤4:构建CodeGraph
cd codegraph-rust
# 构建带有兼容OpenAI的支持(用于LM Studio)
cargo build --release --features "openai-compatible"
步骤5:配置
创建~/.codegraph/config.toml:
[embedding]
provider = "lmstudio"
model = "jinaai/jina-embeddings-v4"
lmstudio_url = "http://localhost:1234"
dimension = 2048
[llm]
enabled = true
provider = "lmstudio"
model = "lmstudio-community/DeepSeek-Coder-V2-Lite-Instruct-GGUF"
lmstudio_url = "http://localhost:1234"
步骤6:索引和运行
# 索引您的项目
./target/release/codegraph index /path/to/your/project
# 启动MCP服务器
./target/release/codegraph start stdio
✅ 完成! LM Studio设置已完成。
步骤1:获取API密钥
步骤2:构建具有云功能的CodeGraph
cd codegraph-rust
# 构建带有所有云提供商
cargo build --release --features "anthropic,openai-llm,openai"
# 或带有Jina AI云嵌入(Matryoska维度+重排序)
cargo build --release --features "cloud-jina,anthropic"
# 或带有SurrealDB HNSW云/本地向量后端
cargo build --release --features "cloud-surrealdb,openai"
步骤3:运行设置向导(最简单)
./target/release/codegraph-setup
向导将引导您完成配置。
或手动配置 ~/.codegraph/config.toml:
对于Anthropic Claude:
[embedding]
provider = "jina" # 或 openai
model = "jina-embeddings-v4"
openai_api_key = "sk-..." # 或设置OPENAI_API_KEY环境变量
dimension = 2048
[llm]
enabled = true
provider = "anthropic"
model = "claude-haiku"
anthropic_api_key = "sk-ant-..." # 或设置ANTHROPIC_API_KEY环境变量
context_window = 200000
对于OpenAI(带有推理模型):
[embedding]
provider = "jina" # 或 openai
model = "jina-embeddings-v4"
openai_api_key = "sk-..."
dimension = 2048
[llm]
enabled = true
provider = "openai"
model = "gpt-5-codex-mini"
context_window=200000
openai_api_key = "sk-..."
max_completion_token = 128000
reasoning_effort = "medium" # 推理模型:"minimal", "medium", "high"
对于Jina AI(云嵌入和重排序):
[embedding]
provider = "jina"
model = "jina-embeddings-v4"
jina_api_key = "jina_..." # 或设置JINA_API_KEY环境变量
dimension = 2048 # 或matryoshka 1024,512,256 调整schemas/*.surql文件HNSW向量索引以匹配您的嵌入模型维度
jina_enable_reranking = true # 可选两阶段检索
jina_reranking_model = "jina-reranker-v3"
[llm]
enabled = true
provider = "anthropic"
model = "claude-haiku"
context_window = 200000
max_completion_tokens= 25000
anthropic_api_key = "sk-ant-..."
对于xAI Grok(2M上下文窗口,$0.50-$1.50/M令牌):
[embedding]
provider = "openai" # 或 "jina"
model = "text-embedding-3-small"
openai_api_key = "sk-..."
dimension = 1536
[llm]
enabled = true
provider = "xai"
model = "grok-4-fast" # 或 "grok-4-turbo"
xai_api_key = "xai-..." # 或设置XAI_API_KEY环境变量
xai_base_url = "https://api.x.ai/v1" # 默认,可以省略
reasoning_effort = "medium" # 选项:"minimal", "medium", "high"
context_window = 2000000 # 2M令牌!
对于SurrealDB HNSW(具有高级功能的图数据库后端):
[embedding]
provider = "jina" # 或 "openai"
model = "jina-embeddings-v4"
openai_api_key = "sk-..."
dimension = 2048
[vector_store]
backend = "surrealdb"
surrealdb_url = "ws://localhost:8000" # 或云实例
surrealdb_namespace = "codegraph"
surrealdb_database = "production"
[llm]
enabled = true
provider = "anthropic"
model = "claude-haiku"
步骤4:索引和运行
#