字节面试真题:Deep Research系统设计全解(非常详细),从RAG对比到路径规划精通,收藏这一篇就够了!

字节面试真题:Deep Research系统设计全解(非常详细),从RAG对比到路径规划精通,收藏这一篇就够了! 传统 RAG 是单跳检索——用户问一句系统搜一次拼一段上下文LLM 回答一次。但一份行业分析报告需要的是多轮搜索、多维度信息整合、自我验证、矛盾消解——这已经不是检索生成能覆盖的了需要一个能自主规划、自主执行、自主纠偏的 Agent。这就是现在最火的Deep Research。上周有个学员面字节简历上写了参与 Deep Research 搜索 Agent 的设计。面试官直接三连追问“Deep Research 跟传统 RAG 的本质区别在哪不是’搜的次数更多’这种表面回答。”“如果系统搜了 20 个网页发现搜索方向跑偏了怎么做自我修正”“最终生成的报告有几万字的素材需要整合怎么保证不丢关键信息”他只回答出了第一个问题的皮毛后面两个完全卡住了。面试官最后说了一句“只会调 API 拼 Prompt 不叫深度研究。知道系统怎么通过分层架构实现自主闭环才是核心竞争力。”今天把 Deep Research 从架构到实现到面试全部拆开讲。一、传统 RAG vs Deep Research本质区别在哪很多人觉得 Deep Research 就是多搜几次、多写点字。这个理解太浅了。两者的本质区别不在于搜索次数而在于系统的自主性层级传统 RAG 是被动应答。用户给一个 query系统执行一次检索-生成流程返回一个答案。整个过程是线性的、一次性的没有规划、没有反思、没有修正。Deep Research 是自主研究。用户给一个复杂任务比如分析 XX 行业竞争格局系统需要自己规划研究路径、自己决定搜什么、自己判断搜到的信息够不够、自己发现矛盾并修正、最终自己整合成结构化的报告。用一句话概括区别传统 RAG 是一个搜索工具Deep Research 是一个研究助理。具体的差异可以从五个维度对比任务复杂度。传统 RAG 处理单一问题“等待期是多久”Deep Research 处理复合任务“写一份 XX 行业分析报告”需要拆解成多个子问题逐一解决。检索模式。传统 RAG 是单跳检索——一个 query 搜一次。Deep Research 是多跳迭代检索——第一轮搜索的结果会触发新的搜索方向形成搜索树。规划能力。传统 RAG 没有规划用户给什么就搜什么。Deep Research 有自主规划器会把大任务分解成子任务树并动态调整。自我修正。传统 RAG 搜到什么就用什么没有验证环节。Deep Research 在每一步搜索后都会反思——“这个结果回答了我的子问题吗信息之间有矛盾吗需要换个方向搜吗”输出形式。传统 RAG 输出一段话。Deep Research 输出结构化的长报告需要对几万字的素材做信息压缩和逻辑组织。二、Deep Research 的四大核心组件一个成熟的 Deep Research 系统由四个组件构成每一个都有具体的工程实现。组件一自主规划器Autonomous Planner这是系统的总导演。它接收到任务后不会立刻搜索而是先生成一个多级任务树。举个例子用户输入分析中国新能源汽车 2025 年的竞争格局规划器会拆解成子任务 1当前市场份额分布比亚迪/特斯拉/蔚来/理想/小米各占多少子任务 2各厂商的技术路线对比纯电/混动/增程子任务 3政策环境变化补贴退坡/碳积分/出口限制子任务 4供应链瓶颈分析电池/芯片/稀土子任务 5综合分析与趋势预测规划器的 Prompt 核心逻辑PLANNER_PROMPT 你是一个研究规划专家。用户给了一个复杂的研究任务你需要将其拆解为3-7个子任务每个子任务应该是一个明确的、可搜索的问题。研究任务{task}要求1. 子任务之间要有逻辑递进关系先事实后分析2. 每个子任务要足够具体可以直接用于搜索3. 最后一个子任务应该是综合分析/结论4. 标注每个子任务的优先级P0必须/P1重要/P2补充输出格式[子任务1] (P0) 具体问题描述[子任务2] (P0) 具体问题描述...关键设计动态规划而非静态规划。初始计划不是一成不变的——当子任务 1 搜索完成后系统可能发现需要增加一个小米 SU7 的市场冲击子任务因为搜索结果中频繁出现但初始计划没覆盖。规划器会根据每一步的搜索结果实时更新任务树。组件二检索与工具引擎Retrieval Tool EngineDeep Research 的检索不再只是去向量库搜一下。它需要调用多种工具实时搜索引擎。通过 Google/Bing API 获取最新的网页信息。跟传统 RAG 用的本地知识库不同Deep Research 通常需要联网获取实时数据。深度网页解析。搜索引擎返回的是 URL 和摘要但很多关键信息藏在网页正文、PDF 附件、图表里。需要对搜索结果做深度解析——这正好复用了我们 RAG 系列中讲过的 MinerU/Deepdoc 文档解析技术。代码解释器。搜到的原始数据比如各厂商季度销量数字可能需要做计算同比增长率或可视化市场份额饼图。Deep Research 系统通常集成 Python 沙箱让 LLM 写代码处理数据。本地知识库。如果企业有内部数据比如自家产品的销售数据也需要从本地 RAG 知识库中检索。这个模块跟传统 RAG 完全一样——向量检索BM25 混合Rerank 精排。组件三反思与修正Reflection Self-Correction这是 Deep Research 的灵魂也是面试官最喜欢追问的部分。在每一个子任务搜索完成后系统都会执行一轮反思REFLECTION_PROMPT 你是一个研究质量审查员。一个研究助理刚刚完成了以下子任务的搜索子任务{subtask}搜索到的信息{search_results}请从以下三个维度评估搜索质量1. 充分性搜到的信息是否足够回答这个子任务 如果不够缺少什么需要补搜什么关键词2. 一致性搜到的不同来源之间有没有矛盾 如果有矛盾点是什么哪个来源更可信3. 相关性搜到的信息中有多少是跟子任务无关的噪音 需要过滤哪些内容输出格式- 充分性评分(1-5): X- 一致性评分(1-5): X - 相关性评分(1-5): X- 是否需要补搜: 是/否- 补搜建议: [具体的新搜索词]- 需要过滤的内容: [编号列表]反思的三种结果通过三个维度都 ≥ 4 分。继续下一个子任务。需要补搜充分性 4。根据反思模块给出的补搜建议生成新的搜索词再搜一轮。但最多补搜 2 次——避免无限循环。需要换方向相关性 3。说明当前的搜索方向走偏了。系统会回退到规划器让规划器重新调整这个子任务的描述或搜索策略。一个关键问题怎么防止规划路径跑偏这是面试中的高频追问。答案是双重锚定目标锚定。在每一步反思中都会把用户的原始任务描述作为锚点传入 Prompt让反思模块判断当前搜索方向是否偏离了最初目标。预算锚定。设置总搜索次数上限比如最多搜 30 次和单子任务搜索上限比如最多 8 次。超过预算就强制进入下一个子任务或直接进入整合阶段。组件四长上下文整合Long-Context Synthesis搜索完所有子任务后系统面前可能有几万字的素材。直接全部塞给 LLM 让它写报告不行——即使上下文窗口够大LLM 对超长输入的利用效率也会急剧下降Lost in the Middle 问题。我们的方案分层摘要 大纲驱动生成。第一步子任务级摘要。对每个子任务的搜索结果分别生成一段 500-800 字的摘要保留关键数据和来源引用。这一步把几万字压缩到了几千字。第二步大纲生成。基于所有子任务摘要生成报告的大纲一级标题二级标题每节要点。第三步分节生成。按照大纲一节一节地生成正文。每次生成一节时输入包括该节对应的子任务摘要 相邻节的摘要保证上下文衔接 大纲全文保证全局一致性。第四步全文审校。最后对完整报告做一遍审校——检查逻辑一致性、数据矛盾、引用完整性。三、跟传统 RAG 的关系不是替代是升级如果你跟着这个系列一路看过来会发现 Deep Research 的很多子模块其实就是传统 RAG 模块的复用和升级检索模块直接复用。Deep Research 中的本地知识库检索跟传统 RAG 完全一样——向量检索BM25 混合Rerank 精排。之前讲过的 BGE-M3、RRF 融合、Cross-Encoder 重排在 Deep Research 中一模一样地用。文档解析直接复用。Deep Research 搜到的 PDF 和网页需要解析用的就是我们讲过的 MinerU/Deepdoc 的解析 pipeline。评估体系直接复用。Deep Research 的反思模块需要评估搜索结果的质量用的指标相关性、覆盖率、一致性跟我们讲过的 RAG 检索评估指标是同一套。新增的部分是规划和反思。这两个是 Agent 特有的能力——传统 RAG 没有规划用户给什么搜什么也没有反思搜到什么用什么。Deep Research 在传统 RAG 的基础上加了这两个循环让系统从被动应答变成了自主研究。所以如果面试官问你做过 RAG怎么扩展到 Deep Research你可以说**“检索、解析、评估这些基座模块直接复用核心增量是加了规划器和反思循环让系统具备了自主拆解任务和自我纠偏的能力。”**四、工业级实践三个关键设计设计一广度搜索 深度下钻双循环系统不是一股脑搜完所有子任务。而是分两轮第一轮广度搜索。对每个子任务各搜 2-3 次快速获取各方向的基本信息。这一轮的目的不是找全而是摸清地形——知道哪些方向信息丰富、哪些方向需要重点深挖。第二轮深度下钻。根据第一轮的结果对信息不足的方向做深度搜索——换搜索词、换数据源、甚至调用代码解释器处理原始数据。这一轮的目的是填补空白。怎么判断信息饱和当一个子任务连续两次补搜返回的新信息量 10%跟已有信息的重复度 90%就认为该子任务信息饱和停止搜索。设计二多专家角色博弈引入三个角色通过博弈提升最终报告质量Researcher研究员。负责搜索和整理素材。Critic审稿人。负责挑刺——指出逻辑漏洞、数据矛盾、覆盖盲区。Writer撰稿人。负责最终成稿需要同时满足 Researcher 提供的素材和 Critic 提出的改进意见。实际流程是Researcher 完成搜索 → Writer 生成初稿 → Critic 审阅并提出修改意见 → Writer 修订 → Critic 二审。最多循环两轮避免过度迭代。设计三评估闭环——怎么证明报告质量好Deep Research 的输出是长报告不能像传统 RAG 那样用 Recall5 来评估。需要新的指标事实准确性Factuality。报告中的每个数据点是否能在搜索结果中找到来源。这跟我们之前讲的引用溯源是同一个思路——逐句归因NLI 验证。覆盖完整性Comprehensiveness。报告是否覆盖了任务要求的所有维度。可以用规划器生成的子任务列表作为 checklist检查每个子任务在报告中是否有对应章节。逻辑一致性Logical Consistency。报告内部有没有自相矛盾——比如第 2 节说市场份额第一是比亚迪第 4 节又说销量冠军是特斯拉。可以用 LLM 对全文做一遍矛盾检测。五、面试怎么答 Deep Research如果面试官问Deep Research 的核心难点在哪按这个框架答第一个难点规划路径漂移30 秒。“Agent 在搜索过程中容易’走偏’——第一个子任务搜到了一个有趣但不相关的方向系统可能沿着这个方向一路跑下去忘记了原始目标。我们的解法是双重锚定每步反思都带上原始任务描述作为目标锚点同时设置搜索次数预算防止无限发散。”第二个难点长序列记忆遗忘20 秒。“搜了 20 个网页之后早期搜索的结果可能被遗忘。我们的解法是分层摘要——每个子任务搜索完立刻生成摘要后续步骤基于摘要而非原始素材确保关键信息不丢失。”第三个难点素材整合质量20 秒。“几万字素材整合成一份逻辑严密的报告如果一次性塞给 LLM 会触发 Lost in the Middle。我们的解法是大纲驱动分节生成——先生成大纲再一节一节写每节只输入对应的子任务摘要加相邻节内容最后全文审校检查矛盾。”如果面试官追问跟传统 RAG 的关系10 秒。“检索、解析、评估这些基座模块直接复用核心增量是规划器和反思循环。本质上 Deep Research 是传统 RAG 的 Agent 化升级。”写在最后Deep Research 代表了 AI 搜索的演进方向从提供链接到提供知识再到提供洞察。但如果你仔细看它的架构会发现它并不是什么全新的东西——检索模块、文档解析、评估指标、引用溯源这些在我们的 RAG 系列中已经全部讲过了。Deep Research 的本质就是在传统 RAG 的基座上加了规划和反思两个循环让系统从一个搜索工具升级成了一个研究助理。如果你跟着这个系列把 RAG 的每个模块都吃透了理解 Deep Research 就是水到渠成的事。它不是一个新领域而是 RAG 的自然延伸。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】