深度研究智能体:为什么大多数实现要么无限循环,要么过早停止
传统的标准 LLM 在没有迭代检索的情况下,在多步网络研究基准测试中的得分低于 10%。深度研究代理(Deep research agents)——即在循环中进行搜索、阅读、综合和重新查询的系统 —— 得分则超过 50%。这种五倍的提升解释了为什么每个严肃的 AI 产品团队都在构建此类工具。但这无法解释为什么大多数实现要么在追逐无关的细枝末节时耗费 $15 的账单,要么在两次肤浅的搜索后就宣布胜利。
核心问题不在于构建循环,而在于知道循环何时应该停止。事实证明,这是一个出人意料的深度系统设计挑战,涉及收敛检测(convergence detection)、成本经济学、来源可靠性和多代理协作。
搜索-推理循环:理论简单,实践残酷
深度研究代理遵循一个看似简单的循环:制定查询、检索结果、阅读并提取信息、更新认知、决定是否需要更多搜索,然后细化查询或生成最终答案。这与单次 RAG(single-shot RAG)有着本质的区别,后者只需检索一次并生成一次。
这种差异至关重要,因为复杂的问题无法通过单次检索步骤来回答。“在共享 GPU 基础设施上运行微调模型的安全性影响是什么?”这类问题需要理解微调内部原理、GPU 内存隔离、多租户云架构以及最近的事件报告。没有任何单一查询能涵盖所有这些内容。代理需要在进行过程中发现自己不知道的东西。
生产环境的实现通常将其分为三层:
- 检索层(Retrieval layer):获取原始内容的搜索 API、网页抓取工具和文档获取器。
- 编排层(Orchestration layer):决定下一步搜索什么以及何时停止的控制逻辑。
- 推理层(Reasoning layer):解释结果、识别差距并综合发现的 LLM。
这种分离至关重要,因为每一层都有不同的失效模式。检索层会因为糟糕的来源而失效。推理层会因为幻觉而失效。但编排层 —— 控制循环的部分 —— 的失效方式最为隐蔽:它看起来在工作,实则在悄悄烧钱或产生肤浅的结果。
收敛问题:代理何时学到了足够的信息?
深度研究代理中最难的工程决策是停止准则(stopping criterion)。一个没有明确停止条件的代理会无限循 环。一个停止条件过于激进的代理则会产生与单次 RAG 同样肤浅的输出。
有几种实用的收敛检测方法,每种方法都有权衡:
信息增益阈值(Information gain thresholds)。在每次搜索迭代后,衡量提取的新信息量与代理已知信息的对比。当边际信息增益降至阈值以下时(例如,每次迭代的新事实少于 10%),代理宣布收敛。问题在于,如何精确地定义“新事实”以便进行自动化测量。
查询饱和(Query saturation)。跟踪代理生成的查询。当它开始产生与已执行查询语义相似的查询时,很可能已经穷尽了可访问的信息空间。这对于受限主题效果很好,但对于代理应该探索相邻领域的开放式研究则会失效。
覆盖率检查表(Coverage checklists)。代理在开始时将原始问题分解为子问题,然后跟踪哪些子问题已得到充分回答。收敛意味着所有子问题都已解决。这是最可靠的方法,但要求初始分解必须全面 —— 如果代理遗漏了一个重要的子问题,它将在一个不完整的答案上收敛。
基于预算的截断(Budget-based cutoffs)。最简单的方法:设置最大迭代次数、工具调用次数或 token 数量,并在达到限制时停止。Google 的 Gemini Deep Research 每个任务运行 80–160 次搜索。其他实现在达到固定金额时封顶。这根本不检测收敛 —— 它只是防止成本失控 —— 但在实践中,无论使用哪种策略,这都是每个生产系统所需的最后防线。
最稳健的实现结合了覆盖率检查表和基于预算的截断:力求完整,但保证终止。
