Clipping 微信公众号

AI编程实践第11节:使用代码图谱codegraph降低模型Token消耗

by 爱海贼的无处不在 原文 ↗
Created: 2026-05-23

公众号名称:无处不在的技术

作者名称:爱海贼的无处不在

发布时间: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编程实践第5节:Trae梳理解构项目业务与代码流程

AI编程实践第6节:秒哒开发微信表情包生成应用

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指南说明知识

https://learn.microsoft.com/zh-cn/azure/databricks/generative-ai/guide/introduction-generative-ai-apps

7、赋范空间的飞书AI知识库:

https://kq4b3vgg5b.feishu.cn/wiki/ETqzwH4THiTY8kkGqAucYbSonPt

8、Marked的AI产品经理知识库

https://qqs7y1hozd1.feishu.cn/wiki/KVLtwsHdsiCLBfkumZpclY8ansd

- END -

喜欢的可以加入我的免费知识星球:觉醒的新世界程序员

喜欢的也可以关注我的公众号:​无处不在的技术​,与我一起学习成长、共同进步,在技术的道路上越走越远。

喜欢就点个 在看****呗 👇1


Original 爱海贼的无处不在 无处不在的技术


内容效果不满意?点此反馈

输入关键词开始搜索