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

colbymchenry codegraph


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


colbymchenry / codegraph

CodeGraph 为 Claude Code、Cursor、Codex、OpenCode 和 Hermes Agent 注入语义代码智能 ~35% 更便宜 · ~70% 更少的工具调用 · 100% 本地化

开始使用

无需 Node.js — 一条命令即可获取适用于您操作系统的正确构建版本:

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.sh | sh

# Windows (PowerShell)
irm https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.ps1 | iex

已有 Node?使用 npm 代替(适用于任何版本):

npx @colbymchenry/codegraph   # 零安装,或:
npm i -g @colbymchenry/codegraph

CodeGraph 自带运行时 — 无需编译,无需原生构建,在任何环境下都能一致运行。交互式安装程序会自动配置您的 agent(s) — Claude Code、Cursor、Codex CLI、opencode、Hermes Agent。

初始化项目

cd your-project
codegraph init -i

卸载

改变主意了?一条命令即可从 CodeGraph 配置过的所有 agent 中移除它:

codegraph uninstall

该命令会撤销安装程序的操作 — 从每个已配置的 agent 中移除 CodeGraph 的 MCP 服务器配置、指令和权限。您的项目索引(.codegraph/)将保持不变;如需逐个项目删除,请使用 codegraph uninit。使用 --target 可从特定 agent 中移除,或使用 --yes 以非交互模式运行。

为什么选择 CodeGraph?

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

基准测试结果

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

平均:35% 更便宜 · 59% 更少的 token · 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% 更少 |

收益随代码库规模扩大而增加:在大型仓库中,agent 只需少量调用即可从索引中直接回答,且无需读取任何文件;而没有 CodeGraph 的 agent 则需要在 grep/find/Read(以及它生成的子 agent)之间分散搜索。在像 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 次运行,报告中位数。成本 = 运行的 total_cost_usd;Token = 处理的 token 总数(输入(包括缓存)+ 输出);时间 = 挂钟时间;工具调用 = 每次工具调用,包括模型生成的任何子 agent 内部的调用。仓库以 --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 胜出:有了索引,agent 可以直接回答 — 使用 codegraph_context 来映射区域,然后使用一个 codegraph_explore 来获取相关源代码 — 然后停止,通常零文件读取。没有它,agent(以及它生成的 Explore 子 agent)在读取正确的代码之前,大部分预算都花在了发现(find/ls/grep)上。

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

主要特性

智能上下文构建

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

全文搜索

由 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 模式链接到其处理程序,覆盖 14 个框架

100% 本地化

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

框架感知路由

CodeGraph 检测 Web 框架路由文件,并发出由引用边链接到其处理程序类或函数的路由节点。查询视图/控制器的调用者...


📖 阅读原文 →