代码库问答:两条检索路线

场景设计深水11讲解 2

对着私有仓库问,两条检索路线不是谁对谁错:索引检索(embedding + 符号索引)快但有新鲜度问题,代理式检索(agentic grep)新鲜但每次都要走一遍。仓库权限是前置过滤的又一个落点,代码的结构(符号、调用关系)比自然语言更值得建索引。

也叫:代码库问答 · 代码检索 · 符号索引 · agentic grep · 仓库问答

三、两条检索路线:不是谁对谁错,是两个不同的评价函数出自 T7-1

索引式:预先 embedding 全仓 → 查询时向量召回 → 塞进上下文。 代理式:不建索引 → 模型自己 grep、读文件、顺引用爬。

两边的官方理由,2026 年都摆到台面上了,但它们根本没在同一个指标上争论

索引式 代理式
主张 召回率:语义检索比纯 grep 的问答准确率平均高 12.5%(不同模型 6.5%–23.5%);一千文件以上的大仓,代码留存率 +2.6%;关掉之后「不满意的追问」增加 2.2% 新鲜度:embedding 流水线跟不上活跃团队的提交速度,开发者查询时拿到的是几小时甚至几周前的仓库快照
代价 索引陈旧、要把代码交出去做向量化、大仓索引与增量更新成本高 token 烧得多(agent 工作流里读取类操作占总 token 的 76.1%)、跨语义召回差(找「处理超时的地方」这类没有共同关键词的需求很吃力)
什么时候不该用 仓库高频变动、代码不能出网、只需要改一两个已知文件 大仓里做「跨模块语义搜索」、你自己也说不清关键词、成本敏感

没有第三方在同一 benchmark 上做过「纯 grep vs 纯 embedding」的公开对照实验,任何一方声称「被证明更好」都不成立。产品层面两条路线已在合流:代理式那边在做更快的 grep 原语,索引式那边配了只回摘要的探索子 agent。

以上节选自T7-1 从「AI 帮我写」到「我带 AI 干」——工具形态、上下文预算与人的位置,读全文能看到前后语境。

延伸阅读

考这个知识点的题1

会连带问到10