代码库问答:两条检索路线
对着私有仓库问,两条检索路线不是谁对谁错:索引检索(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 道
- Q1-11什么是上下文工程?它和提示词工程是什么关系?
- Q1-12什么是 context rot?为什么上下文越长模型反而变笨?
- Q1-14Prompt 缓存是什么原理?怎么设计 prompt 才能「缓存友好」?
- Q2-09为什么纯向量检索会漏召回?什么 query 天生适合 BM25?
- Q2-23知识库更新了,向量索引怎么增量更新?删除的文档怎么办?
- Q7-01你平时怎么用 AI 写代码?讲一个省了一天的例子和一个翻车的例子
- Q7-02给 AI 编程工具喂上下文有什么讲究?为什么整仓塞进去反而更差?
- Q7-08AI 这么能写代码了,你的价值是什么?
- Q8-02设计企业内部知识库助手:不同部门的权限隔离怎么做?
- Q8-09你的方案预算砍一半,先砍什么?