AI编程实践第11节:使用代码图谱codegraph降低模型Token消耗
公众号名称:无处不在的技术
作者名称:爱海贼的无处不在
发布时间:2026-05-23 13:28
持续内容输出,点击蓝字关注我吧
01
前言
来看一段AI大模型对它的介绍
过去一年,AI Coding 几乎重塑了整个软件开发行业。从 Claude Code 到 Cursor,再到各种 Agent。大家都在讨论:更强的模型、更长的上下文、更聪明的 Agent、更复杂的 Workflow。这个过程中大家都会遇到一个实际的问题,AI 到底为什么会消耗那么多 Token?
从我个人的角度来看,对于AI编码来说,一个非常大的消耗是【AI 对代码库的“探索成本”】。
当AI Agent 进入一个陌生仓库时,实际上它并不知道项目环境的各种信息,例如:
-
登录入口在哪
-
调用链如何流转
-
哪些模块存在关联
-
某个函数被谁调用
-
哪个改动会影响测试
于是它只能:到处搜索、反复读文件、不断构建临时上下文、再重新推理。而这一切,都在疯狂消耗 Token。

每个写过真实软件项目的人,大概都经历过这样的时刻。对于一个很简单的问题,比如“这个登录流程到底从哪里开始、最后会影响哪些地方”,多数没有进行环境配置的AI,都会先四处张望,再一层层翻文件、跑搜索、找线索。时间在流逝,token 在燃烧,问题还没回答,探索本身已经先把上下文吃掉了一大截。
每次进入一个陌生仓库,Agent工具还是会先迷路。然后不停地搜索:
-
grep
-
glob
-
find
-
Read
-
再 grep
-
再 Read
背后可能是:40 次 Tool Call、十几次 Read、上万 Token,90% 的内容最后根本没用。像一个人在黑暗里摸索房间的墙壁。
我们看到的影响则是:Context 被迅速填满、Token 像流水一样燃烧、Tool Call 越来越多、AI 开始“失忆”、最后回答越来越偏。

对于Agent应用和日常AI编码的时候,降低Token的情况,个人目前掌握的几个点如下:

最近Github上有个开源项目飙升很快,虽然之前也出现了一些类似的产品,但是这个产品感觉挺合适很多人,轻量的同时,还很实用,它就是:CodeGraph。
目前快要达到16K,地址为:https://github.com/colbymchenry/codegraph
截图如下:

这个工具想做的,就是把这场“盲人摸象”变成“带着地图出发”——它先把代码的结构、符号关系、调用链和影响范围预先整理成知识图谱,再让 AI 直接查询图谱,而不是每次都从头扫文件。
它的定位是本地优先、零配置、面向 AI 编程助手的代码知识图谱工具,强调更少 token、更少工具调用、并且 100% 本地运行。
官方的数据截图如下:

CodeGraph 本质上是:一个“预先理解代码”的知识图谱系统。使用的时候,我们提前预构建代码关系图谱,然后让AI直接查询图谱,再获取结构化上下文,在进行回答。
它是本地优先的工具,运行在你的机器上,不依赖外部服务,支持 Windows、macOS、Linux,并且有脚本安装方式,也支持 npx 和全局 npm 安装。项目级别会生成自己的 .codegraph/ 目录,配置和数据都跟着项目
02
总结
首先我们看谁最需要这个工具?
我个人觉得最直接的受益者是 Claude Code、Cursor、Codex CLI、OpenCode、Hermes Agent 这类 AI 编程助手,以及使用它们的开发者。
CodeGraph 的 README 直接把这些 Agent 作为目标对象,并且安装器会自动配置它们。对于团队来说,凡是经常在中大型代码库里做排查、重构、联调、测试影响分析的人,都会明显感受到它的价值。
再来看下它能做什么?
官网介绍是它可以把代码变成一个“可查询的图谱”。可以查符号、查结构、查调用者和被调用者、查影响范围、查上下文、查文件树,还能做增量同步和受影响测试文件分析。官方 CLI 里就包含 init、index、sync、query、files、context、affected、serve —mcp 等命令。
接下来,我们操作一下,看看效果。
首先我们需要在电脑上全局安装这个依赖,执行命令如下所示:
npm i -g @colbymchenry/codegraph
理解:

接下来,我们准备一个项目,准备开始干,这里我先用的是一个1000多个文件的项目,开源的电商商城项目:CRMEB Java

接下来,我们切换到这个项目的目录下,然后执行命令进行图谱的初始化:
codegraph init -i
执行效果也非常的快,这个项目1000多个文件,解析结果如下:
┌ Initializing CodeGraph
│
◆ Initialized in /Users/develop/gitee/crmebv14
│
│ ◆ Scanning files — 1,040 found
│ ◆ Parsing code — done
│ ◆ Resolving refs — done
│
◆ Indexed 1,030 files
│
● 21,719 nodes, 20,118 edges in 11.3s
│
└ Done
初始化完成之后,输出了2万个节点,2w个关系,接下来我们看看代码仓库发生了什么?
当前目录下生成了一个.codegraph的文件夹:
我们使用sqlite客户端查看一下数据:

