CodeGraph
将代码库构建为可供编程助手检索与推理的知识图谱。
这个 Agent 能做什么,适合哪些场景?
CodeGraph 是一个 Rust 实现的代码图谱系统,通过 MCP 为编程助手提供上下文、影响分析、架构分析和质量评估。它将构建上下文、AST 与 FastML 解析、可选 LSP 解析及增强处理写入 SurrealDB 中的节点、边和向量块。MCP 服务提供 agentic_context、agentic_impact、agentic_architecture 与 agentic_quality 四个聚合工具,并由 Rig、ReAct 或 LATS 推理策略驱动。它可索引 Rust、Python、TypeScript、JavaScript、Go、Java、C/C++ 等多种语言,并支持本地或云端的嵌入与推理提供商。部署边界是本地代码库、SurrealDB 和 MCP 客户端;它不是 IDE、类型检查器或测试运行器。
运行 codegraph index 后,系统读取目标项目,并按索引层级构建 AST 节点和核心关系;balanced 与 full 层级还会调用对应语言的 LSP、模块链接、文档/契约关联及其他增强分析。它把代码节点、调用和导入等边,以及带 HNSW 向量索引的 chunks 和 embeddings 存入 SurrealDB。MCP 客户端可调用 agentic_context 检索或构建上下文,调用 agentic_impact 分析依赖与调用链,调用 agentic_architecture 查看结构或 API surface,调用 agentic_quality 检查复杂度、耦合和热点。工具输出可包含文件路径、行号、受限片段、高亮、分析结果和后续步骤;--watch 或 daemon start 可在文件变化后重新索引。
- 使用 Claude Code 重构 Rust 服务的开发者,需要在修改组件前定位依赖、调用链和潜在影响。
- 维护多语言仓库的工程团队,需要把 TypeScript、Python、Go 与 Rust 的代码索引到同一套可搜索图谱中。
- 面对大型代码库的新成员,需要通过 agentic_architecture 了解包结构、模块关系和 API surface。
- 准备拆分高耦合模块的维护者,需要用 agentic_quality 识别复杂度热点、耦合指标和重构优先级。
- 需要保持本地代码索引更新的开发环境,可通过 codegraph start stdio --watch 或 daemon 模式监听变更。
这个 Agent 有哪些优点和局限?
- 将 AST、关系图和向量检索结合,而不是只返回相似代码片段。
- 四个 MCP 聚合工具覆盖上下文、影响、架构和质量分析,并可返回文件位置和有界片段。
- 索引层级允许在快速 AST 索引与包含 LSP、数据流、文档关联和架构分析的完整索引之间权衡。
- 支持本地 Ollama、LM Studio、ONNX Runtime,以及 OpenAI、Jina AI、Anthropic 和 xAI 等列出的提供商路径。
- 需要自行运行 SurrealDB 并手动应用 schema,增加了本地部署和运维组件。
- balanced 与 full 索引依赖语言服务器;缺少所需工具会快速失败。
- 默认 fast 层级不包含 LSP、模块链接、数据流、文档/契约和架构分析,因此结果较简化。
- 需要手动将 CODEGRAPH_CONTEXT_WINDOW 与所用模型的上下文窗口匹配;错误设置可能影响截断和上下文保护。
如何安装或部署这个 Agent?
克隆并构建:
git clone https://github.com/Jakedismo/codegraph-rust
cd codegraph-rust
./install-codegraph-full-features.sh
启动本地数据库:
surreal start --bind 0.0.0.0:3004 --user root --pass root file://$HOME/.codegraph/surreal.db
应用 schema:
cd schema && ./apply-schema.sh
随后在 ~/.codegraph/config.toml 配置 embedding、llm 和 database.surrealdb。示例配置使用 Ollama 的 qwen3-embedding:0.6b、Anthropic 的 claude-sonnet-4,以及 ws://localhost:3004。文档列出可用提供商,但未给出云端提供商 API 密钥的具体配置步骤。
如何使用这个 Agent?
首次索引项目可执行:
codegraph index /path/to/project -r -l rust,typescript,python
默认 fast 层级只生成 AST 与核心边;需要 LSP 和增强结果时可使用:
codegraph index --index-tier balanced
Rust 的 balanced/full 索引需要可运行的 rust-analyzer;其他语言也有对应的 LSP 依赖。启动 MCP 服务并监听变更:
codegraph start stdio --watch
Claude Code 可将该二进制配置为 MCP server,args 为 ["start", "stdio", "--watch"]。调用 agentic_context、agentic_impact、agentic_architecture 或 agentic_quality,并按需提供 query 与 focus。
这个 Agent 与同类方案有什么区别?
相较于仅依赖嵌入的语义搜索,CodeGraph 将匹配代码与调用、依赖、模块和其他图关系一起用于分析;代价是需要数据库、索引流程,以及在较丰富层级下安装 LSP 工具。