乐于分享
好东西不私藏

构建你的 AI 代码知识库:让 AI 真正"看懂"你的代码

构建你的 AI 代码知识库:让 AI 真正"看懂"你的代码

目标:让一个完全没用过 Obsidian 的人,一步步搭出"丢进去就能问 AI、还能自己长出知识图谱"的代码知识库。本文按"小白视角"组织:每一步都告诉你要装什么、为什么装、装完干嘛。所有命令直接复制粘贴即可。


先说痛点:你现在遇到的问题,这套方案能解决

如果你用 AI 辅助编程有一段时间了,大概率遇到过这三个真实的痛:

痛点一:AI 每次都"失忆"——上下文窗口不够用

每次新建会话,AI 就把之前的所有理解忘光了。一个 20 万行的大型 repo 大约等于 500 万 token,没有任何模型能一次性装下。于是:

  • 你花了 20 分钟让 AI 理解了一个模块的架构
  • 关掉会话再开,AI 又是"一脸懵"状态
  • 大项目一次性喂给 AI,根本装不下

痛点二:AI 不知道"谁调了谁"——调用关系盲区

这是最致命的痛。当你让 AI 帮忙重构一个函数时,AI 完全不知道这个函数被多少个地方调用、谁调用了它。比如一个核心函数被 47 个地方调用,改了可能影响十几个模块,但 AI 根本不知道这些关系。结果就是:

  • 部分地方重复计算,部分地方漏算
  • 单元测试失败却不知道要更新哪些测试用例
  • 改了一处代码,不知道会炸哪里

痛点三:改完代码,AI 找不到北——影响范围未知

传统 Agent 工作流是这样的:

列目录 → 搜关键词 → 打开文件 → 猜入口点 → 发现不对 → 再搜一轮……

AI 把大量推理预算花在了"找路"上,而不是理解业务链路本身。RAG(向量检索)方案听起来美好,但在代码场景下有三个根本缺陷:

❓ RAG 在代码场景的缺陷
📌 具体表现
代码不是自然语言,语义相似度不管用
向量相似度搜索找到的是"长得像的代码",找不到"谁调用谁"
切块破坏语义
一个函数刚好卡在边缘被劈成两半,embedding 看到的半截函数语义完全错误
丢失调用关系
纯向量检索能找到"相似代码",找不到"某个函数是被谁触发的"

那怎么办?

把文本命中问题升级为结构导航问题

Graphify 用 tree-sitter 本地解析代码结构(不调 API,零 token 消耗),再用 Claude 子代理提取语义关系,两层叠加实现了"既快又准"的代码理解。52 个文件测试中,每次查询 token 降低 几十倍

这就是本文要搭的三件套——它解决的不是某一个点,而是一整条链路:

个人痛点 → AI 失忆症反复消耗 token 
项目痛点 → 大代码库理解成本爆炸 
公司痛点 → 架构知识随人离职断代流失           
↓ 一套方案 → 永久记忆 + 几十倍降本 + 知识沉淀

一、为什么是这三件套

🧰 工具
👤 角色
⚡ 一句话功能
Obsidian
笔记容器
本地存 Markdown,自动生成双链/图谱
Graphify
知识图谱生成器
把整个 vault 跑成可交互图谱
Claude Code
AI 引擎
终端里跑 Claude,可读写 vault 里的文件

逻辑链(代码库 → Obsidian 知识):

本地代码库     ↓  
graphify 建图 Obsidian/vault/graphify-out/graph.html + GRAPH_REPORT.md     ↓  
claude code 对话 自然语言问答 / 定位代码 / 理解架构

二、安装前准备(5 分钟)

1. 安装 Python(3.10+)

Graphify 和 Code2Prompt 都基于 Python。

  • 官网:https://www.python.org/downloads/
  • 装完验证:终端输入 python --version,看到 Python 3.10 及以上即可

2. 安装 Node.js(18+)

Claude Code 基于 Node.js。

  • 官网:https://nodejs.org/(下载 LTS 版)
  • 装完验证:终端输入 node --version 和 npm --version

3. 准备 API Key

任选其一:

💎 方案
🎯 适合人群
💰 成本
Claude Pro 订阅
想省事、稳定
$20/月
官方 API Key
按量计费
$5-20/月

设置环境变量(Mac/Linux):

export ANTHROPIC_API_KEY="sk-ant-xxx"

三、安装 Obsidian(2 分钟)

1. 下载

  • 官网:https://obsidian.md/download
  • 支持 Win / Mac / Linux / iOS / Android

2. 创建 Vault

打开 Obsidian → 点击「创建新仓库」→ 选个本地文件夹 → 命名(比如 my-code-brain)。