维护了几张表。
有了如下的数据后,我们可以接下来配置Agent环境,让他使用,可以执行如下命令交互方式配置:
npx @colbymchenry/codegraph
这个命令会自动完成以下操作:
-
询问你要配置哪些 Agent —— 会自动检测已安装的工具,包括:
-
Claude Code
-
Cursor
-
Codex CLI
-
opencode
-
Hermes Agent
-
提示是否将 codegraph 安装到你的 PATH 中(这样 Agent 才能启动 MCP Server)
-
询问配置是应用于:
-
所有项目(global)
-
还是仅当前项目(local)
-
为每个选中的 Agent 写入 MCP Server 配置以及对应的说明文件,例如:
-
CLAUDE.md
-
.cursor/rules/codegraph.mdc
-
~/.codex/AGENTS.md
-
如果目标包含 Claude Code,还会自动配置 Auto-Allow 权限
-
初始化当前项目(仅本地安装模式)
执行后的第一步如下所示:

这里我选择的是ClaudeCode。
然后选择安装CLI到环境变量中,然后选择全局或者当前项目,我选择的是当前项目:

执行完成后,可以初始化了一些目录文件:

我们看下当前项目出现了什么,当前项目的CLAUDE文件自动增加了一些提示:

然后给我们配置了一个mcp server:

接下来我们发起一个测试的问题,截图如下:

可以看到返回结果的速度非常快的就返回来了,再看下cc switch的日志:

触发了一次工具调用,就获取到了相关的结果,然后提供给AI进行回答。
接下来在换个问题:物流查询的逻辑的实现方式:

我的API中转站的只调用了5次大模型接口:

接下来,我们把这个mcp文件取消,同时取消claude文件中的说明,再来一次看看效果:
我依然是相同的问题,可以看到这样一个简单的问题,执行了好久,大量的READ工具执行,执行了3分钟16s,然后多次调用了工具:
然后我的中转站针对这样的一个问题,请求次数总共消耗了57次:

这结果简直是天差地别。
那么在我的项目中,我的测试效果数据对比如下:
1、存在代码图谱CodeGraph的情况下:接口请求次数5次、耗时33s
2、不存在代码图谱CodeGraph的情况下:接口请求次数57次,耗时3分钟。
请求次数直接消耗了10倍,所以说,当我们给AI提供了一些能够快速定位代码的工具后,我们的接口调用次数减少。
CodeGraph 的核心,不是简单地做文本检索,而是为代码建立一种结构化、可问答的“记忆”。
它基于语义知识图谱理解代码之间的连接关系,能回答“谁调用了谁”“某个改动会影响哪里”“给我一段适合 AI 理解的上下文”这类问题;它还提供 codegraph_search、codegraph_context、codegraph_callers、codegraph_callees、codegraph_impact、codegraph_node、codegraph_files、codegraph_status 等 MCP 工具,让 Claude Code 这类 Agent 直接按图索骥。
它既可以作为 MCP Server 使用,也可以作为 Node.js 库嵌入项目里。
这个工具也支持交互模式(脚本 / CI 场景)
codegraph install —yes
自动检测 Agent,并执行全局安装。
codegraph install —target=cursor,claude —yes
显式指定目标 Agent。
codegraph install —target=auto —location=local
自动检测 Agent,并仅安装到当前项目。
codegraph install —print-config codex
仅输出配置片段,不写入任何文件。
CodeGraph的“脑子”不是靠大模型临时猜出来的,而是靠 AST 和 tree-sitter 做确定性抽取,再落到本地 SQLite 数据里;官方文档还明确强调,它支持多语言、零外部 API 依赖,并且每个项目都有自己的 .codegraph/ 目录。换句话说,CodeGraph 更像一个安静、可靠的图书管理员:它不替你创作,但它会把书架、目录、索引、交叉引用都整理好,让你一伸手就摸到关键页。
架构图如下所示:

它提供的工具如下所示:

