在 AI Coding 领域,Claude Code 做了一个反直觉的选择:它没有采用主流的 RAG(检索增强生成)方案,而是回归到了 grep、glob 和 read 这类基础 CLI 工具。这背后的核心考量在于代码检索与文档检索的本质差异。
核心矛盾
代码检索和文档检索的根本区别不在技术,而在目标:文档问的是"大概相关的有哪些",代码问的是"这一行具体在哪"。一个是找相似的,一个是找准确的——这是两条完全不同的路。
RAG 的本质缺陷
RAG 基于向量相似度,它的设计目标就是"找相似的"。但在代码场景,“相似"意味着错误:
- 语义混淆:getUserById 和 getUserByName 向量很近,但调错了就是 Bug
- 语法破坏:代码切片把函数拦腰截断,相似度再高也没用
- 索引滞后:刚改完的代码还没进索引,检索出来的是旧版本
RAG 在帮模型"猜"答案,但代码不能猜,必须准确。
Claude Code 的解法
Claude Code 彻底放弃"相似性检索”,改用精确匹配三件套:
- Grep:正则找一模一样的字符串
- Glob:精确锁定文件路径
- Read:完整读取,不切片、不截断
模型用这些工具自己去找准确的答案,而不是接收一堆"可能相关"的碎片去猜。
本质区别
不是"简单工具 vs 复杂工程"的技术选型,而是**“精确答案 vs 相似答案"的方法论分歧**。RAG 假设"差不多就行”,Claude Code 认为"代码必须准确"。
设计哲学
这不仅是技术选型,更是 Anthropic 对 Agent 设计哲学的押注:相信模型的自主决策能力,而非复杂的工程预设。与其用复杂的工程手段替模型"预判"上下文,不如给模型提供趁手的工具,让它自己犯错、修正并逼近真相。