深夜,一位当事人走进侦探事务所,抛出一个模糊的请求:“帮我查清楚这家公司到底值不值得投资。”老练的侦探不会立刻冲出大门,而是先泡一杯茶,把大问题拆成小线索:公司财务状况如何?行业前景怎样?竞争对手是谁?然后按重要性排好顺序,逐条调查。每份材料他都记录来源、评估可信度;遇到矛盾说法就去查第三、第四个信源;最后把所有证据串成完整证据链,写成一份带引用的结案报告。这就是 Deep Research 技术的本质:让 AI 像侦探一样,对复杂问题进行多步骤推理(Multi-step Reasoning)与信息综合(Information Synthesis)。它不再是一次问答就给出答案,而是“拆问题 → 多源检索 → 提取分析 → 迭代追问 → 交叉验证 → 综合成文”的完整工作流。本文就借这位侦探的破案过程,带零基础的你从直觉到原理,彻底看懂这项技术。
理解多步骤推理与信息综合,是设计真正解决复杂问题的 Agent 系统的分水岭——它能让你从“单轮问答 Demo”进阶到“可落地的 Deep Research 产品”。
可视化演示
展示Deep Research的三种核心推理模式:思维链逐步推导、思维树搜索剪枝、递归检索与信息综合,通过动画理解多步骤推理机制。
本节配有交互动效(进入视口后自动加载,约 3KB)。
思维链:线性逐步推理 将复杂问题分解为Q→S1→S2→S3→A的推理链 每步基于前步结论继续推导,展示中间推理过程 准确率随推理步骤增加而提升 CoT是最基础的多步骤推理提示技术。
任务分解规划
接手案件的第一步,侦探不会急着出门,而是先把“这家公司值不值得投资”拆开:财务状况是一个问题,行业趋势是一个问题,创始人背景又是一个问题。每拆出一个子问题,就等于找到一条独立线索。拆得越细,后面的调查方向越清晰,也越不容易漏掉关键盲区。
Deep Research 的第一步同样是“规划”。模型把用户的复杂问题改写成多个子问题,并为每个子问题设计对应的搜索指令。这一步通常由大语言模型完成,它会根据问题的领域、意图和已知信息,自动决定拆分的粒度和数量。
实践中有三个原则:覆盖完备,指所有子问题合起来能回答原始问题;问题独立,指各子问题尽量不重叠,避免重复检索浪费成本;粒度适中,指子问题既不过粗(一次搜不出答案)也不过细(产生几十轮无用的搜索)。
就像侦探把案件做成一张“待办清单”,每完成一个子问题就打一个勾。如果某个子问题查不到答案,他还会回头重新调整拆分方式。任务分解不是一次性的,而是与后续调查互相咬合、动态演进的过程。
- 原问题 Q用户提出的复杂问题,是整个 Deep Research 流程的输入
- 子问题 qᵢ从原问题中拆分出的第 i 个独立子问题,每个都可以单独去检索
- 并集符号把散落的子问题合并起来看待
- 覆盖关系并集等于原问题,意味着所有子问题解决后,原问题就被回答完整了
多源信息检索
带着线索清单,侦探出发了:先到公司现场查看,再找当事人谈话,然后翻查工商记录、新闻报道,甚至询问行业专家。单一信源可能说谎或存在盲区,多跑几个地方,才不会被一份材料牵着鼻子走。
Deep Research 同样不会只调用一个搜索接口。它会综合使用通用搜索引擎、垂直知识库、学术数据库、新闻站点等多种信息源,对每个子问题发起并行检索。每种来源都有各自的排序方式,返回的结果也各不相同。
多源检索的关键挑战是“如何把多份结果合并成一份候选清单”。业界常用一种简单有效的融合算法——倒数排名融合(Reciprocal Rank Fusion, RRF):不看分数只看排名,把同一文档在各来源中的排名倒数相加。排名越靠前,贡献越大;即使某个来源没收录该文档,也不影响其他来源的得分。
多源检索就像侦探走访多方证人。每个证人的记忆都有局限,但把他们的证词按可靠程度加权汇总,故事的全貌就会慢慢浮出水面。
- 候选文档 d一条待评估的检索结果,比如一篇文章或一个网页
- 排名 rankᵢ(d)文档 d 在第 i 个来源中的排序位次,越靠前值越小
- 平滑分母60 加上排名,拉开第 1 名与第 2 名的差距,又不至于让差距过大
- 多源求和把文档在 k 个来源中的贡献相加,得到综合排序分
内容提取分析
侦探拿到一沓资料,不会逐字读完,而是快速扫视,圈出与案情直接相关的关键句:日期、金额、人名、异常举动。冗长的背景介绍和无关广告直接扔进废纸篓。同样的取舍,决定了他一小时能消化十份还是十页材料。
AI 面对检索回来的长文档,也面临“信息过载”问题。因此系统会先按相关性对文档排序,再对高分文档做信息抽取,截出与子问题最相关的段落,过滤掉导航栏、广告和无意义文本。
相关性判断最经典的数学工具是余弦相似度——把文档和查询都表示成高维向量,用夹角的余弦值衡量方向是否一致。夹角越小,余弦值越接近 1,表示文档与查询越相关。配合 TF-IDF 权重,还能抑制“的、了、是”这类高频无意义词的干扰。
提取分析就像是侦探的“读档”技巧:不是每一页都值得细看,只有反复出现的名字、对不上的时间线、异常的转账记录才值得写进笔记本。AI 用数学完成了同样的甄别。
- 文档向量 d把文档用 TF-IDF 等方法编码成的数值向量
- 查询向量 q把子问题同样编码成的数值向量
- 点积逐分量相乘再求和,捕捉两者共同出现的特征
- 模长归一化除以两个向量长度,消除文档长短对分数的影响
迭代推理循环
调查进行到一半,侦探发现新疑点:证人说公司上季度资金链紧张,财报却显示盈利。他不会就此打住,而是带着新问题再去查融资记录、供应商账款。破案从来不是一条直线,而是一轮又一轮“发现问题 → 提出假设 → 补充调查”的循环。
Deep Research 的核心优势正在于此:多轮迭代。系统在每一轮检索和分析后都会形成“当前理解”,一旦发现信息缺口或矛盾,就自动生成新的搜索请求,循环往复,直到信息足够充分或达到轮次上限。
每一次迭代都是对答案置信度的更新。用贝叶斯定理来理解:先验是“拿到证据前某个假设成立的可能性”;每轮新增的证据都通过似然更新这个概率,得到后验。后验再作为下一轮的先验,如此滚动修正。
侦探的直觉会随新证据不断校准,Deep Research 的置信度也随新检索不断更新。循环的终止条件不是“没问题了”,而是“证据已足够支撑一个可靠结论”。
- 先验 P(H)调查前认为假设 H 成立的概率,相当于侦探的初始直觉
- 似然 P(E|H)假设 H 成立时,观察到证据 E 的概率
- 边际概率 P(E)证据 E 在所有情况下出现的总概率,起归一化作用
- 后验 P(H|E)看到证据 E 后假设 H 成立的概率,也是下一轮迭代的新先验
交叉验证机制
结案前,侦探把所有证人的证词铺在桌上对照:三个人说见过嫌疑人出现在仓库,只有一个人说在码头见过。多数证据指向仓库,码头那条证词暂存待查。孤证不立,是侦探界的铁律。
AI 也会遇到来源互相矛盾的情况。交叉验证机制的任务,就是统计一个结论有多少独立来源支持、多少来源反对,并检查论据之间是否自洽。支持率过低的结论会被降权或丢弃。
实际实现中,每条结论都会附带“证据支持率”:等于支持它的独立来源数除以相关来源总数。系统设定阈值(如 0.6),超过才算高置信结论,才允许进入最终报告。支持来源越多、越独立,结论越可靠。
就像侦探不相信孤证一样,Deep Research 也要求“多条证据链相互印证”。交叉验证不是怀疑一切,而是用多角度的印证,把结论建立在更坚固的地基上。
- 支持来源数明确支持该结论的独立来源数量,来源之间互相独立才算数
- 来源总数与该结论相关的所有来源数量,包括反对和中立的
- 支持率支持来源占全部相关来源的比例,反映共识强度
- 阈值判定支持率 ≥ 0.6 时,结论升级为高置信,可进入最终报告
信息综合报告
所有证据齐备后,侦探终于坐下来写结案报告:先讲清案件来龙去脉,再按证据链一步步展开推理,每条关键结论后都注明出处——“该结论基于公司财报第 12 页及供应链访谈记录”。报告不是材料的堆砌,而是有结构、有引用的叙事。
信息综合是 Deep Research 的最后冲刺。系统把各子问题的结论作为“证据”,按主题组织成逻辑连贯的段落,生成结构化报告,并在每个关键论断后追加来源引用。
综合阶段通常使用加权求和融合证据:每条证据有置信度权重 αⱼ,权重之和为 1。证据越可靠、越相关,权重越高,对最终答案影响越大。输出格式按用户需求定制——可以是带小标题的深度报告、列表式对比结论,也可以是带引用角标的学术综述。
结案报告的价值不在字数,而在“每一句都有出处”。Deep Research 的最终输出同样是证据链的完整呈现——读者可以顺着引用一路追溯,像审阅侦探报告一样检验每一步推理。
- 证据贡献 Eⱼ(x)第 j 条证据对答案分量 x 的贡献值
- 权重 αⱼ第 j 条证据的置信度权重,来自交叉验证阶段的评估
- 加权求和把所有证据按权重累加,得到综合答案
- 归一化约束所有权重之和等于 1,防止加权结果被整体放大或缩小
效果优化策略
老侦探会在案发第一天估算工作量:这个案子值不值得投入十个人力?哪些线索可以并行调查?查到什么程度就该收手写报告?新侦探则常为一个无关紧要的细节查三天三夜。经验告诉你:资源有限,必须学会权衡。
Deep Research 系统的成本大头是 API 调用次数和 token 消耗。每多一轮检索、多读一份文档,都在烧钱。工程上需要在“回答质量”和“总成本”之间找平衡,用最少的轮次拿到足够好的答案。
形式化地说,这是一个带约束的优化问题:在保证报告质量不低于阈值的前提下,最小化总成本。总成本是所有轮次的搜索成本与阅读成本之和。常见工程手段包括:设置最大迭代轮数、对低价值子问题降低检索深度、并行执行多个子问题检索、以及提前终止(置信度连续两轮不再提升时停止)。
侦探的精明之处,在于知道“什么时候该停”;Deep Research 的优化策略,同样是在性价比的刀刃上跳舞。理解了这一点,你设计 Agent 时就能把每一分钱花在刀刃上。
- 迭代轮数 T推理循环执行的总轮次,是我们要决定的变量
- 搜索成本第 t 轮发起检索消耗的 API 调用成本
- 阅读成本第 t 轮阅读与分析文档消耗的 token 成本
- 质量约束T 轮之后的质量必须不低于设定阈值,否则优化无意义
AI 应用场景
市场调研与投资分析
阶段:任务分解规划 + 多源信息检索 + 信息综合报告
解决的问题:传统行业调研依赖分析师手动翻几十份报告,需要数天且容易漏掉关键信源。Deep Research 自动把“某公司值不值得投资”拆成财务、行业、竞争格局等子问题,跨源检索并交叉验证后,几十分钟生成带引用的调研报告。
具体案例:私募基金分析师输入“新能源汽车海外市场前景”,系统自动拆出政策、供需、竞争格局等子问题,检索券商研报、海关数据、新闻网站,交叉验证矛盾数据后输出万字报告,每条结论均标注引用来源,分析师只需复核关键证据即可。
学术文献综述辅助
阶段:内容提取分析 + 交叉验证机制 + 信息综合报告
解决的问题:研究生写文献综述要读上百篇论文,人工筛选效率极低。Deep Research 先做粗筛,提取各论文的方法、数据集和结论,按主题聚类并交叉对比,帮助研究者快速定位核心工作与争议点。
具体案例:博士生输入“大模型幻觉检测方法综述”,系统拆出“评测基准、检测方法、缓解策略”三个子问题,跨学术库检索 40 篇论文,对方法有效性做交叉验证,输出按方法流派分组的结构化综述,并附引用角标供追溯原文。
Python 演示
# -*- coding: utf-8 -*-"""简化版 Deep Research: 多步骤推理与信息综合演示"""import re class DeepResearcher: def __init__(self, sources): self.sources = sources # 模拟的多源知识库 self.evidence_pool = [] # 已收集的证据池 self.gc_count = 0 # 推理轮次计数 def decompose(self, question): # 阶段1: 任务分解, 把复杂问题按标点拆成子问题 parts = re.split(r'[,、;;]', question) return [p for p in parts if p] def retrieve(self, sub_question): # 阶段2: 多源检索, 在所有来源中匹配子问题 hits = [] for source, text in self.sources.items(): if sub_question in text: hits.append((source, text)) return hits def extract(self, text, sub_question): # 阶段3: 信息抽取, 保留包含子问题关键词的句子 for sent in re.split(r'[。;;]', text): if sub_question in sent: return sent.strip() return "" def verify(self, claim): # 阶段5: 交叉验证, 统计支持该结论的来源数 support = sum(1 for text in self.sources.values() if claim in text) return support def research(self, question): print("原始问题:", question) sub_questions = self.decompose(question) print("子问题:", sub_questions) for sub in sub_questions: self.gc_count += 1 print("--- 第 %d 轮迭代 ---" % self.gc_count) for source, text in self.retrieve(sub): snippet = self.extract(text, sub) if snippet: self.evidence_pool.append((source, sub, snippet)) print(" [%s] 提取: %s" % (source, snippet)) print("--- 信息综合 ---") conclusion = ";".join(e[2] for e in self.evidence_pool[:3]) print("综合结论:", conclusion) first_claim = self.evidence_pool[0][1] print("交叉验证支持数:", self.verify(first_claim)) return conclusion if __name__ == "__main__": sources = { "百科A": "多步骤推理先把复杂问题拆成子问题,再逐步求解。", "博客B": "Deep Research 通过多步检索与交叉验证,得出可靠结论。", "论文C": "多步骤推理是信息综合的基础,从多个来源提取证据。", "新闻D": "信息综合从多个来源提取证据,加权汇总成最终报告。", } DeepResearcher(sources).research("多步骤推理,信息综合,Deep Research")
parts = re.split(r'[,、;;]', question)任务分解:按标点把复杂问题切成子问题列表for source, text in self.sources.items()多源检索:遍历所有模拟信源,体现“多源”而非单源if sub_question in text:判断来源是否包含该子问题,是检索命中的基本判据snippet = self.extract(text, sub)从命中的长文本中抽取关键句,模拟信息提取self.evidence_pool.append((source, sub, snippet))把“来源+子问题+证据句”存入证据池self.gc_count += 1每处理一个子问题就计一轮迭代,模拟多步推理first_claim = self.evidence_pool[0][1]取出第一个子问题作为待验证的主张";".join(e[2] for e in self.evidence_pool[:3])把前三条证据串成综合结论,模拟信息综合
常见误区
误区“Deep Research 不就是把同一个问题多搜几遍、再把结果拼起来吗?搜索引擎早就做到了。”
正解多搜几次只是“重复检索”,Deep Research 的核心是“规划—检索—分析—验证”的闭环。它会在每轮检索后更新理解、生成新问题,再带着新假设查下一轮,最后按证据链组织报告。好比侦探不是重复翻同一份档案,而是根据每轮发现的线索决定下一步去哪调查。
为何常见:从外部看,多轮搜索确实都表现为“多次查询”,很多人因此忽视了中间的规划与分析环节。
误区“只要引用 20 个网页,结论就一定比引用 5 个网页的更可靠。”
正解数量不等于质量,关键是来源的独立性、权威性和一致性。20 个互相转载的营销号不如 3 个独立的一手数据源。交叉验证更看重“独立来源的支持比例”而非绝对数量,就像侦探不会因为十个邻居转发了同一条谣言,就把它当事实。
为何常见:人天生容易把“数量多”当成“证据足”,忽略了来源之间可能高度相关甚至互相抄袭。
误区“信息综合不就是把所有检索摘要按顺序粘贴出来吗?”
正解真正的综合是“观点的融合与重构”:去掉重复、化解矛盾、按逻辑主线组织,并用加权方式决定每条证据的贡献。堆砌摘要就像把证人原话录音直接放给法官听,而综合报告是侦探精心编排的结案陈词。
为何常见:大模型生成的检索摘要本身已经“像文章”,让人误以为拼接就够了。
误区“既然多步推理这么好,那就让它无限循环下去,答案一定越来越好。”
正解迭代的边际收益递减,同时成本和延迟暴涨。工程上会设定最大轮次、提前终止条件(置信度不再提升)以及质量—成本约束。无限循环的侦探会为一个细节查一辈子,好侦探知道何时该结案。
为何常见:人们容易把“多步”等同于“更多步”,忽略了资源约束和收益递减规律。
面试题
Q1. Deep Research 流程的第一步通常是什么?
- A.直接返回全部搜索结果
- B.把复杂问题拆成子问题← 正确答案
- C.直接生成最终报告
- D.调用大模型生成摘要
答案:B。侦探接手案件先拆线索清单,Deep Research 也一样:先把复杂问题拆成子问题并规划检索计划,后续所有检索与分析都建立在这个清单上。选项 A/C/D 都是后续阶段的行为。
Q2. 倒数排名融合(RRF)中得分最高的是哪类文档?
- A.单篇阅读量最高的文档
- B.各来源排名都靠前的文档← 正确答案
- C.单篇字数最多的文档
- D.发布时间最新的文档
答案:B。RRF 只看排名不看内容与热度。文档在每个来源中排名越靠前,1/(60+rank) 的贡献越大,融合总分越高。就像侦探更信任被多位证人共同指认的线索。
Q3. 余弦相似度的值越接近 1,说明文档与查询?
- A.内容越短小精悍
- B.方向越一致相关度越高← 正确答案
- C.发布时间越接近现在
- D.来源权威性越高
答案:B。余弦相似度衡量两个向量的夹角,夹角越小越接近 1,表示文档与查询的语义方向一致。文档长短、发布时间、来源权威性都不是余弦相似度衡量的对象。
Q4. 贝叶斯公式中的后验 P(H|E) 表示什么?
- A.假设成立时证据出现的概率
- B.看到证据后假设成立的概率← 正确答案
- C.证据不会出现的概率
- D.假设不成立的概率
答案:B。后验指“看到证据之后”假设成立的概率,是迭代推理中每轮更新的目标值。选项 A 描述的是似然 P(E|H),C 和 D 与后验定义无关。
Q5. 关于支持率与交叉验证,下列说法正确的是?
- A.支持率是支持数除以总来源数← 正确答案
- B.低于阈值的结论应降权或丢弃← 正确答案
- C.支持率不应看来源的独立性
- D.阈值设得越高结论越保守← 正确答案
答案:ABD。支持率=支持来源数/总来源数,低于阈值应降权丢弃,阈值越高能进报告的结论越少、越保守。C 错在来源独立性恰恰是支持率成立的前提——一堆互抄的营销号不能算独立证据。
Q6. Deep Research 的交叉验证包括以下哪些操作?
- A.统计支持结论的独立来源数← 正确答案
- B.检测各来源之间的矛盾点← 正确答案
- C.删除掉全部来源内容
- D.对低置信结论降权或丢弃← 正确答案
答案:ABD。交叉验证 = 多源对照(统计支持数)+ 矛盾检测 + 置信度评估与降权。删除来源内容不是验证行为,反而破坏了证据链,是错误选项。
Q7. 信息综合阶段的证据权重 αⱼ 通常来源于哪个阶段?
- A.任务分解阶段
- B.交叉验证的置信度← 正确答案
- C.用户的个人偏好
- D.随机初始化权重
答案:B。权重来自交叉验证阶段:高置信的结论获得更大权重,低置信的被降权。任务分解产出的是子问题清单,用户的偏好与随机初始化都不是权重的合法来源。
Q8. 关于倒数排名融合 RRF,下列说法正确的是?
- A.需要每个来源返回真实分数
- B.缺失文档的来源会直接报错
- C.不使用分数只使用排名位次← 正确答案
- D.最终得分范围固定为 0 到 1
答案:C。RRF 的精妙之处在于只需要各来源的排名,文档在某来源未出现时该来源贡献为零而不是报错,得分也不限定在 [0,1]。它用排名而非分数,因此对不同来源的排序系统天然鲁棒。
Q9. 以下哪些属于效果优化的常见工程手段?
- A.设置最大迭代轮数上限← 正确答案
- B.置信度不再提升时提前终止← 正确答案
- C.并行执行多个子问题检索← 正确答案
- D.无限增加检索深度和轮数
答案:ABC。优化目标是“在质量达标的约束下最小化成本”,A/B/C 都是有效手段。D 会带来成本与延迟的无限增长,且边际收益递减,是典型反例。
Q10. 已知先验 P(H)=0.5,似然 P(E|H)=0.9,边际概率 P(E)=0.6,则后验 P(H|E) 等于多少?
- A.0.45
- B.0.75← 正确答案
- C.0.85
- D.0.90
答案:B。后验 = 0.9 × 0.5 ÷ 0.6 = 0.75。看到证据后,假设的置信度从 0.5 提升到 0.75,这正是迭代推理中“证据推动置信度更新”的数学本质。