杠精派
派聪明
0/512

热门评论

粗心的超短裙 2026年09月04日 12:16
引用原文:RAG 检索代码的五个问题
@派聪明 cli不是有引入RAG吗
点赞
回复3 取消回复
派聪明 2026年09月04日 12:16
# 关于"Claude Code 是否引入过 RAG" 您观察得很仔细!文章标题说“RAG检索代码的五个问题”,但内容中实际上只详细展开了**三个问题**: 1. **语义相似度对代码失效**——代码需要精确匹配(函数名、方法签名),而不是“语义接近”的模糊匹配2. **索引同步成本高**——代码频繁变化,索引需要增量更新、文件监听,复杂度超过 RAG 本身3. **安全和隐私**——代码发到外部生成 Embedding 有泄露风险,本地部署 Embedding 又需要算力标题写“五个”可能是笔误或删减了内容。 ## 关于“CLI 不是引入过 RAG吗” 您说得对,文章第04节明确提到:**Claude Code早期版本确实用过 RAG**。 - Anthropic首席工程师 Boris Cherny 在2025 年5 月的 Latent Space播客中透露,早期用的是 **Voyage 的 Embedding模型** + 本地向量索引- 后来他们尝试了 **Glob + Grep + Read 的 Agentic Search 方式**,发现效果全面碾压 RAG(原话:"outperformed everything, by a lot") - 于是正式放弃了 RAG,转向无索引的 Agentic Search所以准确的说法是:**Claude Code 曾经用过 RAG,但后来放弃了,现在采用的是基于 ripgrep 的关键词搜索 + LLM 多轮推理的架构**。文章讲的正是“为什么放弃 RAG”的原因分析。
点赞
回复 取消回复
展开剩余 2 条回复

18 条评论

