微信扫码
添加专属顾问
我要投稿
从RAG到智能体搜索,一次关于AI信任的认知跃迁:当复杂优化遇到简单真理,工程师如何重新思考问题本质?核心内容: 1. RAG技术在实际应用中的结构性缺陷与优化困境 2. 一条推文引发的认知转变:复杂度不等于价值 3. 智能体搜索(agentic search)如何突破传统检索的思维局限
"早期版本的 Claude Code 采用了 RAG + 本地向量数据库的方案,但我们很快发现智能体搜索(Agentic search)的效果通常更好。" —— Boris Cherny, Claude Code 之父
2025 年底,我的知识库出了问题。
2400 多份文档,涵盖产品文档、技术笔记、内部 Wiki。问题不是"存不下",而是"找不到"。
用户问"MCP 怎么配置",系统返回的是 CNB 平台的文档,而不是 CodeBuddy 的配置指南。明明答案就在库里,但向量检索就是找不准。
于是我做了所有"正确"的事:分析瓶颈、设计管道、规划迭代。五步优化方案,预估 3-5 天实施,复杂但看起来很"专业"。
然后,Boris Cherny 发了一条推文。
这条推文没有指出技术错误,却让我意识到一件事——复杂度不是价值,是成本。
先说 RAG 是什么。RAG(Retrieval-Augmented Generation)是一种让 AI 更聪明的技术:先用向量检索找到相关文档,再让大模型基于这些文档回答问题。
听起来很合理对吧?文档太多,AI 不可能全部读完,那就先筛选再阅读。
我的知识库用的就是这套方案。但问题来了:
向量相似度不等于语义相关性。
"MCP 配置"和"CNB 配置"在向量空间里可能很近(都是"配置"),但用户要的是 CodeBuddy 的 MCP,不是 CNB 平台的配置。向量检索是个黑盒,它不理解"用户到底在问什么"。
作为工程师,遇到问题的本能反应是"优化它"。于是我设计了一套五步管道:
用户提问 → 意图识别 → Query 增强 → 向量检索 → Path 过滤 → LLM Rerank → 返回结果
第一步:意图识别。 判断用户在问哪个产品——CodeBuddy 还是 CNB?
第二步:Query 增强。 把"MCP 怎么配"扩展成"MCP 配置 Claude Code settings.json",增加检索命中率。
第三步:向量检索。 从 2400 份文档中召回 Top 50。
第四步:Path 过滤。 根据意图过滤路径,只保留 codebuddy/ 目录下的文档。
第五步:LLM Rerank。 让大模型对 Top 50 重新排序,选出最相关的 5 份。
流程图画得很漂亮,每一步都有理有据。预估 3-5 天实施,复杂但"正确"。
但我心里有个声音一直在问:我是不是在给一个有结构性缺陷的系统打补丁?
向量检索的核心假设是"语义相近的文本在向量空间里距离也近"。但这个假设并不总是成立——尤其在专业领域,同一个词在不同上下文里意思完全不同。
我能优化管道,但优化不了这个根本假设。
带着这个疑问,我继续推进方案。直到看到那条推文。
2026 年 1 月,Claude Code 核心开发者 Boris Cherny 在 X 上分享了一条设计经验,直接击中了我:
"早期版本的 Claude Code 采用了 RAG + 本地向量数据库的方案,但我们很快发现智能体搜索(agentic search)的效果通常更好。这种方式不仅更简洁,还避免了 RAG 在安全、隐私、时效性和可靠性方面存在的固有问题。"
等等,Claude Code 团队放弃了 RAG?
他们有全世界最强的 AI 能力,有一流的工程团队,如果 RAG 真的是最优解,没人比他们更有资源把它做好。但他们选择了另一条路。
Boris 在后续的讨论中解释了为什么:
1. 安全问题。 文档需要上传到向量数据库,这意味着敏感数据离开了你的控制。
2. 隐私风险。 向量嵌入(embedding)在理论上可以被逆向还原出原始文本。你以为数据被"向量化"后就安全了?不一定。
3. 时效性困境。 每次文档更新,都需要重新计算向量并更新索引。知识库越大,这个成本越高。
4. 可靠性黑盒。 为什么这份文档排在前面?向量相似度无法解释。当检索出错时,你很难定位问题。
这四个问题不是实现细节,是 RAG 的结构性缺陷——优化管道解决不了。
那 Claude Code 用的是什么方案?
Agentic Search(智能体搜索)。
核心思路极其简单:不要替 AI 做决定,让它自己读、自己想、自己选。
具体来说:
没有向量计算,没有相似度排序,没有五步管道。就是让 AI 像人一样思考和查找。
看完 Boris 的思路,我重新审视了自己的方案。
RAG 方案:5 步管道,预估 3-5 天实施,后续还需要维护向量索引。
Agentic Search 方案:一份 JSON 索引 + 让 Claude 自己搜,预估 4 小时实施,几乎零维护成本。
对比一下:
简单方案不是偷懒,是更高级的工程判断。
核心就是一个 50KB 左右的 JSON 文件:
{
"documents": [
{
"path": "codebuddy/mcp-configuration.md",
"title": "MCP 配置指南",
"summary": "如何在 Claude Code 中配置 Model Context Protocol",
"tags": ["mcp", "configuration", "claude-code"]
},
{
"path": "cnb-docs/getting-started.md",
"title": "CNB 平台入门",
"summary": "CNB 云开发平台的基础使用教程",
"tags": ["cnb", "cloud", "tutorial"]
}
// ... 更多文档
]
}
Claude 读到这份索引后,会根据用户问题判断:"MCP 配置?应该是 codebuddy/mcp-configuration.md 这份。"然后它会主动请求读取完整文档。
整个过程,Claude 可以解释为什么选这份文档。 如果选错了,我能看到推理过程,知道问题出在哪。
说实话,Agentic Search 的思路并不复杂。为什么我一开始就奔着 RAG 去了?
因为惯性思维。
RAG 是行业标准方案,大家都在用,论文里写的也是这个。当你遇到"检索不准"的问题,本能反应就是"优化检索",而不是"换个思路"。
但 Boris 提醒了我一件事:Claude 不是需要被喂数据的 API。它是能自己读文件、自己思考的智能体。
既然如此,为什么要用向量相似度替它做判断?
Agentic Search 有一个前提:Claude 能读完索引。
如果索引太大(比如包含 10 万份文档),Claude 的上下文窗口装不下,这条路就走不通了。
我有 2400 份文档,全放一个索引里大概需要 500KB。这个体积对 Claude 来说有点吃力——不是读不了,是效率会下降。
怎么办?
答案是分库。
2400 份文档听起来很多,但仔细看,它们天然分成了几个领域:
knowledge-hub (~2400 docs)
↓ 按领域分库
├── codebuddy/ (~50 份) → 10KB 索引
├── cnb-docs/ (~200 份) → 40KB 索引
├── ai-coding/ (~100 份) → 20KB 索引
└── internal/ (~500 份) → 100KB 索引
每个库的索引都在 100KB 以内,Claude 轻松加载。
分库后,查询流程变成:
第一步:确定目标库。 用户问"MCP 怎么配置"——这是 CodeBuddy 的问题,去 codebuddy 库。
第二步:在目标库里搜索。 读 codebuddy 的索引,找到 mcp-configuration.md,读取完整文档。
这不就是我之前 RAG 方案里的"意图识别"吗?
对,但有本质区别。RAG 的意图识别是为了过滤向量检索结果,是补丁。Agentic Search 的意图识别是为了选择正确的索引文件,是设计。
最后,我把分库策略写进了项目的 CLAUDE.md(Claude 的配置文件):
## 知识库检索
本项目包含多个知识库,按领域分类:
| 库 | 路径 | 适用场景 |
|---|---|---|
| CodeBuddy | knowledge/codebuddy/ | AI 编程助手相关 |
| CNB Docs | knowledge/cnb-docs/ | 云开发平台相关 |
| AI Coding | knowledge/ai-coding/ | AI 编程实践相关 |
查询时:
1. 先根据问题判断目标库
2. 读取对应库的 index.json
3. 根据索引匹配相关文档
4. 读取完整文档后回答
Claude 每次启动都会读这份配置,自然就知道该怎么检索了。
回过头看,RAG vs Agentic Search 不只是一个技术选型问题。
旧范式的假设是:信息太多,需要系统帮你筛选。 所以我建向量索引、做相似度排序、设计复杂的检索管道。
新范式的假设是:AI 足够聪明,可以自己判断。 所以我只需要提供结构化的索引,让 AI 自己去读、去想、去选。
这不是 Boris 第一次表达这种思路。在他分享的 Claude Code 开发经验里,有几条原则反复出现:
"朴素配置"——不要迷信复杂系统,开箱即用往往最好。我的五步 RAG 管道,每一步都有理由,但合在一起就是过度工程。
"工具使用者心态"——Claude 不是被调用的 API,是能调用工具的执行主体。RAG 把 Claude 当成"需要被喂数据的模型",Agentic Search 把它当成"能自己找数据的智能体"。
"验证闭环"——没有反馈循环,AI 输出永远不可靠。向量检索是黑盒,出错时你不知道为什么。Agentic Search 里,Claude 会解释它的推理过程。
说到底,知识库的价值不在于"存了多少",而在于"能用起来"。
传统知识库的悲剧是:存了 → 搜不到 → 遗忘 → 重新创建 → 存了 → 搜不到...
新范式的知识库:存了 → 随时对话 → 用的时候深入 → 持续积累。
这不是科幻,这是 Claude Code 每天在做的事情。它读你的代码库,理解你的项目结构,在你需要时提供精准的帮助。
我的知识库应该也能做到这一点。
写完这篇文章,我最大的感触是:
RAG 背后的假设是"不信任 AI 能找到正确答案",所以用向量相似度替它做决定。
Agentic Search 背后的假设是"AI 足够聪明",让它自己读、自己想、自己选。
这种信任不是盲目的。Claude 不是三年前的 GPT-3,它有强大的推理能力,能理解上下文,能解释自己的判断。当工具足够强大时,我的工程设计也应该跟着进化。
三个月的 RAG 优化方案,4 小时的 Agentic Search 实现。
复杂度不是价值,是成本。
下次遇到问题,在设计复杂系统之前,也许应该先问一句:能不能让 AI 自己解决?
本文核心观点来自 Boris Cherny 的公开分享,结合个人知识库建设实践整理。如有理解偏差,欢迎指正。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-02-04
Claude Cowork 真能替换 RAG ?
2026-02-03
使用 Agent Skills 做知识库检索,能比传统 RAG 效果更好吗?
2026-02-03
告别向量数据库!PageIndex:让AI像人类专家一样阅读长文档
2026-02-02
OpenViking:面向 Agent 的上下文数据库
2026-02-02
别再迷信向量数据库了,RAG 的“大力出奇迹”该结束了
2026-01-29
告别黑盒开发!清华系团队开源 UltraRAG:用“搭积木”的方式构建复杂 RAG 流程
2026-01-28
RAG优化不抓瞎!Milvus检索可视化,帮你快速定位嵌入、切块、索引哪有问题
2026-01-28
今天,分享Clawdbot记忆系统最佳工程实践
2025-12-04
2025-12-03
2025-11-13
2025-12-02
2025-11-13
2026-01-15
2025-12-07
2026-01-02
2025-12-23
2025-12-18
2026-02-04
2026-02-03
2026-01-19
2026-01-12
2026-01-08
2026-01-02
2025-12-23
2025-12-21