1. 工具介绍
Codegraph 是一个本地代码知识图谱工具,专门给 AI agent 用的。
核心功能:把代码库解析成图结构(符号是节点,调用/依赖关系是边),存在本地 SQLite 里,然后通过 CLI 或 MCP 协议暴露给 agent 查询。
支持语言:Python、Java、TypeScript、Go 等主流语言都能解析。
对于 claude code 这类编码 agent 的实际价值:
- 减少幻觉 — agent 不再靠猜代码结构,而是查真实的图数据
- 节省上下文 — 不用把整个代码库塞进 prompt,按需查询相关片段
- 避免改坏东西 — 改之前先查影响范围,知道要一起改哪些测试和调用方
- 理解遗留代码 — 面对不熟悉的代码库,能快速理清调用链和依赖关系
安装
npm install -g @colbymchenry/codegraph --registry https://registry.npmmirror.com, 使用国内源, 更迅速.
装好后的位置示例:~/.nvm/versions/node/v24.18.0/bin/codegraph.
2. 用法及示例
主要命令:
init / index — 建索引 sync — 增量更新 query — 搜索符号 callers / callees — 查调用关系 explore — 一次性看源码 + 调用链 + 影响范围 impact — 分析改某个符号会影响哪些代码 affected — 找受影响的测试文件3. 真实项目示例
某项目, 建完索引后, 会得到.codegraph/codegraph.db文件. 利用统计功能可以看:
CodeGraph Status Project: /Users/yichudu/code_work/xx Index Statistics: Files:771Nodes:20,406Edges:35,840DB Size:55.41MB Backend: node:sqlite — built-in(full WAL)Journal: wal Nodes by Kind:import8,238method5,411field3,425file761namespace723class707enum_member610constant422enum58interface21function20variable10Files by Language:java724xml36properties5yaml5python1✓ Index is up todate4. demo示例
查看索引
它是标准的 sqlite3 索引, 可以直接 select 验证.
查看调用关系
继续执行SELECT * FROM edges LIMIT 10;.
得到:
(base)yichudu@yichumacbookair cg-demo % /usr/bin/sqlite3 ./.codegraph/codegraph.db"SELECT * FROM edges LIMIT 10;"1|file:src/Logger.java|class:eb9696a85f1d51e6cfc23212d3bd6543|contains||||2|class:eb9696a85f1d51e6cfc23212d3bd6543|method:4768bf7673844a5fec20e4ae4f6989c3|contains||||3|file:src/User.java|class:89e1ddb5e0719a82e1de008802f4c305|contains||||4|class:89e1ddb5e0719a82e1de008802f4c305|field:3d1b9111729baeb1f37d982b4af9fa09|contains||||Callees 查看主动调用
demo源码
// 另有 Logger.java 和 User.java, 篇幅所限做省略.publicclassUserService{privatefinalLoggerlogger=newLogger();publicUserfindUser(Stringid){logger.log("Finding user: "+id);returnnewUser(id,"Alice");}publicbooleandeleteUser(Stringid){Useruser=findUser(id);if(user!=null){logger.log("Deleting user: "+user.getName());returntrue;}returnfalse;}}