我们也可以使用代码编程的方式触发这个工具的执行,官网的示例代码如下所示:
import CodeGraph from '@colbymchenry/codegraph';
const cg = await CodeGraph.init('/path/to/project');
// Or: const cg = await CodeGraph.open('/path/to/project');
await cg.indexAll({
onProgress: (p) => console.log(`${p.phase}: ${p.current}/${p.total}`)
});
const results = cg.searchNodes('UserService');
const callers = cg.getCallers(results[0].node.id);
const context = await cg.buildContext('fix login bug', { maxNodes: 20, includeCode: true, format: 'markdown' });
const impact = cg.getImpactRadius(results[0].node.id, 2);
cg.watch(); // auto-sync on file changes
cg.unwatch(); // stop watching
cg.close();
这个东西是非常具有意义的,之所以认为他有意义是因为它解决了:AI Coding 的“探索效率”问题。
过去行业一直在:堆模型、堆上下文、堆 Agent。但 CodeGraph 的思路是:减少无意义探索。这比:
-
无限增加 Context
-
无限增加 Tool
都更优雅。
CodeGraph 并不是:“让 AI 更聪明”。而是:让 AI 少走弯路。而很多时候。减少弯路。比增加能力,更重要。
如果把 AI 编程助手比作一位聪明但健忘的同事,那么 CodeGraph 就像是提前为他准备好的项目地图、关系网和说明书。它不替代思考,却把“从哪儿开始思考”这件事变得极其高效;它不追求花哨,却把最珍贵的资源——token、时间和注意力——节省下来。
03
总结
经过这次实践,我们如果说:大模型是“大脑”,那么:CodeGraph 更像:神经系统。它把原本散落的代码连接起来。
很多工具的价值,是让事情“能做”;而 CodeGraph 的价值,是让事情“做得更像理解”。当 AI 不再一遍遍翻文件、不再把同一条线索反复试错,它就像终于拿到了一张清晰的地图:知道哪里是入口,哪里是边界,哪里一动会牵动全身。对开发者来说,这不仅是省 token,更是省心。你会发现,原本需要一轮又一轮解释的上下文,开始变成一次准确的提问;原本碎片化的代码库,开始被连成一个有血有肉的整体。CodeGraph 做的事情很朴素,却很动人:它替人和模型之间补上了“看懂彼此”的那一步。

如果把 AI 编程助手比作一位聪明但健忘的同事,那么 CodeGraph 就像是提前为他准备好的项目地图、关系网和说明书。它不替代思考,却把“从哪儿开始思考”这件事变得极其高效;它不追求花哨,却把最珍贵的资源——token、时间和注意力——节省下来。对于想写高质量技术文章的人来说,这个标题很合适:使用代码图谱 CodeGraph 降低 Token 消耗。而如果再往深处说,它降低的其实不只是 token,更是开发者在复杂系统面前那种无处落脚的疲惫感
喜欢本文的,可以关注、收藏、点赞、转发、分享到朋友圈哦。
本专题系列文章:
VibeCoding实践第1节:字节Trae实现简历与简历生成器
AI编程实践第2节:Spec规范驱动开发(SDD)1024游戏
AI编程实践第3节:Trae实现Web管理后台界面,效果出奇好
AI编程实践第4节:基于GPT5+Trae实现MCP服务市场
AI编程实践第7节:Git WorkTree机制实现分支并行开发
AI编程实践第8节:使用Understand Anything理解项目关系图谱
AI编程实践第9节:阿里秒悟与谷歌Stitch平台实现需求界面原型设计
AI编程实践第10节:B端C化,使用GPT-Image-2.0设计重构系统UI界面
最近也看到有人问如何学习AI,这里分享几个资料如下:
1、通往AGI之路的知识库飞书云文档
https://waytoagi.feishu.cn/wiki/QPe5w5g7UisbEkkow8XcDmOpn8e
2、掘金的AI知识库的飞书云文档
https://agijuejin.feishu.cn/wiki/UvJPwhfkiitMzhkhEfycUnS9nAm?table=blk3RfZtR7Nh73tO
3、极客时间的AI知识库的飞书云文档
https://geek-agi.feishu.cn/wiki/B9rYwwg6xidZYJkbrlscxTQFnOc
4、LangGPT社区的飞书云文档(结构化提示词等等)
https://langgptai.feishu.cn/wiki/RXdbwRyASiShtDky381ciwFEnpe
5、一站式AI产品经理飞书知识库
https://v11enp9ok1h.feishu.cn/wiki/KiIvwdFOciiqqNkwKzTcmn88ndL
6、微软网站分享的AI指南说明知识
7、赋范空间的飞书AI知识库:
https://kq4b3vgg5b.feishu.cn/wiki/ETqzwH4THiTY8kkGqAucYbSonPt
8、Marked的AI产品经理知识库
https://qqs7y1hozd1.feishu.cn/wiki/KVLtwsHdsiCLBfkumZpclY8ansd
- END -
喜欢的可以加入我的免费知识星球:觉醒的新世界程序员

喜欢的也可以关注我的公众号:无处不在的技术,与我一起学习成长、共同进步,在技术的道路上越走越远。
喜欢就点个 在看****呗 👇1
Original 爱海贼的无处不在 无处不在的技术
内容效果不满意?点此反馈