小贴士:把 vault 放云同步文件夹(iCloud / OneDrive)可多端同步。


四、安装 Claude Code(3 分钟)

终端里逐行执行:

# 全局安装 npm install -g @anthropic-ai/claude-code  # 验证 claude --version

第一次跑 claude 会要求登录授权,按提示走完。

验证装好没

mkdir test-claude && cd test-claude claude > 你好,告诉我今天日期

能正常回答 = 装好了。


五、安装 Claudian(Obsidian 内的 Claude)

不喜欢敲命令?装这个。装好之后 Obsidian 右侧直接出 AI 面板。

1. 装 BRAT(第三方插件管理器)

  1. Obsidian → 设置(左下齿轮)→ 第三方插件
  2. 关闭「受限模式」
  3. 点「浏览」→ 搜 BRAT → 安装并启用

2. 通过 BRAT 装 Claudian

  1. Cmd/Ctrl + P
     打开命令面板
  2. 输入 BRAT: Add a beta plugin
  3. 粘贴:YishenTu/claudian
  4. 启用 Claudian

3. 启用

重启 Obsidian,右侧出现 🤖 面板 = 成功。


六、安装和使用 Graphify

Graphify = 给代码库加结构索引。代码部分用 tree-sitter 零 token 抽 class/function/import,文档部分用 Claude 子代理提语义。两层叠加 = 既快又准。

1. 安装

建议命令完全用 claude code 执行

# 装 CLI(包名是 graphifyy,双 y) pip install graphifyy 
# claude 安装 graphify install 
# 让 claude 始终优先使用图谱 graphify claude install

装好之后你完全不用记命令——跟 Claude Code 说"更新知识库"就行。

2. 对代码库生成图谱

cd ~/my-code              # 必须在代码库根目录 
claude /graphify build           # 全量构建(首次或大幅变更时用) 
/graphify hook install    # 在 commit 和切分支后重建图谱 
/graphify  --update       # 增量更新代码内容到图谱

Graphify 对代码库做两件事:

⚙️ 阶段
🛠️ 做什么
📊 消耗
阶段 1(代码)
tree-sitter 解析代码 → 抽 class / function / import
零 token
阶段 2(文档)
Claude 子代理处理 MD + 提取语义关系
正常 API 调用
阶段 3(聚类)
Leiden 算法聚类
零 token

💡 代码提取是免费的——Graphify 用 tree-sitter 本地解析 12 种语言(Python/JS/TS/Go/Rust/Java/C/C++/Ruby/C#/Kotlin/Scala/PHP),不调 API。token 只花在文档/PDF/图片的语义提取上。

耗时参考

  • 1k 行代码:< 1 分钟
  • 1万行:3-5 分钟
  • 10万行:10-20 分钟

输出 3 个文件

📄 文件
🎯 用途
graphify-out/graph.html
可交互代码图谱(点节点看类/函数 + 来源行)
graphify-out/GRAPH_REPORT.md
文字报告:核心类 / 意外依赖 / 建议提问
graphify-out/graph.json
原始数据(程序化查询类/函数位置)

graphify-out/graph.html

graphify-out/GRAPH_REPORT.md

graphify-out/graph.json

3. 查询代码

直接代码库中使用

cd /my-code 
/graphify claude install  # Claude每次优先读取图谱,推荐安装 
claude > UserService 在哪个文件?它被谁调用?

装了 graphify claude install 后,Claude Code 会自动先用图谱上下文再回答。

结合 obsidian 使用

graphify 输出的文件都拷贝到 obsidian 的仓库里,然后 @ 这个仓库进行提问即可

@obsidian目录 自然语言询问代码问题

claude 根据图谱中的索引去查找本地的源代码目录,然后回答你的问题。

七、延伸阅读

按"代码库 → Obsidian 知识"这条主线,分类整理的官方资料:

理念源头

📚 资料
📖 说明
Karpathy 原始 Gist
LLM Wiki 想法的最早提出
DAIR.AI 架构详解
4 阶段(Ingest / Compile / Query / Lint)架构图

3 个工具的官方文档

🛠️ 工具
📖 文档
Obsidian
help.obsidian.md
Claude Code
docs.anthropic.com/claude-code
Graphify
github.com/safishamsi/graphify
Claudian
github.com/YishenTu/claudian

三句话总结本文解决的痛点:

👤 角色
✨ 解决了什么问题
个人
不再重复理解代码,AI 拥有永久记忆,token 成本降低 几十倍
项目
大代码库秒级查询,调用关系一览无余,改完代码知道会炸哪里
公司
架构决策从"个人脑子"变成"可查询的知识资产",不怕员工离职