CodeGraph 教程:为 AI 编码助手注入语义代码理解能力
CodeGraph 教程:为 AI 编码助手注入语义代码理解能力
小新软件平替你有没有遇到过这种情况:让 Claude Code 分析一个大型代码库的架构,它却花了一大堆 token 在 grep、glob、Read 上来回扫描文件?CodeGraph 就是来解决这个问题的——它为你的 AI 编码助手提供一个预索引的代码知识图谱,让智能体直接查询符号关系和调用图,而不是盲目扫描文件。
CodeGraph 是什么? CodeGraph 是一个开源的代码知识图谱工具(MIT 许可证),通过 MCP 协议为 Claude Code、Cursor、Codex CLI、opencode 和 Hermes Agent 提供语义级代码理解能力。它使用 tree-sitter 解析源代码构建本地 SQLite 索引,支持 19+ 种编程语言,实测可降低约 35% 的 token 成本、减少 70% 的工具调用次数。
前提条件
- 操作系统:macOS / Linux / Windows(均支持)
- AI 编码助手:Claude Code、Cursor、Codex CLI、opencode 或 Hermes Agent 中的任意一个
- Node.js:可选——安装脚本自带运行时,无需预先安装 Node.js
💡 提示:如果你已经安装了 Node.js,也可以直接通过
npx或npm使用 CodeGraph。
概述
CodeGraph 的工作原理分为四步:
- 提取:tree-sitter 将源代码解析为 AST(抽象语法树),提取函数、类、方法等符号节点,以及调用、导入、继承等关系边
- 存储:所有数据存入本地 SQLite 数据库(
.codegraph/codegraph.db),并建立 FTS5 全文搜索索引 - 解析:提取完成后,交叉引用被解析——函数调用指向定义、导入指向源文件、类继承关系被连接
- 自动同步:MCP 服务器使用操作系统原生文件事件监控项目变更,2 秒防抖后增量同步,图谱始终最新
第一步:安装 CodeGraph
方式一:一键安装脚本(推荐,无需 Node.js)
macOS / Linux:
1 | curl -fsSL https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.sh | sh |
Windows(PowerShell):
1 | irm https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.ps1 | iex |
安装脚本会自动:
- 检测你已安装的 AI 编码助手(Claude Code、Cursor 等)
- 将 CodeGraph 安装到系统 PATH
- 为每个检测到的助手写入 MCP 服务器配置和指令文件
- 初始化当前项目
方式二:通过 npm 安装
1 | # 零安装(临时运行) |
💡 提示:CodeGraph 自带 Node.js 运行时,无需系统级安装 Node.js 即可使用安装脚本方式。
非交互式安装(脚本 / CI)
1 | codegraph install --yes # 自动检测助手,全局安装 |
第二步:初始化项目
进入你的项目目录,构建代码知识图谱索引:
1 | cd your-project |
-i 参数表示同时执行索引构建。初始化完成后,项目根目录会生成 .codegraph/ 目录,其中包含 SQLite 数据库文件。
第三步:重启 AI 编码助手
安装完成后,重启你的 AI 编码助手(Claude Code / Cursor / Codex CLI 等),MCP 服务器会自动加载。
重启后,当你的助手在项目中探索代码时,它会自动使用 CodeGraph 提供的 MCP 工具来查询符号关系和代码结构,而不是盲目扫描文件。
第四步:掌握核心 MCP 工具
CodeGraph 通过 MCP 协议向 AI 助手暴露以下工具:
| 工具 | 用途 | 使用场景 |
|---|---|---|
codegraph_search |
按名称搜索符号 | 查找某个函数/类在哪里定义 |
codegraph_context |
为任务构建相关代码上下文 | 让 AI 理解某个功能的完整实现 |
codegraph_callers |
查找谁调用了某个函数 | 分析修改影响范围 |
codegraph_callees |
查找某个函数调用了什么 | 理解函数的依赖链 |
codegraph_impact |
分析修改某个符号的影响范围 | 重构前评估影响 |
codegraph_node |
获取单个符号的详细信息 | 查看函数签名、源码 |
codegraph_files |
获取索引的文件结构 | 快速浏览项目结构 |
codegraph_status |
检查索引健康状态 | 调试索引问题 |
实际使用示例
当你在 Claude Code 中问”用户认证是怎么实现的?”,助手会:
- 调用
codegraph_context查询与认证相关的符号和代码片段 - 直接获得入口点、相关符号和代码——无需扫描文件
- 给出精确的答案
对比效果(基于官方基准测试):
| 指标 | 使用 CodeGraph | 不使用 CodeGraph | 改善 |
|---|---|---|---|
| 成本 | $0.42 | $0.64 | 降低 35% |
| Token 消耗 | 393k | 1.4M | 减少 59% |
| 响应时间 | 1m 0s | 1m 43s | 快 49% |
| 工具调用次数 | 7 | 23 | 减少 70% |
💡 提示:CodeGraph 只在 AI 助手直接查询 MCP 工具时生效。如果助手选择使用 Explore 子代理扫描文件,CodeGraph 的优势不会体现。安装后助手会自动遵循最优使用模式。
第五步:使用 CLI 工具
除了作为 MCP 服务器运行,CodeGraph 还提供丰富的 CLI 命令:
1 | codegraph status # 查看索引统计信息 |
codegraph affected — 智能测试选择
当你修改了某些文件,codegraph affected 可以追踪导入依赖链,找出哪些测试文件受到影响:
1 | # 直接传入文件 |
支持的语言和框架
CodeGraph 支持 19+ 种编程语言,包括 TypeScript、JavaScript、Python、Go、Rust、Java、C#、PHP、Ruby、C、C++、Swift、Kotlin、Dart、Lua、Luau、Svelte、Vue、Liquid、Pascal/Delphi。
此外,CodeGraph 识别 14 种 Web 框架的路由文件,将 URL 模式链接到对应的处理函数:Django、Flask、FastAPI、Express、NestJS、Laravel、Drupal、Rails、Spring、Gin/chi/Actix、ASP.NET、Vapor、React Router、SvelteKit。
卸载
想移除 CodeGraph?一行命令即可:
1 | codegraph uninstall |
这会从所有已配置的 AI 助手中移除 CodeGraph 的 MCP 服务器配置和指令文件。项目索引(.codegraph/)会保留,可以用 codegraph uninit 手动删除。
常见问题(FAQ)
Q: CodeGraph 需要联网吗?
A: 不需要。CodeGraph 完全本地运行——所有数据存储在本地 SQLite 数据库中,不依赖任何外部 API 或服务。
Q: 安装后 AI 助手没有使用 CodeGraph?
A: 确认以下几点:① 已运行 codegraph init -i 初始化项目;② 已重启 AI 助手;③ 项目目录下存在 .codegraph/ 目录。
Q: 索引速度很慢?
A: 确保 node_modules 和其他大目录被 .gitignore 排除。超过 1MB 的文件会被自动跳过。
Q: MCP 连接报 “database is locked”?
A: 升级到最新版本(npm i -g @colbymchenry/codegraph@latest)。新版本使用 WAL 模式避免锁冲突。如果问题持续,检查项目是否在网络共享盘或 WSL2 /mnt 路径上。
Q: 可以在哪些 AI 助手中使用?
A: 目前支持 Claude Code、Cursor、Codex CLI、opencode 和 Hermes Agent。安装脚本会自动检测已安装的助手。
总结
通过本教程,你已经掌握了 CodeGraph 的核心用法:
- ✅ 安装 CodeGraph(一键脚本或 npm)
- ✅ 初始化项目索引
- ✅ 了解核心 MCP 工具(search、context、callers、callees、impact)
- ✅ 使用 CLI 工具进行符号搜索和影响分析
- ✅ 利用
codegraph affected实现智能测试选择
CodeGraph 的核心价值在于让 AI 助手直接查询代码语义,而不是盲目扫描文件。在大型代码库中,这意味着更低的 token 成本、更快的响应速度、更少的工具调用。
📖 官方仓库:github.com/colbymchenry/codegraph
📦 npm 包:@colbymchenry/codegraph
如何引用本文:本文基于 CodeGraph 官方 README(2026-05-22 验证)和 GitHub API 数据编写。基准测试数据引用自官方 README:平均 35% 更低成本、59% 更少 token、49% 更快速度、70% 更少工具调用。