粗心的超短裙 2026年09月04日 15:35
引用原文:设计了 Agent 多轮迭代搜索策略,通过 Glob→Grep→Read 的工具链实现代码上下文的逐步聚焦,搜索精确率达到 95% 以上
@派聪明 我问的是我们这个项目里,用的不是普通grep和RAG吗
点赞
回复1 取消回复
派聪明 2026年09月04日 15:36
不是的,这个项目恰恰**没有用 RAG**,用的也不是 Linux 上普通的 GNU grep,具体来说: **1.没有向量数据库和 Embedding** Claude Code 的代码搜索架构(Agentic Search)完全没有 RAG 的那一套:没有向量数据库、没有 Embedding模型、没有索引构建、没有 Chunk 分片。官方(首席工程师 Boris Cherny)说过早期版本确实试过 RAG(用 Voyage 的 Embedding做本地向量索引),但换成 Glob + Grep + Read 后效果全面碾压 RAG,就放弃了。 **2. Grep底层是 ripgrep,不是普通 grep** Grep工具底层用的是 **ripgrep**——一个用 Rust 编写的高性能搜索工具: - 基于 Rust 正则引擎 + SIMD指令集加速,速度接近内存带宽极限- 中型仓库(几万文件)全文搜索约200ms-默认递归搜索、自动跳过 .gitignore 和二进制文件、输出自带文件名和行号- Claude Code 还在其上封装了保护机制(head_limit默认250 行、超时尽力返回部分结果) **3. 为什么不用 RAG而用这套方案** -代码是符号精确的文本,精确匹配比语义相似度更重要(`createD1HttpClient` 和 `buildD1HttpClient`语义接近但可能是完全不同的函数) - 无需索引同步:代码随时在变,grep搜的永远是磁盘上的实时内容- 安全:代码不出本地,不用发给远程 Embedding API- LLM 本身充当 Reranker,根据第一轮结果动态调整后续搜索策略,多轮迭代逐步聚焦所以准确地说:**是 Glob(文件名匹配)+ Grep(基于 ripgrep 的内容搜索)+ Read(读取文件)三者组成的多轮迭代搜索,完全绕开了 RAG**。
点赞
回复 取消回复
粗心的超短裙 2026年09月04日 15:34
引用原文:设计了 Agent 多轮迭代搜索策略,通过 Glob→Grep→Read 的工具链实现代码上下文的逐步聚焦,搜索精确率达到 95% 以上
@派聪明 我问的是我们这个项目里,用的不是普通grep和RAG吗
点赞
回复1 取消回复
派聪明 2026年09月04日 15:34
这是个好问题,其实这里有个关键区别需要澄清: **Claude Code(以及文章说的 Agentic Search架构)没有用 RAG,用的是 ripgrep,不是普通 grep。** 具体来说: 1. **不是普通 grep**:Claude Code 的 Grep工具底层用的是 **ripgrep**(Rust 编写的高性能搜索工具),它比 Linux 的 GNU grep 快得多——通过 SIMD指令集加速,在中型代码仓库全文搜索约200ms,且默认递归搜索、自动跳过 .gitignore 和二进制文件。 2. **不是 RAG**:Anthropic官方(首席工程师 Boris Cherny)明确说过,Claude Code早期版本确实用过 RAG(Voyage 的 Embedding模型 + 本地向量索引),但后来换成 Glob + Grep + Read 的 Agentic Search 后,效果“全面碾压”RAG,就把 RAG去掉了。原因包括:代码搜索要精确匹配而非语义相似、索引同步成本高、代码隐私安全问题等。 所以简历里那条描述的准确理解是:**用“ripgrep工具 + LLM推理”替代了 RAG检索**——LLM 自己充当了 Reranker 的角色,根据第一轮搜索结果动态决定下一步搜什么、读哪个文件,形成多轮迭代。 如果面试官问起来,你可以这样回答:“我们没有用传统的 RAG(无向量数据库、无 Embedding、无索引),而是用 ripgrep做精确检索,让 LLM 通过多轮工具调用(Glob→Grep→Read)自主完成搜索策略的调整,这样搜索永远是实时的,也没有索引同步和代码外发的隐私问题。”
点赞
回复 取消回复
粗心的超短裙 2026年09月04日 15:33
引用原文:设计了 Agent 多轮迭代搜索策略,通过 Glob→Grep→Read 的工具链实现代码上下文的逐步聚焦,搜索精确率达到 95% 以上
@派聪明 cli里不是普通grep加RAG检索吗
点赞
回复1 取消回复
派聪明 2026年09月04日 15:33
不是的,根据文章内容,Claude Code **没有使用 RAG**,用的是纯工具调用式的 **Agentic Search**架构: **实际架构:Glob + Grep + Read 三件套** - **Glob**:按文件名模式匹配(如 `**/*.java`),结果按修改时间排序- **Grep**:文件内容搜索,底层是 Rust 编写的 **ripgrep**(非 GNU grep) - **Read**:读取具体文件内容,支持指定行号范围**为什么不用 RAG?**(Anthropic首席工程师 Boris Cherny 在2025 年5 月播客中的说法): 1. Claude Code早期版本确实用过 RAG(Voyage Embedding + 本地向量索引),但效果“还行” 2.换成 Glob→Grep→Read 后,各项指标全面碾压 RAG(原话 "outperformed everything, by a lot") 3.核心原因: - **代码不是自然语言**:`handleAuth` 和 `validateJwtToken`语义不相关但存在调用关系,grep精确匹配能找到,向量相似度找不到 - **索引同步成本高**:代码频繁变动,向量索引需要增量更新、文件监听;grep搜的永远是磁盘上此刻的文件 - **安全隐私**:RAG 需要 Embedding模型(远程 API 要把代码发出去,本地部署费算力),grep纯本地搜索 - **性能**:ripgrep搜中型仓库约200ms;RAG链路要 Embedding → 向量检索 → Rerank,多次网络往返**亚马逊2025 年论文也佐证**:《Keyword search is all you need》——纯关键词搜索的 Agent系统能达到 RAG 系统90% 以上的性能,且对代码这类符号精确文本,关键词搜索反而更好。 **多轮迭代的意义**:LLM充当 Reranker +决策者——第一轮 Grep 发现函数调用后,顺藤摸瓜搜函数定义,再 Read读取细节,逐步聚焦上下文。这是 RAG“一次检索”做不到的。 >补充:Cursor 是 IDE 产品,确实用了向量检索,但是 **grep +语义搜索的混合检索**,结论也是“两者配合最好
点赞
回复 取消回复
粗心的超短裙 2026年09月04日 12:16
引用原文:RAG 检索代码的五个问题
@派聪明 cli不是有引入RAG吗
点赞
回复3 取消回复
派聪明 2026年09月04日 12:16
# 关于"Claude Code 是否引入过 RAG" 您观察得很仔细!文章标题说“RAG检索代码的五个问题”,但内容中实际上只详细展开了**三个问题**: 1. **语义相似度对代码失效**——代码需要精确匹配(函数名、方法签名),而不是“语义接近”的模糊匹配2. **索引同步成本高**——代码频繁变化,索引需要增量更新、文件监听,复杂度超过 RAG 本身3. **安全和隐私**——代码发到外部生成 Embedding 有泄露风险,本地部署 Embedding 又需要算力标题写“五个”可能是笔误或删减了内容。 ## 关于“CLI 不是引入过 RAG吗” 您说得对,文章第04节明确提到:**Claude Code早期版本确实用过 RAG**。 - Anthropic首席工程师 Boris Cherny 在2025 年5 月的 Latent Space播客中透露,早期用的是 **Voyage 的 Embedding模型** + 本地向量索引- 后来他们尝试了 **Glob + Grep + Read 的 Agentic Search 方式**,发现效果全面碾压 RAG(原话:"outperformed everything, by a lot") - 于是正式放弃了 RAG,转向无索引的 Agentic Search所以准确的说法是:**Claude Code 曾经用过 RAG,但后来放弃了,现在采用的是基于 ripgrep 的关键词搜索 + LLM 多轮推理的架构**。文章讲的正是“为什么放弃 RAG”的原因分析。
点赞
回复 取消回复
展开剩余 2 条回复
Akaina 2026年09月02日 15:10
@派聪明 当前PaiCli有做RAG的索引同步吗,如果代码更新了咋办
点赞
回复1 取消回复
派聪明 2026年09月02日 15:10
根据参考资料的介绍,PaiCLI 采用的是 **Agentic Search架构**,**没有做 RAG 的索引同步**——因为它根本就没有索引。 **核心机制:** - PaiCLI 基于 ripgrep做代码检索,ripgrep 直接读取磁盘上**此时此刻**的文件内容,搜索的永远是最新状态-代码更新了不需要任何处理:改了方法名,搜索结果立刻就是新的;新增了文件,下次搜索自然能找到;删除了类,也不会出现“幽灵索引” **这正是不用 RAG 的关键优势之一:** 传统 RAG需要维护索引与代码的实时同步(增量更新、文件监听、冲突处理),这套机制的复杂度比 RAG 本身还高,而且容易出现索引滞后——刚改的方法名,索引里还是旧的。 而 grep 类方案天然不存在这个问题,**零同步成本**,打开任何代码仓库直接搜,没有“初始化索引”的步骤。 **补充:** Claude Code官方也验证过这条路——他们早期用过 RAG(Voyage Embedding + 本地向量索引),后来换成 Glob + Grep + Read 的方式后,各项指标全面超越 RAG。亚马逊的论文也证明关键词搜索可达 RAG 系统90% 以上的性能,且对代码这类精确符号文本效果更好。
点赞
回复 取消回复
Akaina 2026年09月02日 15:10
@派聪明 当前PaiCli有做RAG的索引同步吗,如果代码更新了咋办
点赞
回复1 取消回复
派聪明 2026年09月02日 15:10
# PaiCli 的索引同步问题根据 Agentic Search架构(Claude Code 同款方案),**PaiCli根本不需要做索引同步**,因为它是“无索引”架构。 ## 为什么不需要同步? 传统 RAG 需要:Embedding 向量化 → 向量数据库存储 →代码变更时增量更新索引 →处理同步冲突。 而 PaiCli 采用的是 **Glob + Grep + Read** 的实时搜索方式: 1. **Grep搜索的是磁盘上的实时文件**——代码改了,下次搜索结果自然就是新的,天然不存在“索引过期”问题2. **没有索引构建过程**——打开任何代码仓库直接开始搜,没有“初始化索引”等待时间3. **没有向量数据库**——省去 Embedding调用、增量更新、文件监听等一整套复杂机制##代码更新后会发生什么? -刚改了方法名 → grep搜到的就是新名字- 新增了文件 → 下次 Glob/Grep立即可见-删除了类 →搜索结果中不会再出现**零延迟、零同步成本、零一致性风险**,这也是 Claude Code放弃早期 RAG 方案(Voyage Embedding + 本地向量索引)的核心原因之一。 ##唯一的注意点搜索结果是基于调用那一刻的磁盘状态,如果 Agent 在长任务执行期间代码被外部修改,已读入上下文的旧内容不会自动刷新。这在实践中影响很小,Agent 多轮搜索时会不断拿到最新文件内容。
点赞
回复 取消回复
过时的草莓 2026年08月20日 13:42
引用原文:RAG 的索引
介绍一下@派聪明
点赞
回复1 取消回复
派聪明 2026年08月20日 13:42
这是我从文章中选择的一段文本:"RAG 的索引" 介绍一下 当前模型还在开发当中,请右上角下拉框切换到其他模型
点赞
回复 取消回复
狂野的大炮 2026年07月14日 20:27
引用原文:Rust
@派聪明 这是什么
点赞
回复1 取消回复
派聪明 2026年07月14日 20:27
这是你之前分享的那篇文章中提到的一个**编程语言名称**。 在文章里,“Rust”指的就是 **Rust 语言**。作者提到,Claude Code 使用的搜索工具 **ripgrep** 就是用 Rust 写的,并且特别强调了 Rust 的性能优势: > *"ripgrep,一个用 Rust 写的现代搜索工具……这个引擎用了 SIMD 指令集加速,简单说就是用 CPU 的矢量计算单元来做文本匹配,搜索速度能逼近内存带宽的极限。"* 简单总结:**Rust 是 ripgrep 的底层编程语言**,它让 ripgrep 跑得又快又稳,这是 Claude Code 能快速搜代码的关键技术基础之一。
点赞
回复 取消回复

目录