开发与工程 code-graphsemantic-code-searchmcpsurrealdbtree-sittercode-impact-analysisrust

CodeGraph

将代码库构建为可供编程助手检索与推理的知识图谱。

FollowAgents 评估 · FARS-2.0
待评估
查看完整评分方法 →

这个 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 可在文件变化后重新索引。

  1. 使用 Claude Code 重构 Rust 服务的开发者,需要在修改组件前定位依赖、调用链和潜在影响。
  2. 维护多语言仓库的工程团队,需要把 TypeScript、Python、Go 与 Rust 的代码索引到同一套可搜索图谱中。
  3. 面对大型代码库的新成员,需要通过 agentic_architecture 了解包结构、模块关系和 API surface。
  4. 准备拆分高耦合模块的维护者,需要用 agentic_quality 识别复杂度热点、耦合指标和重构优先级。
  5. 需要保持本地代码索引更新的开发环境,可通过 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 工具。

常见问题

支持哪些语言?
文档列出 Rust、Python、TypeScript、JavaScript、Go、Java、C++、C、Swift、Kotlin、C#、Ruby、PHP 和 Dart。
一定需要使用云端模型吗?
不一定。嵌入和推理均列出 Ollama 与 LM Studio 等本地选项,也列出 OpenAI、Anthropic、xAI 和 Jina AI 等云端选项。
索引会暴露密钥文件吗?
文档称索引会遵循 .gitignore,并过滤 .env、credentials.json、*.pem、API key 等常见秘密模式。
LSP 解析卡住或失败怎么办?
可通过 CODEGRAPH_LSP_REQUEST_TIMEOUT_SECS 调整单请求超时;如果 rust-analyzer 是没有已安装二进制的 rustup shim,需要安装可运行版本或切换工具链。

相关 Agents