2026年4月2日 19:30分,来腾讯会议(限30人)了解如何用Openclaw构建企业AI生产力
免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


我要投稿

RAG进化了,深扒Claude Code源码中RAG高级技巧

发布日期:2026-04-02 10:46:56 浏览次数: 1538
作者:PaperAGI

微信搜一搜,关注“PaperAGI”

推荐语

Claude Code颠覆传统RAG玩法,揭秘源码中四大反常识技巧,让检索增强生成进入操作系统级内存管理新时代。

核心内容:
1. 摒弃向量库的即时检索技术:用Glob和Grep实现更精准的代码定位
2. 巧妙的Prompt缓存经济学:将系统提示词分为静态前缀和动态后缀
3. Agent fork机制:通过继承系统提示词实现API缓存优化

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

嗨,我是PaperAGI,主要关注LLM、RAG、Agent等AI前沿技术,每天分享业界最新成果和实战案例。


本文基于对Claude Code源码的深入分析,揭示其如何将RAG从"外挂知识库"升级为"操作系统级内存管理"。

最近,Claude Code的源码被动开源,引发了广泛关注。在深入分析其源码后,我们发现它完全颠覆了传统RAG(检索增强生成)的玩法。传统RAG大多停留在"文档切分、向量库存储、相似度检索"的初级阶段,而Claude Code则通过一系列反常识的技巧,将RAG提升到了一个全新的高度。

本文将详细拆解Claude Code源码中四个关键的RAG高级技巧,这些技巧不仅改变了RAG的实现方式,更重新定义了RAG的本质。

不用向量库的-即时检索

传统RAG的第一反应往往是构建向量库:先对文档进行Embedding,存储到向量数据库,查询时再通过相似度检索召回。这一流程虽然直观,但带来了延迟、成本和准确率等多方面的挑战。

Claude Code的Explore Agent则完全摒弃了向量库。它作为一个纯读模式的代码探索专家,当主Agent需要了解某个模块、查找某个函数或理解某段逻辑时,不会去向量库中"搜相似",而是直接调用Glob和Grep进行实时搜索。

为什么这更有效?

  • 语义相似 vs 精确存在:向量库搜索的是"语义相似",在代码场景中,这可能导致两个完全不同的函数因注释相似而被召回,而真正需要的精确符号反而被忽略。而Glob和Grep搜索的是"精确存在",直接定位到具体的接口定义或模块文件。
  • 动态触发:这种检索不是提前做好的,而是在Agent思考过程中动态触发的。模型自己决定:我该搜什么?用什么工具搜?搜到后读哪个文件?
  • 更准更轻:这不再是传统意义上的RAG,而是"带工具的实时检索",它比RAG更准确、更轻量。

Prompt里藏着的-缓存经济学

很多人写系统提示词时,恨不得把所有规则、规范和例子都塞进去,导致Prompt越来越长,每次调用都消耗大量Token。

Claude Code的提示词设计则巧妙地按"能否缓存"进行了切分:

  • 静态前缀:包含身份定位、行为哲学、工具使用规范等在整个会话中基本不变的内容。这一部分可以被缓存,后续调用几乎不花成本。
  • 动态后缀:包含会话相关的信息,如当前打开的Skill、MCP工具的使用说明、Session-specific的临时指令。

精妙之处

这种设计将Prompt从文本变成了"可缓存的运行时资源"。更进一步,在Agent的fork机制中,Claude Code甚至刻意让子Agent继承主Agent的系统提示词和工具定义,以确保API请求的前缀字节完全相同,从而命中缓存。

这意味着Claude Code将Token视为需要精细管理的预算,而非无限消耗品。一个会"算账"的RAG系统,才可能真正在生产环境中高效运行。

向量索引预筛选->上下文压缩

传统RAG流程中,检索出的上下文往往过长,超出模型窗口限制。为此,通常会进行"预筛选",基于向量相似度或其他规则挑选最相关的几条信息。

Claude Code则采取了更聪明的做法:让模型自己压缩上下文

源码中存在明确的Session-specific guidance和Token预算管理逻辑。当上下文逼近窗口上限时,系统不会粗暴地删除旧消息,而是让模型将之前的对话、工具结果、中间产出压缩成一个结构化的"紧凑摘要"。这个摘要保留了关键信息,但去掉了冗长细节,可能将10000 Token的上下文压缩到2000 Token,而核心内容不丢失。

为什么这更优?

这相当于将RAG的"预筛选"从"检索阶段"移到了"模型消费阶段"。向量相似度永远无法准确判断"什么信息对当前任务重要",但模型自己知道。因此,模型的自压缩比外部预筛选更精准。

MCP不只是工具桥,还是行为说明注入通道

MCP(Model Context Protocol)通常被用作让模型调用外部工具的桥梁。但Claude Code的源码揭示了一个更深层的用法:MCP还能注入"如何使用工具的行为说明"。

prompts.ts中,有一个关键函数getMcpInstructionsSection()。该函数会遍历所有连接的MCP Server,如果某个Server提供了instructions字段,就会将这些说明直接拼进系统提示词中。

这意味着什么?

  • MCP不仅能注入工具,还能注入"工具使用规范"。例如,一个数据库MCP工具可以在instructions中写明:"查询时优先用索引字段,避免全表扫描;大批量数据要用分页,不要一次拉完。"
  • 这些说明成为系统提示词的一部分,直接影响模型的行为。
  • 这本质上是RAG的扩展:RAG的本质是把"外部知识"注入模型上下文,而MCP instructions做的是把"工具的使用知识"注入上下文。

这打破了RAG的边界——它不再局限于"搜网页、搜文档",而是可以扩展到"搜工具怎么用、搜系统怎么玩"的层面。

总结

Claude Code的这四个技巧,共同指向一个核心理念:RAG的本质不是"外挂知识库",而是"让模型在正确的时候,拿到正确的信息" 。

向量库只是实现这一目标的手段之一,而非唯一,甚至不一定是最好的。Claude Code通过实时检索、Prompt缓存、上下文压缩和MCP行为注入,构建了一个更智能、更高效的RAG系统。

如果你也在构建Agent系统,不妨思考一下:你的RAG是否还停留在"向量库+召回"的阶段?还是已经向"操作系统级内存管理"的方向迈进?

https://github.com/ultraworkers/claw-code

每天一篇大模型Paper来锻炼我们的思维~已经读到这了,别忘了点赞、关注噢

推荐阅读

杀手级优化来袭,DaPT用双流框架突破多跳RAG
谷歌最新重磅成果,TurboQ助力Token跟水一样便宜?
VST:用图谱引导流式思考,响应速度快15倍,已开源
无向量做Rag会更好,开源项目pageIndex值得借鉴
长期记忆的痛点,被微软PlugMem这个即插即用的框架给治好了
免费资源分享:MCP、RAG、Agent全都有,384页最全LLM落地指南

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询