← 返回日报
🌐 机器翻译 · DeepSeek · GitHub

colbymchenry codegraph


以下是您要求的英文文章的中文翻译,已按照要求保留原文结构、代码块、技术术语和专有名词,并输出为 Markdown 格式。


colbymchenry / codegraph

CodeGraph 为 Claude Code、Cursor、Codex 和 OpenCode 提供语义级代码智能增强 约节省 35% 成本 · 减少 ~70% 工具调用 · 100% 本地运行

快速开始

npx @colbymchenry/codegraph

交互式安装程序会自动配置您的代理(Claude Code、Cursor、Codex CLI、opencode)

初始化项目

cd your-project
codegraph init -i

为什么选择 CodeGraph?

当 Claude Code 探索代码库时,它会生成 Explore 代理,这些代理使用 grep、glob 和 Read 扫描文件——每次工具调用都会消耗 token。CodeGraph 为这些代理提供了一个预先索引的知识图谱——符号关系、调用图和代码结构。代理可以直接查询图谱,而无需扫描文件。

基准测试结果

在 7 个真实世界的开源代码库(涵盖 7 种语言)上进行测试,比较了代理(Claude Code,无头模式)在有和没有 CodeGraph 的情况下回答一个架构问题的表现。每个单元格是每臂 4 次运行的中位数节省量。

平均:成本降低 35% · token 减少 59% · 速度提升 49% · 工具调用减少 70%

| 代码库 | 语言 | 成本 | Token | 时间 | 工具调用 | |---|---|---|---|---|---| | VS Code | TypeScript · ~10k 文件 | 节省 35% | 减少 73% | 加快 41% | 减少 72% | | Excalidraw | TypeScript · ~600 | 节省 47% | 减少 73% | 加快 60% | 减少 86% | | Django | Python · ~2.7k | 节省 34% | 减少 64% | 加快 59% | 减少 81% | | Tokio | Rust · ~700 | 节省 52% | 减少 81% | 加快 63% | 减少 89% | | OkHttp | Java · ~640 | 节省 17% | 减少 41% | 加快 36% | 减少 64% | | Gin | Go · ~150 | 节省 22% | 减少 23% | 加快 34% | 减少 19% | | Alamofire | Swift · ~100 | 节省 38% | 减少 59% | 加快 51% | 减少 77% |

收益随代码库规模扩大而增加:在大型仓库中,代理只需几次调用就能从索引中回答,零文件读取;而没有 CodeGraph 的代理则需要在 grep/find/Read(及其生成的子代理)之间分散操作。在像 Gin(~150 个文件)这样的小型仓库中,原生搜索已经很便宜,因此差距缩小。

完整基准测试详情

方法:每臂使用 claude -p(Claude Opus 4.7,Claude Code v2.1.145)在无头模式下针对仓库运行,使用 --strict-mcp-config:WITH = 启用 CodeGraph 的 MCP 服务器,WITHOUT = 空的 MCP 配置。内置的 Read/Grep/Bash 对两者都可用。每个仓库相同问题,每臂 4 次运行,报告中位数

仓库以 --depth 1 克隆,并由提供服务的同一 CodeGraph 构建版本索引。

查询

| 代码库 | 查询 | |---|---| | VS Code | "扩展主机如何与主进程通信?" | | Excalidraw | "Excalidraw 如何渲染和更新画布元素?" | | Django | "Django 的 ORM 如何从 QuerySet 构建并执行查询?" | | Tokio | "Tokio 如何在其运行时上调度和执行异步任务?" | | OkHttp | "OkHttp 如何通过其拦截器链处理请求?" | | Gin | "Gin 如何通过其中间件链路由请求?" | | Alamofire | "Alamofire 如何构建、发送和验证请求?" |

原始中位数——WITH → WITHOUT

| 代码库 | 成本 | Token | 时间 | 工具调用 | |---|---|---|---|---| | VS Code | $0.42 → $0.64 | 393k → 1.4M | 1m 0s → 1m 43s | 7 → 23 | | Excalidraw | $0.54 → $1.02 | 851k → 3.2M | 1m 17s → 3m 14s | 12 → 83 | | Django | $0.41 → $0.62 | 499k → 1.4M | 1m 0s → 2m 25s | 9 → 48 | | Tokio | $0.50 → $1.04 | 657k → 3.4M | 1m 5s → 2m 56s | 9 → 75 | | OkHttp | $0.36 → $0.44 | 352k → 596k | 45s → 1m 11s | 5 → 14 | | Gin | $0.36 → $0.46 | 431k → 562k | 47s → 1m 11s | 7 → 8 | | Alamofire | $0.61 → $0.99 | 1.1M → 2.6M | 1m 19s → 2m 41s | 15 → 64 |

CodeGraph 为何胜出?

有了索引,代理可以直接回答——使用 codegraph_context 来定位区域,然后使用一次 codegraph_explore 获取相关源代码——然后停止,通常零文件读取。没有它,代理(及其生成的 Explore 子代理)在发现(find/ls/grep)上花费大部分预算,然后才读取正确的代码。

CodeGraph 仅在直接查询时才有帮助,因此其指令引导代理直接回答,而不是将探索委托给读取文件的子代理——否则子代理无论如何都会读取文件,CodeGraph 反而成为开销。

主要功能

智能上下文构建

一次工具调用即可返回入口点、相关符号和代码片段——无需昂贵的探索代理

全文搜索

由 FTS5 驱动,在整个代码库中即时按名称查找代码

影响分析

在进行更改之前,追踪任何符号的调用者、被调用者以及完整的影响范围

始终最新

文件监视器使用原生 OS 事件(FSEvents/inotify/ReadDirectoryChangesW)并带有防抖自动同步——图谱在您编码时保持最新,零配置

支持 19+ 种语言

TypeScript、JavaScript、Python、Go、Rust、Java、C#、PHP、Ruby、C、C++、Swift、Kotlin、Dart、Lua、Luau、Svelte、Liquid、Pascal/Delphi

框架感知路由

识别 Web 框架路由文件,并将 URL 模式链接到其处理程序,覆盖 13 个框架

100% 本地

数据不会离开您的机器。无需 API 密钥。无需外部服务。仅使用 SQLite 数据库

框架感知路由

CodeGraph 检测 Web 框架路由文件,并发出通过引用边链接到其处理程序类或函数的路由节点。查询视图/控制器的调用者现在会显示绑定它的 URL 模式。

识别的框架形状

  1. 运行安装程序:npx @colbymchenry/codegraph
  2. 在您的项目目录中初始化:cd your-project && codegraph init -i
  3. 按照交互式提示配置您的代理(Claude Code、Cursor、Codex CLI、opencode)
📖 阅读原文 →