Graphify项目将Karpathy 知识库方法从理论推到生产

导读: 当安德烈·卡帕西(Andrej Karpathy)在几天前分享他的“raw/”文件夹工作流时,整个AI圈都在感叹这种“LLM Wiki”模式的降维打击能力。但痛点也显而易见:脚本零散、手动整理累、Token消耗高。48小时内,一款名为 Graphify 的开源项目冲上GitHub热榜,不仅实现了全自动化,更通过结构化编译实现了 71.5倍 的Token节省。本文带你深度拆解这款“卡神模式完全体”工具。

从“黑盒”RAG到“透明”Wiki

长期以来,我们处理本地文档的标配是RAG(检索增强生成)。但RAG有个致命伤:它是“无状态”的。你问同一个问题十次,它就得从向量数据库里检索十次、合成十次,知识永远无法“沉淀”。

卡帕西提出的 LLM Wiki 理念彻底扭转了这一局面:

  1. Raw层:只存论文、代码、截图等原始资料,作为不可变的“真理来源” 。
  2. Wiki层:由LLM自动编译生成的Markdown文档,带交叉引用、双向链接 。
  3. Schema层:定义维护规则,像对代码进行Lint检查一样定期“体检”知识库 。

思路无敌,但卡神自己也承认,这目前还是“一套零散的脚本” 。而 Graphify 的出现,直接把这套理念封装成了生产力工具,迅速冲到10.3K star。

Graphify实测 (为什么说它是“完美实现”?)

Graphify不仅仅是写几个脚本,它在工程化上做了三件大事:

1. 全模态自动化“入谱”

你不需要手动分类资料。Graphify内置了一套多模态处理管线:

  • 代码:支持包括Python、Rust、Go在内的19种语言,利用 Tree-sitter 进行本地AST解析,精准提取类、函数及调用关系,这部分零Token消耗 。
  • 文档/论文:自动识别PDF、Markdown中的核心实体 。
  • 视觉:直接调用 Claude Vision 识别架构图、流程图甚至白板照片,将其转化为图谱节点 。

2. 71.5倍Token消耗优化

卡帕西曾抱怨大部分Token都花在重复读取背景资料上 。 Graphify采用了“一次编译,多次查询”的逻辑:

  • 双阶段编译:先在本地完成确定性的AST解析,再由并行子代理进行语义提取 。
  • SHA256缓存机制:只有改动过的文件才会重新跑LLM,没动的直接读缓存 。
  • 数据压缩:在对52个混合文件(代码+论文+图片)的实测中,Graphify将查询成本降到了原始文件读取的 1.4% 。

3. 告别向量数据库

Graphify不需要部署复杂的向量数据库,它基于 Leiden社区发现算法 进行图拓扑聚类 。 简单说,它通过计算概念之间的“连接密度”自动划分主题簇。这种方式比单纯的向量相似度更擅长处理“多步推理”。例如,它能通过关系路径直接告诉你:为什么论文A的算法会影响到代码B的架构决策 。

快速上手指南

Graphify实现了全平台适配,无论你用的是 Claude CodeCodex 还是 OpenClaw

1. 安装: 目前PyPI包名暂为 graphifyy(带双y):


pip install graphifyy && graphify install

2. 针对特定平台优化(以OpenClaw为例):

graphify install —platform claw

注:如果你是Codex用户,别忘了在 ~/.codex/config.toml 里开启 multi_agent = true 以激活并行模式 。

3. 一键生成: 进入你的资料文件夹,在AI Agent中输入:

/graphify  .

我在我的obsidian知识库Claudian插件(使用Claude Code)中输入了这个命令,工具自动发现了所有的文件包括图片:

它将知识库文件分成多个chunk进行语义抽取分析。不过从我的结果来看,有4个chunk 遇到了error,没看出为什么,不过它还是跑完了全过程。

完成后,它利用 Tree-sitter 进行本地AST解析。

