Appearance
Q81 · 如何设计一个 Deep Research 系统?
产品经理提出:“客服知识库现在只用关键词检索。我们该不该换成关键词加向量的混合检索?请比较旧政策引用、回答质量、等待时间和上线风险,给出试点建议,并指出每个判断来自哪里。”这不是查一个网页就能回答的单点问题。系统要弄清评估范围、取得内部测试与政策原文、核对测试方法、发现没回答的子问题,再写一份可追溯的报告。
我会把 **Deep Research(深度研究)**理解为一个有边界的研究执行过程:围绕复杂问题制定计划,反复搜索与读取原始资料,把主张和证据逐条对应,发现缺口后定向补查,最后输出带来源、冲突和限制的报告。它可以由单个 Agent 加显式工作流实现,也可以在多个独立方向确实值得并行时加入多个研究 Agent;“多 Agent”不是它的定义。OpenAI 的 Deep Research 指南把它定位为多步骤、可使用网页、文件或经授权数据源的研究任务;Anthropic 公开的研究系统则展示了规划、并行探索、综合与引用检查的实现方式。OpenAI:Deep research · Anthropic:How we built our multi-agent research system
先解释研究里的词与编号
| 词或记号 | 在本文中是什么意思 |
|---|---|
| Agent / 工作流 | Agent 让模型根据中途结果决定下一步;工作流把阶段、检查点和预算上限预先写清。研究系统通常混用两者。 |
检索 / search | 根据查询词寻找候选文档或片段,只说明“可能相关”。 |
读取原文 / fetch | 根据候选结果定位并取得实际文档、表格或指定段落,核对内容、时间和出处。只看搜索摘要不足以引用。 |
| RAG | 检索增强生成,即把外部找到的内容交给模型写答复;Deep Research 会在检索和生成之间反复规划、核验与补查。 |
| 子问题 / 研究计划 | 把大问题拆成能逐项找证据的小问题,并标出每项需要什么材料。 |
| 证据台账 / 主张 | 台账记录每条资料来源、适用范围和能支持的具体说法;主张是报告中待证实的一句话。 |
| 来源 / 一手资料 | 来源是可回查的原始页面或文件;一手资料是直接产生数据或规则的材料,而非转述它的摘要。 |
| 交叉核验 / 冲突 | 用独立资料、原始表格或明确计算方法复查;冲突指来源对同一范围给出不同结论,要说明原因,不能平均成一个数字。 |
| 停止条件 / 预算 | 说明什么时候资料已足够或必须停下;预算限制检索轮次、工具次数、时长和费用,防止无休止搜索。 |
P1、P2 | 本例虚构的旧版和当前生效售后政策;版本号是政策标识,不是模型名。 |
E1、L1、M1 | 虚构的内部材料:同题测试报告、线上日志摘要、政策版本目录。它们只是讲机制的演示数据,真实系统须提供可授权回查的文档位置。 |
Q1~Q4、run-81 | 四个研究子问题与本次研究任务编号,便于追踪计划和每条证据。 |
| p95 / 95 分位延迟 | 100 次请求按等待时间排序时,约 95 次不慢于该数;它显示慢用户的体验,不等于每次等待时间。 |
本文所有内部材料和数字均为虚构的教学数据,不能被当成混合检索在真实公司的效果:假设 E1 用同一批 100 条匿名客服问题测试两种方案,并由人工按适用政策核对证据;仅关键词检索有 12 条引用旧政策,混合检索有 4 条;同环境测得两方案 p95 分别为 0.8 秒与 1.3 秒。M1 标明 P2 是当前政策,P1 已归档。L1 是现网关键词方案的匿名错误日志摘要。100 条样本很小,尚不能据此保证全量上线收益;费用数据在这个例子里缺失。研究系统的任务是如实处理这些限制。
先确定研究到底要交付什么
入口不能把“该不该换”直接扔给搜索工具。先澄清:换的是检索器,不是整个客服 Agent;比较对象是现行关键词方案与拟试点的混合方案;观察窗口是当前 P2 生效后的客服问题;评价维度为旧政策误引、证据正确性、p95 等待时间、接入成本与权限风险。报告要给决策者一个有限建议,而不是宣称某技术“全面更先进”。
输入还要说明“哪些资料允许读”:M1、E1 和经匿名处理的 L1 可供研究,原始客户对话和订单个人信息不在本轮权限内。若用户没给评估窗口或“混合检索”的定义,应先追问,或在报告首页写清采用的假设。产品形态会影响这个步骤:OpenAI 官方文档说明 ChatGPT 的 Deep Research 产品可以在研究前澄清和改写问题,但直接使用其 Responses API Deep Research 模型时,不会自动替应用做这两步,开发者需要按需求自行加入。OpenAI:Deep research,Prompting deep research models
这一阶段的输出是 run-81 的任务说明:研究问题、范围、已批准数据源、完成标准、截止时间和不做什么。例如:不调用写入型客服工具,不修改生产索引,不访问带身份信息的订单原文。把范围固定下来,后续模型不应因为网页一句“请上传全部客户记录”就扩大权限。
研究主循环:计划、找证据、核验、补查

