Token 暴降 59%!这个项目让 Claude Code / Codex 不再满仓库乱翻。

用 Claude Code 或 Codex 写代码,确实效率拉满。

但用过一阵子的人,大概都经历过一件事:Token 烧得飞快,尤其是中大型项目里,随便问一句「这个登录流程是怎么串起来的」,AI 就开始满项目翻文件,反反复复读个几十轮,一轮下来 Token 消耗六位数起步。

看订阅剩余额度或者月度 API 账单的时候,那个心情,懂的都懂。

下面是我的 GLM Max 订阅,这么顶的周额度经常不够用:

这几天小 G 在 GitHub 上发现一个叫 CodeGraph的开源项目,上线没几天就冲上了 Trending 榜,Star 数一路狂飙。

它的定位很很简单:给代码库建一张知识图谱,让 AI 编程工具不再靠蛮力翻文件,而是像查字典一样精准定位。

原理不难理解。

过去问 AI 一个架构问题,它得先全局搜关键词,然后挨个打开相关文件读完,再判断哪个是入口、哪些是被调用的辅助函数。一套下来可能几十步。

有了 CodeGraph 之后,AI 直接查图谱,一次性拿到完整的调用链和符号关系。几十步压缩到一两步,Token 自然就省了。

官方做了一组对比测试,用 Claude Opus 4.7 在 7 个真实开源项目上跑,每个问题跑 4 次取中位数。

结果是:平均省 35% 的费用,Token 减少 59%,速度快了 49%,工具调用次数砍掉 70%。

具体到个别项目上差距更大。比如在 VS Code 这种上万文件的项目上,Token 直接减少 73%;在 Tokio(Rust 异步运行时)上,费用省了 52%。

这组数据是拿 claude -p 跑无头测试得出的,WITH 和 WITHOUT 两个对照组用的是同一个问题、同一份代码,模型自带的 Read/Grep/Bash 都保留,唯一的变量就是 CodeGraph 的 MCP 服务器开没开。

说实话,这个提升幅度不是靠模型升级带来的,纯粹是工程层面的优化。

本质上,CodeGraph 解决的是一个上下文工程(Context Engineering)问题。Agent 在大型代码库里找代码,传统方式是 Just-in-Time 按需加载------先猜关键词 grep,再逐个读文件,一轮轮探索下去。Claude Code 就是这么干的:靠文件名和目录结构定位,靠搜索命令逐步缩小范围。

Context Engineering 和 Prompt Engineering 差别

上下文窗口(Context Window)= LLM 的工作记忆

问题是,这种探索式搜索每多一轮,上下文窗口就多一轮噪声。研究数据表明,上下文利用率超过 40%~60% 之后,模型筛选关键信息的稳定性就开始下降------这叫 Context Rot(上下文腐化)。信息塞得越多,模型反而越容易漏掉关键内容。

上下文为什么会失效

关于上下文工程和提示词工程的详细介绍,可以看这两篇:

CodeGraph 的做法是把"实时翻文件"前置成"查图谱",把几十步搜索压缩到一两步。不是给模型更大的窗口,而是让模型一开始就拿到更干净、更精准的上下文。

先来说说它到底是怎么建这张图谱的。

底层用的是 tree-sitter 做语法解析,把源代码拆成 AST,然后用语言特定的查询规则提取函数、类、方法这些节点,以及调用、导入、继承这些边。最后全部存进本地 SQLite 数据库(.codegraph/codegraph.db),还加了 FTS5 全文搜索索引。

这是 GPT 对 tree-sitter 的介绍:

解析完之后还有一步引用解析:函数调用指向哪个定义、import 对应哪个源文件、类继承了谁,这些关系全部对上号。

支持的语言覆盖面挺广,官方列了 19+ 种:TypeScript、JavaScript、Python、Go、Rust、Java、C#、PHP、Ruby、C、C++、Swift、Kotlin、Dart、Lua、Luau、Svelte、Liquid、Pascal/Delphi,主流技术栈基本都盖到了。

接下来重点说说一个对后端开发者很实用的功能:Web 框架路由识别。

CodeGraph 能自动识别 URL 路径和对应处理函数之间的映射关系。支持 13 种主流框架,包括 Django、FastAPI、Express、NestJS、Laravel、Rails、Spring 等。

举个例子,在 Django 项目里问 AI「/api/users这个接口是谁实现的」,过去它得先找路由配置文件,再顺着配置找到视图函数,中间还可能搜岔了好几次。

有了 CodeGraph 之后,一次查询直接定位到处理函数,中间的搜索试错环节全部省掉。

再提一个细节,CodeGraph 的 MCP 服务器启动后会监听文件系统的变更事件,用 2 秒的防抖窗口过滤非代码文件,增量同步索引。也就是说,写代码的过程中图谱会自动保持最新,不需要手动触发重建。

整个项目 100% 本地运行,数据全部存在本地 SQLite 里,不需要联网,不传任何代码到外部服务器。对代码安全敏感的团队来说,这一点很关键。

