CodeGraph
将代码库构建为可供编程助手检索与推理的知识图谱。
按维度查看评分与理由
证据显示:README 提到索引时自动尊重 .gitignore 并过滤常见秘密模式(.env、credentials.json、*.pem 等),表明对敏感数据处理有一定考虑;MCP 服务器通过 stdio 启动,权限范围相对有限;但未发现用户确认机制(如工具调用前确认),也没有明确的回滚机制。依赖安全方面,Cargo.toml 列出了多个依赖,但未提供漏洞扫描或审计证据。外部影响方面,索引会修改本地数据库,但未说明是否需用户同意。来源归属方面,仓库作者信息不明确,发布者未验证。扣分原因:缺少用户确认、回滚、依赖安全审计证据,数据流透明度有限。
证据显示:README 和 Cargo.toml 中的描述一致,功能模块划分清晰,自洽性较好;但依赖可用性方面,部分依赖版本较新或未锁定(如 autoagents = "*"),可能影响可复现性;失败消息方面,README 提到 LSP 失败时会有错误提示,但未提供全面的错误处理文档。扣分原因:依赖版本未完全锁定,失败消息覆盖不全。
证据显示:README 详细说明了支持的多种语言、索引层级、配置选项,以及针对不同上下文窗口的调整,表明对多种场景有考虑;能力边界方面,明确列出了支持的索引层级和工具功能;触发精度方面,提供了 focus 参数和自动选择逻辑;环境适配方面,支持多种嵌入和 LLM 提供商,以及本地和云环境。扣分原因:未提供详细的故障排除指南,环境适配的某些细节(如特定操作系统)未说明。
证据显示:README 提供了安装指南、使用指南、架构图,信息架构清晰;安装说明详细,包括依赖和步骤;命名方面,工具名称和配置项命名一致;示例和 FAQ 方面,提供了使用示例,但缺少 FAQ;已知限制方面,README 提到了一些限制(如 LSP 依赖),但不全面;许可证为 MIT,但 Cargo.toml 中为 MIT OR Apache-2.0,存在不一致;版本和变更日志方面,未提供 CHANGELOG;维护责任方面,未明确维护者。扣分原因:许可证不一致,缺少 CHANGELOG 和明确的维护者信息。
证据显示:README 详细描述了工具的输出格式(如 JSON 结构),输出可用性较好;边际价值方面,强调了与传统搜索相比的优势,如减少 token 消耗;成本效益方面,提供了索引层级和上下文窗口配置以控制成本,但未提供实际性能数据。扣分原因:缺少实际性能基准和成本对比数据。
证据显示:README 中的一些声明(如性能数据)没有提供测试或基准证据;跨来源验证方面,仅依赖 README 和 Cargo.toml,缺乏其他来源;事实与推断分离方面,README 中混合了事实和推断(如“blazing fast”)。扣分原因:缺乏可验证的证据,声明与证据分离不清晰。
- 许可证信息不一致:README 声明 MIT,但 Cargo.toml 声明 MIT OR Apache-2.0,需澄清。
- 依赖版本未完全锁定(如 autoagents = "*"),可能影响可复现性和供应链安全。
- 缺少用户确认和回滚机制,工具可能自动执行影响外部系统的操作。
- 发布者身份未验证,来源归属不明确。
这个 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 balancedRust 的 balanced/full 索引需要可运行的 rust-analyzer;其他语言也有对应的 LSP 依赖。启动 MCP 服务并监听变更:
codegraph start stdio --watchClaude Code 可将该二进制配置为 MCP server,args 为 ["start", "stdio", "--watch"]。调用 agentic_context、agentic_impact、agentic_architecture 或 agentic_quality,并按需提供 query 与 focus。
这个 Agent 与同类方案有什么区别?
相较于仅依赖嵌入的语义搜索,CodeGraph 将匹配代码与调用、依赖、模块和其他图关系一起用于分析;代价是需要数据库、索引流程,以及在较丰富层级下安装 LSP 工具。