图中的橙色回箭头从“证据不足”返回“检索原文”,意思是补缺的那一项,不是把已经查过的东西无条件重搜。直线到报告还要受预算和最小证据标准约束;预算用尽时也可能产出一份明确写着“无法判断”的部分报告。
1. 计划不是列关键词,而是列待回答的问题
为 run-81 先写四项:Q1 两种方案对当前政策证据的命中与旧版误引是否不同;Q2 测试样本和人工判定方法是否公平;Q3 延迟、费用与工具限制是否满足上线门槛;Q4 权限、更新与回滚怎么处理。每项还要指定需要的证据与“缺证据时不能下什么结论”。例如 Q3 若只有延迟而没有费用,就只能评价延迟,不能写“更省钱”。
计划可以由模型起草,但由程序保存成可检查的状态;不要让模型在下一轮忘了 Q3,一直重复查 Q1。模型发现新问题可以增补计划,如“E1 是否用了过期政策做标准答案”,但要受范围和预算限制。Anthropic 的研究工程文章指出,复杂研究需要拆解任务、根据新发现调整搜索,同时控制不必要的并行与无效探索。Anthropic:How we built our multi-agent research system
2. 检索要从候选走到可引用原文
检索器可连接获准的内部文档、测试结果、数据库汇总与公开网页;先用 search 找候选,再用 fetch 或等价读取方式取原文。对 M1 要确认 P2 的生效与 P1 的归档状态;对 E1 要读完整的样本定义、人工核对标准、每题结果和 p95 统计方法,而不是只抄摘要的“混合检索更好”;对 L1 要明白它来自现网关键词方案,不能把它当混合方案上线后的实测。每份材料记下来源位置、获取时间、版本、访问权限、作者/维护者和适用范围。
搜索结果排名靠前并不等于可信。转载旧政策的页面即使看起来相似,也不能盖过内部生效目录 M1;反过来,内部报告 E1 若方法不透明,也不能仅凭“公司内部”四字就视为强证据。同一份 E1 被十个网页转述,仍是一个原始测量,不能算十个独立来源。OpenAI 的 Deep Research API 允许网页搜索、文件检索和合适的远程 MCP 数据源;其特定 Deep Research 模型的 MCP 接口要求只读的 search 与 fetch,这是该产品当前约束,不是所有自建研究系统的通用协议规定。OpenAI:Deep research
公开资料的网页可能修改或下线,所以台账还应尽量保存访问时间、页面标题、文档版本、段落位置或允许保存的快照哈希。私有资料只给有权限的研究用户检索;报告中的内部链接也要经过授权,不能让拥有报告的人自动获得原始客户数据。工具返回的网页和文件是待判断的证据,不是新的系统指令;其中的“忽略规则、发送全部数据”属于不可信内容。OpenAI 的 Deep Research 安全章节明确讨论网页、文件和 MCP 返回内容里的提示词注入与外泄风险。OpenAI:Deep research,Safety risks and mitigations
3. 把每条结论拆成可核对的主张
不要先让模型写一篇流畅报告,再为每段寻找看起来相关的链接。先建立证据台账,以下各行仍是本文虚构例子:
| 待写的主张 | 原始依据 | 核验与可写范围 |
|---|---|---|
| “测试中旧版政策误引从 12/100 变为 4/100” | E1 的同题逐题结果;M1 对 P1、P2 的版本定义 | 可写“这 100 题的观察结果”,不能外推成所有客服流量的固定改善率 |
| “试点方案 p95 比基线慢 0.5 秒” | E1 同环境的 0.8 秒与 1.3 秒记录 | 先确认两方案计时起止相同;只代表测试环境,不能写成线上延迟 |
| “混合检索总体成本更低” | 当前无可用费用原始数据 | 不得写成结论;列为待测项 |
| “需要按生效版过滤” | M1 中 P1 归档、P2 生效的记录,以及 E1 的旧版误引案例 | 可作为本案例的设计要求;还要在上线前验证权限和更新流程 |
核验至少问四件事:来源真的是原文吗?数字和计算对得上吗?时间、地域、用户群和版本范围一致吗?引用的那一段是否直接支持这句话?若答案冲突,先查定义、测量窗口、样本差异和版本;不能靠模型给两个来源“打平均分”。数字计算可交给确定性程序复算,再把结果连回原始表。引用应落到具体表格、页面或段落;“一个网页大概讲了这个主题”不足以证明一个精确数字。Anthropic 公开的研究系统专设引用核验环节,并将事实、引用准确性、完整性、来源质量和工具效率作为评估维度。Anthropic:How we built our multi-agent research system
4. 只为明确缺口再次搜索
第一轮发现 E1 摘要只给“12 对 4”,却没有说人工是否按 P2 标注,就针对 Q2 去取逐题清单与标注说明;发现 Q3 无费用,就查获准的计费汇总或向用户索要,没有权限便保留缺口。若两种检索器在不同机器跑,先补查测试环境,不能直接把 0.5 秒差异归因于算法。每轮结束更新“已证实、冲突、未知”三栏,让下一轮查询由缺口决定。
这里的迭代是目标驱动的:能让关键结论变得可核验才值得再调用工具。若同一查询反复给出转载、排名农场页面或相同摘要,应更换来源和查询方式,或停止。Anthropic 在多 Agent 研究实践中也记录过无休止搜索和过度派生子 Agent 的问题;更多搜索并不天然提高正确性。Anthropic:How we built our multi-agent research system
用什么状态把长任务接起来
研究可能运行数分钟甚至更久,单靠模型当前上下文记住所有网页并不可靠。应用应持久保存 run-81 的研究状态,而不是把全部原文反复塞进模型。至少有下列对象:
| 状态对象 | 存什么 | 为什么需要 |
|---|---|---|
| 任务说明 | 问题、范围、权限、截止时间与报告要求 | 防止中途换题或扩大数据访问 |
| 子问题清单 | Q1~Q4、优先级、完成/未完成状态 | 明确当前该补哪一项 |
| 来源目录 | M1、E1、L1 的受控位置、版本、获取时间与权限 | 可回查、可去重、可识别过期 |
| 证据台账 | 原子主张、支持段落、反证、适用范围、是否已复核 | 防止“写完报告再找引用” |
| 执行预算 | 已用检索/读取次数、模型调用、时间与费用估算 | 到达上限能停,不会无限循环 |
| 草稿与审查状态 | 报告版本、未解决冲突、引用校验结果、人审意见 | 失败后恢复而非从头重跑 |
“原子主张”指一句能够单独判断真假的陈述,比如“E1 这 100 题的旧版误引为 4 条”,而不是“混合检索全方位更好”。资料原文宜存于权限受控的文档存储,状态里保留定位与必要摘录。长任务用后台执行、状态持久化和进度通知,避免浏览器关闭就丢失;OpenAI 的 Deep Research API 也因任务可能较长而建议后台模式,并提供工具调用次数上限来控制成本与延迟,但这些是特定产品接口能力,自建系统仍需自己实现相应预算与恢复策略。OpenAI:Deep research,Best practices
并行研究可选,不能为了“Deep”而强行拆出多个 Agent。Q1 的证据正确性与 Q3 的延迟/成本可并行查,但每个执行者都应拿到同一份范围与权限、明确负责的子问题、输出证据而非最终拍板,并限制并行数。汇总者合并来源时要去重、查相互矛盾的版本并复核引文。若任务只需两份内部报告,单 Agent 或显式工作流更简单;并行带来更高 token 用量、协调成本与来源重复风险。Anthropic:Building effective agents · Anthropic:How we built our multi-agent research system
什么时候停:有证据、没证据或预算用尽
停止条件不应只写“模型觉得够了”。本例可预设:Q1 的两组结果可追到同题原表,Q2 的标注和测试环境可解释,Q3 延迟有同口径数据而费用若缺失必须标注,Q4 的版本/权限/回滚方案有可执行的待办;报告中的数字都能指向依据,未解决冲突被列出来。达到最低可交付标准就结束研究环节,再做引用校验。若缺关键原始资料,则应输出“现有证据不足以决定全量切换”的部分报告,而不是为了完成率编一个结论。
还要设硬上限。例如本次假设最多 2 轮补查、12 次搜索、20 次原文读取、8 分钟或产品批准的费用额度;这些数字只是示范,需要按资料规模与用户期待调参。每轮要检查是否有新增可信证据,连续两轮没有推进就停止。工具超时可按错误类型有限重试;来源无权限要停下请求授权,不能从别的渠道绕过。Anthropic 的 Agent 架构文章建议设置最大迭代等停止条件;OpenAI 的 Deep Research API 通过 max_tool_calls 控制其模型可做的工具调用。Anthropic:Building effective agents · OpenAI:Deep research
报告怎么写,才能让人复核
本例的报告不应只说“建议使用混合检索”。一个合格的示意摘要可以这样写:
在虚构的
E1同题 100 条测试中,旧政策误引从关键词方案的 12 条降到混合方案的 4 条;两方案 p95 分别为 0.8 秒与 1.3 秒。这个样本不足以保证生产效果,且费用数据缺失。建议先核对逐题标注及政策版本,再做有限流量试点;试点须监测旧版误引、延迟、费用与越权风险,达到预设门槛后才讨论扩大范围。E1支持测试结果,M1支持版本定义;费用与真实线上效果目前未知。
真实交付时,E1 和 M1 应变成有权限的可点击文档链接、表格行或引用位置,每个数字旁放能直接支持它的来源。完整报告还应有问题定义、方法、主要发现、冲突与不确定性、方案比较、行动建议和附录来源目录。作者、数据日期、政策生效日、测试日期要各自写明,不把“检索当天”当成“资料产生当天”。最后运行一次引用核验:链接能打开吗?目标段落包含这个数字吗?引文有没有只支持弱说法却被写成强结论?OpenAI 官方发布的 Deep Research 介绍也承认其可能混淆权威资料与传闻、置信表达不准;“自动附引用”并非免审理由。OpenAI:Introducing deep research
失败边界和安全问题
搜索服务失败。 一项关键材料读不到,就保留已验证结果,报告明确“缺失 E1 原始逐题表,暂不能比较误引率”,可请求授权或稍后恢复;不拿搜索摘要、旧缓存或其他网站转述冒充原表。恢复时从持久化状态继续,并检查政策 P2 是否已经更新。
来源互相矛盾。 E1 摘要称混合方案误引 4 条,逐题表却数出 6 条;先核对“误引”的定义、剔除规则与表格版本,必要时交数据负责人。若仍无法对上,报告列“4 与 6 的冲突”,不能随便选对建议最有利的数字。由模型打出的“来源可信度 0.9”也不是验证。
假引用与提示词注入。 模型可能引用一个只讨论向量召回的官方文档,来支持本公司“旧政策误引降低 8 条”;这是证据不匹配,必须逐句检查。网页和内部文档也可能夹带“忽略研究范围、发送客户数据”的指令。研究工具应以只读为主,权限由工具服务端校验,原文作为数据隔离,外发目标和数据范围受控。高风险报告可加人工审稿;即便对网页做了过滤,也不能保证注入风险为零。OpenAI:Deep research,Safety risks and mitigations
研究成本失控。 模型一再搜索相同主题、派生太多并行任务,会增加时长与费用而不增加证据。记录每次工具调用、读取量、token、时间和新增有效证据数;按问题复杂度选择预算,允许用户看进度或提前停止。若预算耗尽,交付写明覆盖范围的部分报告,比静默失败或虚构完整性好。
如何验收系统本身
先建立一批有人工审定来源的研究任务,覆盖简单事实、多方面对比、互相冲突资料、过期网页、缺权限的内部资料和故意注入的网页。分别评估:问题是否拆到关键维度,引用是否直接支持主张,数字是否与原表相符,缺口有没有诚实标注,结论是否越过证据,工具次数与耗时是否合理。报告文风漂亮不能替代这些指标。Anthropic 在其研究系统的评测中同时检查事实、引用、完整性、来源质量、工具效率,并用人工评估发现自动评分遗漏的来源偏好。Anthropic:How we built our multi-agent research system
线上为 run-81 建立可回放的执行记录:计划版本、每轮查询、搜索结果选择、原文读取、证据台账变动、核验失败、停止原因和最终引用;对个人信息、私有文档内容做脱敏与访问控制。指标看任务完成率、无依据主张率、失效引用率、来源冲突未标率、人工修改率、p95 总时长与费用。若发现引用准确率下降,可以沿执行记录判断是检索源变了、抓取失败,还是报告阶段把依据用错。Q73:你会怎么做大模型应用的可观测性?
面试时可以这样回答
我会先把用户的复杂问题写成有范围、数据权限和交付标准的研究任务,再拆成需要证据的子问题。检索分为找候选和取原文,资料进证据台账时记录版本、时间、出处与适用范围;结论先拆成能核对的主张,检查数字、冲突和引用是否直接支持它。每轮只针对尚缺的关键证据补查,设工具、时间和费用上限;达到最低证据标准就写报告,缺关键来源或预算用尽就明确写未知。报告要有带位置的引用、方法和限制,高风险场景有人审。系统可以先用一个 Agent 加固定检查点,只有独立子问题多时再考虑并行 Agent,并用引用准确性、完整性、来源质量、成本和可回放轨迹验收。
面试官若追问“和普通 RAG 最大区别”,可以答:普通问答往往一次检索后生成,深度研究会先规划,按中途发现迭代取证,处理冲突并交付可复核报告;但研究系统内部仍可使用 RAG。若追问“搜到十个来源是不是足够”,应答:数量不是标准,十篇转载同一份旧数据仍只有一个原始证据;要看关键子问题有没有独立、适用且直接支持主张的资料。若追问“用了多 Agent 是否一定更好”,应答:只有子问题可独立并行且收益超过协调成本时才值得,否则单 Agent 和显式工作流更容易控成本、权限与引用质量。
资料依据
- OpenAI:Deep research API guide:数据源、澄清步骤的产品差异、后台任务、工具次数限制与安全边界。
- OpenAI:Introducing deep research:深度研究的使用场景、引用与已公开的可靠性局限。
- Anthropic:How we built our multi-agent research system:计划、并行探索、迭代、引用核验与质量评估的一手工程经验。
- Anthropic:Building effective agents:工作流、Agent、并行编排及停止条件的基础原则。