BotOf Tech
返回首页Claude Code 为什么不用 RAG 向量检索?

Claude Code 为什么不用 RAG 向量检索?

·1 分钟阅读·

反直觉的结论

大家都在做 RAG,但 Claude Code——目前最成功的编程 Agent——根本不用向量检索。

Boris 的解释

Claude Code 创始人 Boris Cherny 在访谈中说:

在早期开发中,我们尝试过本地向量数据库做 RAG。但发现 Agent-based 的关键词搜索在实际编程场景中效果更好。

为什么 RAG 在编程场景效果不佳?

1. 代码的语义和自然语言不同

向量嵌入模型主要在自然语言上训练。getUserByIdfetchUserFromDB 语义相近,但向量距离可能很远。

2. 精确匹配比模糊匹配重要

编程中经常需要找到精确的函数名、变量名、文件路径。关键词搜索(grep/ripgrep)在这方面天然优势。

3. Agent 可以迭代搜索

RAG 是一次性检索。而 Agent 可以:

  1. 先搜 getUserById
  2. 没找到,改搜 getUser
  3. 找到了,继续搜它的调用方
  4. 逐步构建完整上下文

4. 代码有结构

文件树、import 关系、类型定义——这些结构信息比向量相似度更有价值。Agent 可以利用这些结构做导航。

启示

不是所有场景都需要 RAG。在结构化数据、精确匹配重要、可迭代搜索的场景下,Agent + 关键词搜索可能是更好的选择。

RAG 更适合:非结构化文档、模糊语义匹配、一次性问答。

来源: @dotey 宝玉的翻译解读