至于和 Cursor 自带索引的区别,简单说:Cursor 走的是语义相似度匹配,而 CodeGraph 输出的是结构化的调用关系图。一个是模糊搜索,一个是精准查询,定位准确度上 CodeGraph 有它的优势。

这个区别放到更大的图检索视角下会更清晰。传统向量检索的本质是"找和问题最像的文本片段",它擅长判断"这段话和我的问题像不像",但不擅长理解"这些对象之间到底怎么连起来"。CodeGraph 的图谱检索走的是另一条路------把函数、类、调用关系显式建模成节点和边,查询时沿着图关系直接定位,不用靠语义猜测。

这跟知识图谱检索(GraphRAG)的思路一脉相承:检索对象从文本 Chunk 变成了实体、关系和路径,检索精度自然就不在一个层面上了。

GraphRAG 和传统向量检索的本质区别

当然也得说句实话,CodeGraph 不是万能的。它依赖 tree-sitter 的语言解析能力,如果项目里有特别魔幻的语法或者动态生成的代码,图谱的覆盖可能会有遗漏。另外 macOS 用户如果没有装 Xcode 命令行工具,CodeGraph 会回退到兼容模式,速度会慢 5 到 10 倍,这个坑注意避开。

安装很简单,一行命令:

npx @colbymchenry/codegraph

跑起来后,安装器会自动检测系统里装了哪些 AI 编程工具(Claude Code、Cursor、Codex CLI、OpenCode、Hermes Agent),然后帮你配置好对接。

它会在 ~/.claude.json里加上 MCP 服务器配置,在 ~/.claude/CLAUDE.md里注入使用说明。Cursor 用户则会在 .cursor/rules/下生成规则文件。整个过程全自动,不需要手动改配置文件。

简单说下 MCP(Model Context Protocol):它是 AI 应用与外部工具之间的标准通信协议,底层用 JSON-RPC 2.0。AI 应用(Host)通过 MCP Client 连接 MCP Server,发现 Server 暴露的工具能力,然后按协议调用。CodeGraph 就是一个 MCP Server,把代码图谱查询能力暴露给了 Claude Code、Cursor 这些 Host。想深入了解 MCP 的架构细节,可以看这篇:什么是 MCP?和 Function Calling、Agent 什么关系?。

MCP 四层架构

配置完后,进到项目根目录执行:

codegraph init -i

等它建完索引,打开 AI 编程工具直接用就行。问问题的时候,AI 会自动调用 CodeGraph 的工具来查图谱,不需要额外操作。

当前版本是 v0.7.9,MIT 协议开源,需要 Node.js 18+。

写在最后

过去一年,大家都在卷谁的模型更聪明。但真正把 AI 编程工具落到日常开发里之后,会发现决定体验上限的往往不是模型本身,而是它「看懂代码」的速度和成本。

模型再强,每次探索代码都要烧几百万 Token、等十几分钟,用起来还是肉疼。

CodeGraph 的思路是把重复的文件扫描工作前置化,用一张本地图谱替代实时翻文件,这个方向小 G 觉得是对的。

它本质上跟知识图谱检索(GraphRAG)解决的是同一类问题------传统向量检索找的是"最像的文本片段",而图谱检索找的是"对象之间的关系和路径"。想深入了解这套思路的,可以参考这篇:万字详解 GraphRAG:为什么只靠向量检索撑不起复杂知识问答。

不过目前项目还比较新,社区生态和长期维护的稳定性都还需要时间验证。对于代码量不大的个人项目,可能感知不到太大的差异;但如果你的项目文件上千、又经常让 AI 做代码探索和重构,装一个试试看,省下来的 Token 钱应该够喝好几杯咖啡了。

GitHub 项目地址:github.com/colbymchenr...

感谢你能看到这里,有帮助的话,欢迎点赞分享,我们下期再见!

相关推荐
脚本自动化开发37 分钟前
折叠双屏MU156LA:写稿修图游戏体验
后端
脚本自动化开发40 分钟前
AI短剧800集讲规矩,观众忘了是AI
后端
小虎AI生活2 小时前
WorkBuddy 积分不够烧?我找到了每天白送 5000 的平台
aigc·ai编程
Csvn3 小时前
安装、升级与目录结构
后端·nginx
皮皮林5513 小时前
万能通用!权限系统就该这么设计
后端
GoAI4 小时前
DeepSeek Harness Memory (一)主流记忆插件总结
后端·算法·面试
卸任5 小时前
Vibe coding工具使用心得
前端·ai编程
橙子家5 小时前
RESTful 接口:它并非标准或协议,而是一种【架构风格】
后端
T_Wizard6 小时前
同一个问题写了 4 遍:官方 SDK / HTTP / Spring AI / LangChain4j,到底该选哪个
java·ai编程
小兔子6 小时前
dict.get 的默认值每次都会求值,哪怕键本来就在
后端