执行完后,目录里会多出一个 graph.html。

执行完后,目录里会多出一个 graph.html。在浏览器打开,你就能看到一个可交互的、带节点缩放和社区过滤的知识图谱 。

进阶玩法:Git仓库变成活的知识库

Graphify最贴心的一点是它的 Git集成

  • --watch 模式:你改了代码,它立刻重跑本地AST更新图谱 。
  • Git钩子:通过 graphify hook install,每次 commit 或切换分支后,图谱会自动更新。这意味着你的AI助手永远不会基于旧版本的代码逻辑跟你聊天 。

还有更多的玩法等你解锁:

/graphify                          # run on current directory
/graphify ./raw                    # run on a specific folder
/graphify ./raw --mode deep        # more aggressive INFERRED edge extraction
/graphify ./raw --update           # re-extract only changed files, merge into existing graph
/graphify ./raw --cluster-only     # rerun clustering on existing graph, no re-extraction
/graphify ./raw --no-viz           # skip HTML, just produce report + JSON
/graphify ./raw --obsidian                          # also generate Obsidian vault (opt-in)
/graphify ./raw --obsidian --obsidian-dir ~/vaults/myproject  # write vault to a specific directory

/graphify add https://arxiv.org/abs/1706.03762        # fetch a paper, save, update graph
/graphify add https://x.com/karpathy/status/...       # fetch a tweet
/graphify add https://... --author "Name"             # tag the original author
/graphify add https://... --contributor "Name"        # tag who added it to the corpus

/graphify query "what connects attention to the optimizer?"
/graphify query "what connects attention to the optimizer?" --dfs   # trace a specific path
/graphify query "what connects attention to the optimizer?" --budget 1500  # cap at N tokens
/graphify path "DigestAuth" "Response"
/graphify explain "SwinTransformer"

/graphify ./raw --watch            # auto-sync graph as files change (code: instant, docs: notifies you)
/graphify ./raw --wiki             # build agent-crawlable wiki (index.md + article per community)
/graphify ./raw --svg              # export graph.svg
/graphify ./raw --graphml          # export graph.graphml (Gephi, yEd)
/graphify ./raw --neo4j            # generate cypher.txt for Neo4j
/graphify ./raw --neo4j-push bolt://localhost:7687    # push directly to a running Neo4j instance
/graphify ./raw --mcp              # start MCP stdio server

# git hooks - platform-agnostic, rebuild graph on commit and branch switch
graphify hook install
graphify hook uninstall
graphify hook status

# always-on assistant instructions - platform-specific
graphify claude install            # CLAUDE.md + PreToolUse hook (Claude Code)
graphify claude uninstall
graphify codex install             # AGENTS.md (Codex)
graphify opencode install          # AGENTS.md (OpenCode)
graphify claw install              # AGENTS.md (OpenClaw)
graphify droid install             # AGENTS.md (Factory Droid)

# query the graph directly from the terminal (no AI assistant needed)
graphify query "what connects attention to the optimizer?"
graphify query "show the auth flow" --dfs
graphify query "what is CfgNode?" --budget 500
graphify query "..." --graph path/to/graph.json

好奇一下作者

Graphify的作者 Safi Shamsi 是伦敦Valent公司的AI研究员 。 他之前的研究方向是利用多模态知识图谱进行医疗诊断(MICAD 2025) 。那种在严苛的医疗场景下打磨出的、对知识来源透明度(标注 EXTRACTED 还是 INFERRED)和溯源的极致要求,被完美平移到了这款工具中 。

结语

从卡帕西提出想法到Graphify爆火,短短几天时间,我们见证了AI工具链从“对话式”向“编译式”的进化。

如果你也受够了RAG的丢三落四和居高不下的Token账单,Graphify或许就是你一直在找的那个“外挂大脑”。

项目地址: https://github.com/safishamsi/graphify

我将继续使用Graphify ,之后会分享进一步的经验,欢迎在评论区交流。