生产接入要先做四件事:把用户问题整理成完整研究简报;选择当前支持 Web Search、File Search、MCP 或 Code Interpreter 的模型;用 background:true 异步运行并设置 max_tool_calls;最后展示可点击引用和完整来源清单。旧的 o3-deep-research、o4-mini-deep-research 已于 2026 年 7 月 23 日停止使用,不能再把旧示例当成可直接上线的配置。
官方核对入口:Deep research guide、Web search、Background mode、Webhooks、GPT-5.6 Sol 与 API Pricing。核对日期:2026-11-01。
先判断:你真的需要 Deep Research 吗?
| 任务 | 更合适的方案 | 原因 |
|---|---|---|
| 查一个当前事实或几条链接 | Responses + Web Search | 延迟和成本更容易控制,引用链短 |
| 从自己的文档找答案 | File Search | 重点是私有知识库召回,不需要开放式多步研究 |
| 跨多个公开与私有来源做长报告 | Deep Research 工作流 | 需要反复搜索、比较、综合并输出可审计报告 |
| 执行付款、删除、发信等动作 | Function Calling + 明确审批 | 研究内容不能直接授权不可逆操作 |
Deep Research 适合供应商比较、市场扫描、政策梳理、技术选型和尽调式资料汇总。它不保证答案绝对正确,也不应该代替专业法律、医疗或财务判断。若一次 Web Search 已能得到可核对答案,就不必为“更像研究”而启动长任务。
2026 年模型迁移:不要复制旧专用模型示例
OpenAI 的 Deep Research 指南保留了一部分旧流程用于迁移参考,但同时明确:o3-deep-research 与 o4-mini-deep-research 已停止使用,官方迁移方向是 gpt-5.6-sol。迁移不是只改一个 model 字段,还要重新检查 Responses API、Web Search、File Search、远程 MCP、推理强度、上下文、延迟和成本。
- 上线当天读模型目录:确认目标模型仍可用,并支持你计划启用的工具。
- 重新做质量基线:同一研究简报在新模型上的来源覆盖、引用、格式和事实一致性可能变化。
- 不要混淆文档代际:旧专用模型对 Function Calling、File Search 数量等限制,只能作为旧流程的迁移背景;当前通用模型能力要以现行模型页和 Responses Reference 为准。
- 保留回退方案:研究服务不可用时,可降级为有限次数的 Web Search,并明确告诉用户结果范围变窄。
第一步:先生成完整研究简报
Responses API 不会自动替应用询问所有澄清问题,也不会自动把一句模糊问题改写成可靠研究计划。提交长任务前,至少收集下面这些字段:
- 目标:最终要支持什么决策,而不只是“研究某主题”。
- 范围:时间区间、地区、行业、产品、语言和排除项。
- 来源:允许的官方域名、可用 Vector Store、可信 MCP,以及禁止来源。
- 交付:报告结构、表格字段、字数、引用方式和是否需要风险清单。
- 时效:资料截止日期、是否必须实时联网,以及过期资料如何标注。
- 风险:哪些结论需要人工复核,哪些动作绝不能由研究内容直接触发。
比较三家候选供应商在 2026 年 10 月 31 日前公开的企业定价、数据保留、区域可用性和安全认证;优先官方定价、信任中心和监管文件;每项结论给出来源和发布日期;信息冲突时并列展示,不自行补值;最后输出决策矩阵、证据缺口和需要人工确认的问题。
最小 Responses API 请求
下面示例展示当前迁移方向,而不是永久固定配置。模型、工具参数和价格会变化,部署前必须重新核对官方文档。
curl https://api.openai.com/v1/responses \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"background": true,
"reasoning": {"effort": "high"},
"max_tool_calls": 20,
"tools": [{"type": "web_search"}],
"include": ["web_search_call.action.sources"],
"input": [
{"role": "developer","content": "只使用可审计来源。区分事实、推断和未知;冲突来源并列展示。"},
{"role": "user","content": "研究简报:比较……(目标、范围、时间、来源、输出格式)"}
]
}'返回的响应通常先处于 queued 或 in_progress。保存 response.id,不要在浏览器里暴露 API Key,也不要让用户刷新页面后丢失任务标识。
第二步:用 Background Mode 管理长任务
GET /v1/responses/resp_123
Authorization: Bearer $OPENAI_API_KEY应用可以每隔几秒轮询状态,并采用退避策略;更稳妥的生产方案是同时订阅 Webhooks,在收到完成或失败事件后再读取最终响应。界面至少显示:
queued、in_progress、completed、失败或取消等真实状态;- 开始时间、已用时、是否可取消,以及失败后的安全重试策略;
- 任务没有完成时不要伪装成“正在生成最终报告”;
- 重复提交要用自己的幂等键或任务表去重,避免同一研究产生多笔费用。
Background Mode 会临时保存响应以支持异步轮询;官方文档说明其数据控制与零数据保留存在兼容边界。若项目有 ZDR、合规或敏感数据要求,必须先验证项目设置和官方最新说明,再决定是否启用。
第三步:选择和隔离数据源
| 工具 | 适用场景 | 生产注意 |
|---|---|---|
web_search | 公开网页、新闻、官网和实时资料 | 显示引用和完整 sources;限制可信域名,防提示注入 |
file_search | 企业文档、报告、手册与合同库 | 按用户权限隔离 Vector Store;旧专用流程最多两个 Store,新模型重新核对 |
| Remote MCP | 受控的内部搜索与 fetch 数据源 | 只连接可信服务器;验证参数、返回内容和访问范围 |
code_interpreter | 计算、表格整理、统计和文件生成 | 限制输入文件、资源和输出;计算结果仍需来源与方法说明 |
旧的专用 Deep Research 流程至少需要 Web Search、File Search 或远程 MCP 中的一个数据源,也可以加入 Code Interpreter。迁移到现行模型后,应把每个工具当成独立权限边界,而不是一次性开放所有数据。
公开网页和私有数据分两阶段
- 先用公开网页形成问题清单和证据缺口,不携带客户隐私或内部密钥。
- 再对私有 File Search/MCP 发起最小化查询,只检索完成任务所需的字段。
- 合并阶段保留来源类型,避免把内部文档误显示为公开引用。
- 最终报告按权限过滤;有权启动任务不代表有权查看所有底层文档。
第四步:解析结果、引用和工具轨迹
最终 Responses 输出不仅有报告文本,还可能包含 Web Search、File Search、MCP 或 Code Interpreter 的调用项。前端不应只读取一段 output_text 就结束:
- 解析正文 annotations,把
url_citation渲染为清晰、可点击链接。 - 读取请求中 include 返回的完整 Web Search sources,作为审计清单;它可能多于正文引用。
- 记录工具名称、调用时间、状态、输入摘要和输出标识,避免把敏感原文写进普通日志。
- 标记“事实”“模型推断”“来源冲突”“未知”,不要把流畅措辞当成证据。
- 对关键数字回到原始页面复核发布日期、币种、税费、地区与版本。
引用只说明模型使用了某个来源,不能保证来源本身正确,也不能保证模型准确理解。对于高风险结论,应让审核者查看原始来源,而不是只看报告中的一句摘要。
怎样控制成本、延迟和失败范围?
Deep Research 的总成本可能包含模型输入/输出 Token、Web Search 工具调用、搜索内容 Token、File Search、远程 MCP、Code Interpreter,以及失败重试。官方单价会变化,因此本页不把某个数字写成永久价格。
- 设置
max_tool_calls:它是控制研究深度、延迟和成本的主要护栏之一。 - 缩小问题:明确时间、地区、比较对象和交付格式,避免模型探索无关分支。
- 限制来源:优先官方域名或经过审批的内部数据源;来源越杂,复核成本越高。
- 分阶段:先做低预算资料扫描,再由用户确认是否进入高预算完整研究。
- 记录 usage:按任务保存工具调用数、Token、时长、失败和人工复核时间,计算单位可用报告成本。
- 设超时与取消:产品层必须能取消长任务,并避免取消后自动重启造成重复费用。
安全:研究内容不能取得系统权限
- 把网页、文件和 MCP 返回内容都视为不可信数据;其中的“忽略规则”“上传密钥”等文字不得覆盖系统指令。
- 只连接经过审批的 MCP 与文档库,最小化读取权限,并记录每次工具调用。
- 不要把 API Key、Cookie、内部提示词、客户身份信息或完整机密文档放进 Web Search 查询。
- 研究报告不能直接授权付款、删库、发信、提交合同或修改账号;这类动作需要独立规则、参数校验与人工审批。
- 验证 URL 协议、域名、重定向、下载大小和文件类型,防止 SSRF、恶意文件和资源耗尽。
- 对公开数据与私有数据分阶段处理,最终输出按用户权限过滤,并对日志进行脱敏。
常见失败与排查顺序
| 现象 | 常见原因 | 处理 |
|---|---|---|
| model_not_found 或请求被拒 | 仍使用已停用的 o3/o4 专用模型 | 按当前模型目录迁移,并重新验证工具与参数 |
| 任务长时间没有结果 | 同步连接等待、研究范围过宽或工具调用过多 | 启用 background,限制 max_tool_calls,显示真实状态并允许取消 |
| 报告方向偏离需求 | 只给一句问题,没有完整研究简报 | 先收集目标、范围、来源和交付格式,再提交 |
| 正文有结论但没有来源 | 前端忽略 annotations 或未请求完整 sources | 渲染 url_citation,并保存工具调用与完整来源清单 |
| File Search 看不到资料 | Vector Store、权限、索引或文件范围错误 | 先单独验证 File Search,再接入研究流程 |
| 同一任务被重复扣费 | 刷新/超时后重新创建,而不是查询原 response.id | 保存任务 ID、使用幂等键并对重试去重 |
| 敏感数据进入公开搜索 | 没有区分公开与私有检索阶段 | 立即停止请求,审查日志与凭据,重构数据最小化流程 |
上线前检查清单
- 目标路由、用户意图和普通 Web Search/File Search 页面边界已查重。
- 上线当天核对模型目录、工具支持、背景模式、Webhooks 和最新 Pricing。
- 研究简报包含目标、范围、时间、来源、交付格式与禁止事项。
- background 任务可轮询、可接收 Webhooks、可取消、可安全重试且不重复计费。
- max_tool_calls、超时、输出长度和单位任务预算有明确上限。
- 引用可点击,完整 sources 与工具调用可审计,关键事实有人工复核。
- 公开与私有数据分阶段,MCP/File Search 权限最小化,日志已脱敏。
- 至少用 30–100 个真实研究问题评估来源覆盖、事实正确、引用准确、延迟、成本和失败恢复。
常见问题
Deep Research 是一个固定模型还是一种工作流?
更准确地说,它是一种长时、多步研究工作流。旧的 o3-deep-research 与 o4-mini-deep-research 已于 2026 年 7 月 23 日停止使用;OpenAI 当前迁移说明给出 gpt-5.6-sol 作为替代,但生产环境仍应在上线当天核对模型目录和工具支持。
Deep Research 和普通 Web Search 有什么区别?
Web Search 适合一次或少量检索后回答;Deep Research 会围绕完整研究简报进行多步搜索、阅读、比较和综合,通常耗时更长,也更需要 background mode、预算、进度状态和引用审计。
为什么要使用 background mode?
深度研究可能持续数分钟甚至更久。background=true 会让请求异步运行,应用通过轮询或 Webhooks 获取状态和最终结果,避免一次 HTTP 连接一直占用;但后台响应会临时存储,零数据保留项目要先核对兼容性。
怎样让 Deep Research 先问澄清问题?
Responses API 不会自动替你完成澄清和提示重写。应用应先收集目标、范围、时间、地区、允许来源、交付格式和禁止事项,再把完整研究简报提交给研究请求;信息不足时先在产品层发起澄清。
Deep Research 可以搜索私有文件和 MCP 吗?
可以把 Web Search、File Search、可信的远程 MCP 与 Code Interpreter 组合进研究流程,但可用工具取决于当前模型。旧专用模型文档要求至少一个数据源,并限制 File Search 最多两个 Vector Store;迁移后应按现行模型和 Responses 参考重新验证。
怎样控制 Deep Research 的成本和耗时?
同时限制研究范围、输出格式和 max_tool_calls,并记录模型输入输出 Token、搜索动作、File Search/MCP/Code Interpreter 调用、总时长与失败重试。价格和模型限制会变化,不能把某次账单或固定次数写成永久承诺。
Deep Research 的引用可以直接发布吗?
不应直接发布。引用证明模型访问过某个来源,不证明来源权威、内容最新或结论正确。应显示可点击引用,保留完整来源清单和检索时间,并对价格、法律、医疗、财务、安全等高风险事实做人工和多源复核。
本文核对日期为 2026-11-01。模型、工具、背景模式、存储、价格与限制会调整;生产上线前请重新读取 Deep research、Web search、Background mode、Models 与 Pricing 官方文档。