用 Deep Research 完成长时间调研
Deep Research 适合文献梳理、竞品研究、多来源事实核查,也适合需要比较多个解释的预测判断和对既有预测的复盘。这类工作需要反复搜索、阅读和交叉验证,不适合让当前对话一直等待。Agent 会把它交给后台 Agent 任务执行,同时继续处理你的其他消息。
它和“搜几个网页再总结一遍”不是同一件事。任务在自己的持久工作区中按阶段推进:先规划,再并行收集并把材料落成来源笔记,然后从证据推导结论,交由一个看不见研究过程的复核者反驳,最后对照成功标准逐条审计才交付。一次严肃的调研通常需要 30–90 分钟。只需要一个快速回答时,直接问即可,不必使用 Deep Research。
开始前
先完成快速开始,并确认 Agent 可以在聊天渠道中正常回复。需要搜索公开网页时,还要为 Agent 配置 web_search 和 web_fetch 模型档案。
后台任务始终通过 AIGateway 运行。要使用 ChatGPT 订阅额度,先创建一个 ChatGPT 订阅 Provider,再到 Console → 智能体 → 后台 Agent 任务 中选择它。
任务会自动获得该 Agent 当前启用、且允许在后台任务中运行的全部 Skills。实例启用了数据源类 Skill 时(例如财经数据接口或内部系统连接),任务会优先使用这些数据源,其次才是公网搜索。你不需要为任务单独授权一次。
发起调研
直接说明研究对象、时间范围、证据要求和交付形式,并明确要求后台执行:
请把这项工作作为 Deep Research 后台任务执行:
比较这三家厂商过去两个季度的定价和产品更新。
引用原始来源,区分事实与推断,最后给我一份带链接的中文报告。
如果需要扩大范围或使用付费数据源,请先问我。
创建前的澄清
Agent 不会拿到一句话就开工。创建任务前,它会像访谈一样逐项澄清还没定下来的研究选择:研究目标和用途、成功标准、范围与时间边界、证据规则、交付形式。它一次只问一个问题,并附上自己建议的答案;环境里查得到的事实它自己查,只把真正需要你决定的问题交给你。任务只在你确认之后创建。
这一步值得花几分钟。研究方向定错时,后面 60 分钟的收集和分析都会作废,而澄清一个问题只需要一句话。
不想逐条回答时,直接说“不用再问了,直接创建,剩下的你决定”。Agent 会简述它替你做的假设和留给任务自行决定的选择,然后创建任务。
一份好请求包含什么
明确的范围比“深入研究一下”更有用。下面这些内容写得越清楚,报告越接近你要的东西:
- 研究对象和要回答的问题,而不只是一个主题。“分析新能源行业”和“这三家厂商谁在未来两个季度更可能降价,依据是什么”会得到完全不同的报告。
- 时间范围和信息截止点。做复盘或还原当时判断时,这一条决定任务能不能使用事后才知道的信息。
- 证据规则:是否只接受官方来源、是否必须给出处、事实与推断是否必须分开。
- 分析方法(可选):例如要求用 ACH 比较竞争假说,或要求用历史案例做前瞻。不指定时任务自己按问题选择。
- 交付形式与语言:默认交付 Markdown 报告;要求 PDF、PPT 或网页时只交付该格式(除非你同时要 Markdown 源文件),未指定视觉风格时采用该 Agent 的
DESIGN视觉规范。 - 边界:预算、可否使用付费数据源、是否允许扩大范围,以及截止时间。
篇幅按约数处理:“3 页 PDF”指大约 3 页,除非你要求精确值。
任务如何执行
了解任务内部的工作方式,有助于你解读进度、判断结果可信度,也知道该怎么追问。每个 Deep Research 任务都在自己的持久工作区中按四个阶段推进。
一、规划
任务先列出工作区中可用的 Playbook,读取与当前问题相关的方法。研究范围很宽、研究对象含义不清,或相关事实可能在模型知识之后发生变化时,任务会先派一个子 Agent 做一次快速探查。这次探查不收集证据、不下结论,只用来确认研究对象当前的含义和边界,找出模型可能不知道的关键概念、研究维度、检索词和数据源。
然后任务才制定详细的信息收集计划。先探查再规划,是为了让计划建立在当前事实上,而不是建立在模型记忆里的旧版本世界上。
二、收集证据
多个子 Agent 并行执行收集计划。有价值的材料都整理成 sources/ 目录下的 Markdown 笔记,开头用 YAML 记录来源、发布时间、作者、置信度和链接。后续所有分析都引用这些笔记,而不是引用某一次搜索的临时印象。
收集遵守一条所有权规则:每个数据源、每份原始文档只有一个负责人,它收集一次并写成文件,其他子 Agent 读这个文件,不重复请求。同一份公告、财报或数据集只下载一次,并用可识别的名字命名,方便后面的子 Agent 找到。工具支持批量时按批请求,不逐条调用。
已启用 Skill 能提供的数据优先于公网检索。任务先读 Skill 的说明,只有 Skill 覆盖不到、或调用后确认数据不存在时才使用 web_search 和 web_fetch,不会拿公开网页去替代本该来自数据接口的数据。Skill 拿不到的内容会作为证据缺口记录在 sources/ 中,而不是悄悄跳过。
信息不一定只能检索得到。需要时任务会写脚本处理上游原始数据,从结构化数据中算出所需的指标。初步整理后,任务会检查是否仍有缺口、是否存在互相冲突的信息、后续分析所需的上下文是否齐全,并按需补收。
三、分析与复核
结论必须从可得信息一步步推导出来,形成闭合的逻辑链,而不是先有判断再找支持。报告要区分事实、观点、假说和推断;当前证据允许多种解释时,任务会把所有解释列出来,说明自己倾向哪一个以及把握程度。任务对新闻和宣传口径保持怀疑,并在写作过程中主动对抗确认偏误、样本偏误和叙事谬误。
分析完成后由一个独立复核者审查。这个复核者不继承任何对话轮次,也拿不到任务的私有工作状态文件,只拿到报告和你的研究目的。它同时看形式和实质:形式上检查事实、观点与假说是否分开、引用是否充分、结论对读者是否真有信息量;实质上做对抗性审查,检查逻辑是否自洽、是否存在其他解释、是否颠倒因果、是否先射箭再画靶。
复核者只提意见,最终判断仍由研究者负责。每一条实质分歧要么改掉受影响的分析和报告,要么连同理由保留在报告里可见。分歧不会被抹平成表面一致。
四、交付
交付前先做成功标准审计:报告要对每一条成功标准给出交代——要么用有出处的证据满足它,要么把它作为公开缺口写明,并说明这个缺口对结论意味着什么。缺口会让研究失去意义、而时间又允许时,任务会针对还能拿到的证据继续补收;交付一份迟到的报告和交付一份残缺的报告同样可能让研究失败。
之后任务按你要求的格式生成交付物,并交给一个子 Agent 做一次轻量终检。报告用你的语言写作,遵循奥威尔的写作六条,不添加免责声明。
工作状态、恢复与重启
任务把私有工作状态记在工作区的 research-state.md 中:每条成功标准和它当前的状态、已经形成的候选结论和支撑上的缺口、已经排除的方向和排除原因,以及尚未解决的信息可信度疑虑。这个文件是工作记忆,不是交付物,也不会给任何复核者看——独立复核必须自己形成判断,不能顺着研究者的思路走。
它的作用是让进度可以幸存。Worker 中断或上下文丢失后,任务凭这个文件继续,不重新探索已经定下来的部分。
研究中途发现框架错了——认错了对象、读偏了问题、核心假设不成立——任务不会打补丁。它会把修正后的框架写进 research-state.md,丢弃被错误框架污染的分析,重做受影响的阶段,但保留已经收集的 sources/,只补收因为框架修正而不够用的部分。一份建立在错误框架上的报告会浪费整个任务,所以重启比看上去便宜。
Playbook:可插拔的研究方法
Playbook 是任务工作区 playbooks/ 目录下的方法论文件,随 deep-research Agent Plugin 的工作区模板分发。每个 Playbook 在开头声明自己适用的场景;任务在规划阶段列出全部 Playbook,读取与当前问题相关的那些。
Playbook 不只是补充建议。它可以用自己的流程替换默认的分析、验证和写作顺序——ACH 就替换了默认的单轮复核。因此方法论是可以被替换和扩展的:研究方法写在文件里,而不是焊死在模型或代码里。
当前内置两个通用方法。
ach:竞争假说分析
信息不完整、互相冲突、甚至可能被刻意误导时,重要的预测或诊断需要在多个合理解释之间做比较。ACH 把这个比较摆到台面上,让判断可审计。它不会改善糟糕的证据,也不会替你算出答案。
只有一个合理答案的事实查询不需要 ACH;有可靠数据和合适的统计或因果模型时,应该用那个模型,而不是拿 ACH 当替代品。
先立假说,再看证据。 任务先写清确切问题、信息截止点,以及预测的时间跨度和结果定义,然后在评估证据之前生成所有合理假说。这个顺序防止第一个看起来成立的解释定义整场分析。每个假说要回答同一个问题、在同一层次、覆盖同一时段,并说明假说之间是否互斥、是否穷尽。假说数量没有硬性要求;一个假说在比较给出修正理由之前保留,缺乏支持不等于被证伪。
证据进入一张可检查的矩阵。 任务维护一份 competing-hypotheses.yaml,它是跨假说比较的唯一权威文件:每一行是一条可以对所有假说逐一评估的命题,可以是一次观察、一条转述、一个本该出现却没出现的信号、一个分析假设、一条逻辑论证或一个基础比率。每行记录它的真实类型、来源路径或分析依据,并保留来源的限定语——来源说“据称”就不能当成已确立的事实。写完后运行结构检查:
bun tools/ach_check.ts
这个检查器只发现结构性遗漏和不安全或缺失的本地来源路径。它不判断假说是否合理、命题是否为真、来源是否支持它、关系判断是否正确。工具负责机械可查的部分,判断仍然是人和模型的责任。
按区分力比较,而不是按支持数量。 对每一行,任务问的是“如果这个假说成立,这条信息有多大概率出现”,而不是“这条信息能不能证明这个假说”。关系只用六个标签:预期、相容、张力、矛盾、未知、不适用,每个标签都要写简短理由。要横着读一行再竖着读一个假说——区分力来自一行内部各假说之间的差异;在所有假说下都相容的信息可能很重要,但对区分它们几乎没有用。
依赖与通道覆盖。 互相转载的报道算一个信息来源;同一事件派生的多个指标、同一数据集算出的多个结果同样不是独立支持。相关的行可以保留有用细节,但不能制造独立证据。更容易被忽略的是通道:不同假说往往出现在不同的地方,如果某个假说的证据本该出现在一个你没有检索过的通道里,这场比较衡量的是你的检索覆盖面,不是真实世界。所以每个假说都要写明它会在哪个通道显现,然后去那里收集,或者把它记为覆盖缺口。
缺席信号与关键支点。 一个信号的缺席只有在它本该可以观察到、且检索有理由发现它的情况下才构成反面证据。任务还要找出驱动结论的少数关键支点,逐个测试:如果这一条是假的、有误导性、不完整、依赖于另一条,或者是被刻意制造出来误导的,判断会怎么变。整体把握程度取决于假说覆盖度、证据质量、依赖关系和敏感性,而不是收集到的材料数量。
三轮渐进披露复核。 ACH 用自己的复核协议替换默认复核,同一个复核者走三轮,顺序本身就是防线:
- A 轮:只看来源独立重建。 复核者只拿到你的研究目的、确切的 ACH 问题、信息截止点和
sources/的访问权,看不到矩阵、报告、研究者倾向的假说和推理过程。它要自己识别合理假说、最有区分力的证据、各条证据与各假说的关系、关键支点,并给出自己的初步排序,同时指出缺席信号、隐含假设、来源依赖、截止点泄漏和可能的隐瞒或欺骗。 - B 轮:对照矩阵找缺陷。 复核者记录完自己的重建之后,才拿到
competing-hypotheses.yaml,逐条比对两份分析,追溯有出处的陈述、检查每个关键支点和有争议的行,报告具体缺陷及其理由。 - C 轮:核对报告。 所有 B 轮分歧处理完之后,从矩阵写出报告,再交给同一个复核者,检查报告是否忠实呈现相对评估、区分性证据、反面证据、未决问题和把握程度的依据与限制。
关键在顺序,不在于换一个复核者:矩阵必须在复核者记录完自己的重建之后才披露,否则它读到的第一个结论就会成为它的锚点。
不把矩阵变成概率。 定性矩阵不产生后验概率,它的标签不是似然,行数不是概率。要给数字时,必须区分明确标注的主观估计和真正算出来的贝叶斯结果,而贝叶斯计算需要完整的可能性划分或显式联合模型、先验、条件似然,以及对证据依赖的处理。
证据不足是一个结论,但不是出口。 它是最容易辩护的判断,所以可能吸收掉一场本可以有结论的分析。比较无法分开假说时,报告要说明这对读者意味着什么、如果被否掉的假说为真代价是什么,以及哪一个观察能把它们分开。后续研究按区分假说的能力选择,不按能增加多少信息量选择。
analogical-foresight:类比预见
历史案例可以为前瞻分析提供机制、变量和检验点。类比分析的基本单位是一条迁移主张:
来源案例中有证据支持的机制 → 到目标的具体映射
→ 迁移成立所需的条件 → 目标侧可观察的信号
只有这条链完整时,历史才构成证据。表面相似和一个讲得通的历史故事,不能证明同一个机制在目标身上运作。
先立目标框架,再找案例。 任务先说明目标问题、信息截止点、时间跨度和当前所处阶段,收集足够的目标信息,然后在提到任何历史案例之前先勾勒目标的结构:已观察到的前提条件、事件序列、约束和已发生的结果;推断出的因果关系及各自的证据;以及可能改变分析的未知因素和未解释阶段。顺序颠倒时,一个鲜活的历史案例会先替你定义问题。做还原当时判断的复盘时,后来才发生的目标事件不能用来挑选案例、定义目标结构或评判映射。
从因果缺口生成候选。 候选案例来自目标框架中不确定的关系、缺失的因素和未解释的阶段,跨行为主体、跨时期、跨领域地找同一种有向关系、因果动态或功能约束。先生成再评估,避免第一个熟悉的案例结束搜索。候选池困在一个熟悉领域或反复讲同一个历史故事时,任务可以派一个只看得到目标框架的隔离子 Agent,让它提出跨领域案例、失败案例和结果相反的案例——它只负责生成候选,不评判目标。
先确认来源案例的机制。 事件序列还不是因果解释。任务要核实每个保留案例的事实,确认支持所声称机制的证据,并检查共同原因、替代机制、偶然性、选择效应或事后叙事能否解释同一串事件。同一事件的别名、子事件、上位集合或另一种说法不构成独立支持。关系相反、迁移失败、阶段不同或边界条件被打破的案例仍然有用,它们是反例,或者是机制适用边界的证据。
逐条审计迁移主张。 每一条会影响答案的类比主张都要把六件事写在一起:来源机制及其证据、映射到目标的具体关系、实质差异(前提、角色、方向、时序、规模、范围、激励等边界条件)、迁移假设、依赖关系(共同来源、嵌套事件、共同冲击、政策模仿、共同制度或共同测量口径),以及一个目标侧可以支持或削弱这条迁移的观察。分析行为主体时要用它自己的目标、约束、激励、信息和决策过程;换成你在同样位置会怎么做,不是关于它的证据。一个保留的案例至少要贡献一条候选机制、缺失变量、条件路径、目标侧指标、反例或边界条件;只贡献一段历史叙事的案例应当移除。
跨案例综合要先查依赖。 多个各自独立提供信息的案例,可以降低对单一历史故事的依赖,但仍然不能证明该机制在目标身上运作。任务要检查表面的重复是否来自同一段历史、同一个制度、同一份叙事来源、同一次冲击、同一条传导路径、政策扩散或同一种测量方法。有正面模式时也要去找相关的反面案例:所提因素存在但结果没有出现,或结果通过另一种机制出现。刻意挑选出来的类比集合不是参照类,它的案例数不能当作基础比率、概率或把握程度。
允许得出“没有可辩护的类比”。 分析完成的标准是:每条影响答案的类比主张都写清了机制及其区别于替代解释的证据、映射的具体关系及其方向与阶段与范围、实质差异与依赖与迁移条件,以及一个目标侧检验;所有可能改变判断的反例和失败映射都有交代。没有候选能满足迁移链时,正确的结论就是没有找到可辩护的类比,而不是勉强留一个讲得好听的。
两种方法可以组合
它们解决的问题不同,可以在同一项研究里衔接:类比分析可以提出一个 ACH 假说,或者指出应该去找哪一类证据;ACH 负责在这些假说之间做有区分力的比较。历史案例不是对目标的直接观察,它只能通过一条明确、可辩护的迁移主张来支持关于目标的主张。
为你的领域增加 Playbook
私有部署可以在工作区模板中加入自己的方法文件,例如内部尽调流程、行业数据源清单、某类决策的评审标准。文件带上 name 和 description 两个字段即可被发现;新创建的任务会在规划阶段自动看到它们,并在问题相关时读取。你不需要改动模型或代码。
任务运行时
Agent 创建任务后,当前聊天不会被占住。你可以继续提问,也可以在 Console → 后台 Agent 任务 中查看计划、进度、模型用量和当前状态。
任务需要你决定方向时,会回到原会话提问。请在同一会话中回答;waiting_on_user 表示正在等你,不是故障。你也可以随时在原会话补充材料或修正要求,主 Agent 会把它们转给任务。
查看结果
任务完成后,主 Agent 会先读报告再交付:报告声明的缺口或限制影响研究目的时,它会指出来;当缺的是它掌握的信息或你的一个决定时,它会补给任务并让任务继续完善,而不是把一份不合用的报告直接转给你。
拿到报告后,值得检查这几件事:结论是否有来源支撑、时间范围是否正确、事实与推断是否分开、报告有没有诚实写出缺口和把握程度。报告应当自包含,读者不需要打开其他文件就能理解结论、证据、限制和不确定性。想核对某一条证据时,让 Agent 从任务工作区把对应的来源笔记读给你;用了 ACH 时也可以让它给出假说矩阵中某一行的判断理由。
需要补充时,直接让 Agent 基于这项任务继续,不必重新描述全部背景。任务失败或长时间排队时,打开任务详情读取错误和状态。各状态的含义、取消方法和运行方式见后台 Agent 任务。
参考文献与设计差异
Ankole Deep Research 的设计与下列公开研究相互印证,也从中获得启发。它们各自在自己的基准上报告了当前最好的结果,而我们关心的是这些原则在一个企业私有部署里怎样才立得住。
- Chen, Y., Chen, G., Sun, Y., & Zhang, K. (2026). Analogical Deep Research: Retrieving and Integrating Historical Analogies for Foresight Analysis. arXiv:2607.13602.
- Zhu, C., Xu, B., Du, M., Wang, S., Wang, X., Mao, Z., & Zhang, Y. (2026). FS-Researcher: Test-Time Scaling for Long-Horizon Research Tasks with File-System-Based Agents. arXiv:2602.01566.
- MiroMind Team. (2026). MiroThinker-1.7 & H1: Towards Heavy-Duty Research Agents via Verification. arXiv:2603.15726.
方法写成文件,不是训练进模型。 CANA 是一套 agentic framework;MiroThinker 通过中期训练提高每一步的可靠性,并把验证直接放进模型自己的推理过程。两者都随模型交付。我们把研究方法写成工作区里的 Playbook 文件,由任务在规划阶段读取,一个 Playbook 还能替换默认的复核流程。代价是执行质量依赖模型的指令遵循能力;收益是换模型不用重训,私有部署可以为自己的领域增删方法,而这正是企业调研的常态——真正的差异往往在行业方法和内部数据源里,不在通用能力上。
独立性靠信息控制,不靠自我审计。 MiroThinker 在推理过程中审计自己的轨迹。我们的复核者不继承任何对话轮次,拿不到 research-state.md,在 ACH 下还必须先只看 sources/ 独立重建一遍比较,之后才被允许看矩阵,最后才看报告。理由很直接:审计自己的轨迹时,带着的是产生这条轨迹的同一套先验,而先看到结论的复核者会把它当成锚点。
持久化在任务生命周期层,不只是上下文外存。 FS-Researcher 用文件系统突破上下文窗口,这一点我们的 sources/ 笔记和工作区完全同意。差别在于我们的工作区属于一个有租约、可恢复、可追加消息、可等待用户回答的后台任务:Worker 挂掉之后任务继续,不只是上下文溢出之后继续。另外我们不采用固定的“资料员 + 写作者”分工——写作需要完整的分析链,硬拆会让报告变成对笔记的转述;我们在收集侧用的是“每个数据源一个负责人”的所有权规则,强制隔离只用在复核者身上。
类比要求一条可证伪的迁移链。 ADR 指出模型按表面特征而非底层机制寻找类比,并提出机制对齐与跨类比印证两条原则,这与我们的判断一致。我们的 analogical-foresight 把它落成一条必须写全的迁移链,并额外要求两件事:跨案例印证之前先查依赖,因为同一次冲击、同一份叙事来源或同一种测量口径造成的重复,看起来像互相印证却不是;以及每条迁移主张都要给出目标侧可观察的信号,让类比后来能被证伪,而不是只在报告里显得有说服力。
终点是你确认的研究目的,不是基准分。 论文面向基准优化,我们面向一个具体的人要用这份报告做的事:创建前先澄清成功标准,交付前逐条审计,缺口要写明后果,缺口影响目的时主 Agent 会回补并让任务继续。收集侧同样如此——已启用 Skill 的数据源优先于公网检索,Skill 拿不到的记为证据缺口。企业里的一份可用报告,取决于它是否用了权威数据、是否诚实交代了没做到的部分,而这两件事都不在通用基准的评分表上。
工作区中的 Playbook、复核协议、研究状态文件和交付审计由 AgentBull Ankole 团队设计与实现。