# ByteBell 开源了一套代码索引方案：用 LLM 给每个文件生成语义信息存进图数据库，比向量、语法树和暴力塞上下文都管用

> 原标题：We tried vectors, ASTs, and brute-force context stuffing for code retrieval. Graphs with LLM-generated semantics worked best. Here's what we learned.

- 来源：r/LocalLLaMA
- 发布时间：2026-05-10T12:12:00.000Z
- AX AI 日报：https://ai-daily.ax0x.ai/items/16798
- 原文：https://www.reddit.com/r/LocalLLaMA/comments/1t95a56/we_tried_vectors_asts_and_bruteforce_context/

## 摘要

他们试了三种路线：向量相似度搜代码、用抽象语法树（AST）结构化匹配、以及直接把代码块塞进大窗口模型。最后发现，让 LLM 先给每个文件提炼出用途、摘要、业务背景、实体、类、函数、关键词和依赖关系，存到 Neo4j 图数据库里，再用全文搜索去查，效果最好。正文没披露具体评测指标和对比数据，这点先别太激动。工程上有个省钱设计：用 SHA-256 比对文件...

## 推荐理由

我会先打个折：文章来自 Reddit 分享，没有给出系统性的对比数据和量化指标，所以不能当正式评测看。但它的价值在于把一条反直觉的工程结论讲清楚了——向量、AST、暴力塞上下文都试过，最后是语义图赢了。做法也够具体：逐文件跑 LLM 摘要写入 Neo4j，用 SHA-256 diff 做增量更新，只重建改过的文件。这对正在搭代码检索或 agent 的人是个直接可抄的思路，踩坑记录比方法论更有用。信息缺口是没披露用了哪个模型做摘要、图查询的延迟和成本也没给，这点先别太激动。

## 锐评

ByteBell 开源了一套代码索引方案，核心思路是让 LLM 先给每个文件提炼用途、摘要、业务背景、实体、类、函数、关键词和依赖关系，存进 Neo4j 图数据库，再用全文搜索去查，而不是靠向量相似度。他们对比了三种路线：向量搜、用抽象语法树做结构化匹配、以及直接把代码块塞进大窗口模型，最后图加语义这条路效果最好。

但正文没披露具体评测指标和对比数据，只说“效果最好”，这点没法验证。工程上有个省钱设计：用 SHA-256 比对文件变化，只对改过的文件重新调 LLM，调用量跟代码改动量挂钩，不是全量重建。

还缺几样东西：一是这套方案在多大代码库上跑过，延迟和成本怎么样；二是跟 Sourcegraph 这类现有工具比到底强在哪；三是全文搜索在图里的具体实现细节，比如索引策略和召回率。这些不补上，只能说方向有意思，落地还得自己踩坑。
