跳转到内容
KN郑某某

OpenCode + CodeGraph:让 AI 代理不再浪费 Token 猜代码

为 OpenCode 配置 CodeGraph MCP,用预构建的知识图谱替代 grep+Read 探索,实测降低 35% 成本、减少 57% Token 消耗

AI 1 分钟阅读

用 OpenCode 写代码时,AI 代理面对一个大代码库最常见的行为是什么?疯狂 grep、glob、Read

它要先找到相关文件,再读进去,再找调用关系,再读另一个文件……每一步都在消耗 Token。对于”这个函数怎么工作的?“这类结构化问题,传统方式的探索路径往往需要几十次工具调用,而其中大部分花在了定位文件上,而不是理解代码。

CodeGraph 改变了这个模式:它预先用 tree-sitter 解析整个代码库,构建一个包含所有符号、调用关系、依赖结构的本地知识图谱,存储在 SQLite 数据库中。AI 代理不需要再扫描文件,直接查图就能拿到答案——通常零次文件读取

在 7 个真实开源项目上的基准测试(Claude Code,median of 4 runs):

指标平均提升
成本降低35%
Token 减少57%
速度提升46%
工具调用减少71%

部分项目的极端对比:

项目语言文件数Token 减少工具调用
VS CodeTypeScript~10k78%85%
ExcalidrawTypeScript~64090%96%
TokioRust~79086%92%

代码库越大,收益越明显。 在大型项目中,AI 代理可以通过几次 CodeGraph 查询直接拿到答案,而不需要像没有索引时那样展开十几个 grep/Read 探索。

  • 100% 本地运行 — 数据不离开你的机器,无 API 密钥,无外部服务
  • 确定性提取 — 基于 AST 解析,不是 LLM 摘要,结果准确可靠
  • 自动同步 — 文件变更后自动增量更新索引,无需手动干预
  • MCP 协议 — 与 OpenCode 等 AI 助手无缝集成

Terminal window
npx @colbymchenry/codegraph

安装程序会自动检测已安装的 AI 助手(包括 OpenCode),写入 MCP 配置和指令文件。

如果自动安装未检测到 OpenCode,可以手动添加配置。

配置文件位置

  • Windows: %APPDATA%/opencode/opencode.jsoncopencode.json
  • Linux/macOS: ~/.config/opencode/opencode.jsoncopencode.json

OpenCode 会优先使用 opencode.jsonc,如果已存在 opencode.json 则继续使用它。

添加以下内容到配置文件

{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"codegraph": {
"type": "local",
"command": ["codegraph", "serve", "--mcp"],
"enabled": true
}
}
}

Terminal window
cd your-project
codegraph init -i

这会创建 .codegraph/ 目录并索引项目代码。


OpenCode 会自动调用 CodeGraph 的 MCP 工具:

问题工具
”X 函数在哪里定义?“codegraph_search
”谁调用了这个函数?“codegraph_callers
”这个函数调用了什么?“codegraph_callees
”X 是如何到达 Y 的?“codegraph_trace
”改了这个会影响到哪些代码?“codegraph_impact
”给我看 Y 的源代码”codegraph_node
”我需要处理 XX 功能,相关代码有哪些?“codegraph_context

Terminal window
codegraph status # 查看索引状态
codegraph sync # 增量更新索引
codegraph query xxx # 搜索符号
codegraph callers xxx # 查找调用者
codegraph callees xxx # 查找被调用者

Q: 提示 “not initialized” A: 运行 codegraph init -i

Q: 符号找不到 A: 等待几秒自动同步,或手动运行 codegraph sync


相关:CodeGraph 官方文档 · Benchmark 详细数据

评论