🕸️ 代码知识图谱(CodeGraph):让 AI Agent 秒懂你的代码库

CodeGraph知识图谱AI 编码 ⭐ 13,021 stars

凌晨 3 点 17 分,我盯着那个 50 万行的代码库发呆。Claude Code 已经 tool call 了 200 次,token 用掉了 80%,它还在问:「这个函数在哪里调用过?」

那一刻我明白了——AI 编码 Agent 最大的瓶颈,不是模型不够聪明,而是它不认识你的代码。就像你让一个天才去修车,但他连扳手都没见过。

什么是 CodeGraph?

CodeGraph(colbymchenry/codegraph)是 2026 年 GitHub 最火的工具之一——一个预索引的代码知识图谱,专为 Claude Code、Codex、Cursor、OpenCode 等 AI 编码 Agent 设计。

它的核心承诺:更少 token,更少工具调用,100% 本地运行

为什么传统 RAG 不够用?

传统代码 RAG 的做法:把代码切成块 → 向量化 → 语义检索。问题是:

CodeGraph 工作原理

// CodeGraph 索引流程
代码库
  ↓
AST 解析(保留完整语法树)
  ↓
知识图谱构建
  ├── 节点:文件、类、函数、变量
  ├── 边:调用、继承、引用、依赖
  └── 属性:行号、参数类型、返回值
  ↓
向量化索引(语义 + 结构混合)
  ↓
本地存储(SQLite + 向量扩展)

OpenClaw 实战集成

🎯 场景:OpenClaw Agent 需要理解一个大型 monorepo,快速定位需要修改的代码位置,并生成准确的编辑。

1. 配置 CodeGraph 作为 OpenClaw 的代码索引后端

# openclaw.yaml
code_intelligence:
  provider: codegraph
  config:
    repo_path: /path/to/your/repo
    index_mode: hybrid  # 结构 + 语义
    db_path: ~/.openclaw/codegraph.db
    languages:
      - typescript
      - python
      - go

2. Agent 查询示例

// OpenClaw Agent 通过 CodeGraph 查询
const result = await agent.queryCodeGraph({
  question: "用户认证模块中,哪个函数处理 JWT 验证?",
  depth: 2,  // 查询深度:关系跳转次数
  includeCallers: true
});

// 返回:
// - 函数:verifyJWT() in auth/jwt.ts:42
// - 调用者:3 个函数
// - 相关文件:auth/middleware.ts, config/auth.ts
// - 依赖包:jsonwebtoken@9.0

性能对比

指标传统 RAGCodeGraph
Token 消耗高(需多次检索)低(一次图谱查询)
查询速度2-5 秒200-500 ms
结构理解❌ 无✅ 完整保留
本地运行部分✅ 100% 本地