深度解析 Claude Deep Research 编排架构
- 作者

- 姓名
- Nino
- 职业
- Senior Tech Editor
调用一次 Claude 的 /deep-research 模式可能会消耗高达 657 万个 Token。如果将其转化为数据中心的能源消耗,这大约相当于一盏台灯连续亮好几天的能量。这不仅仅是一次简单的对话,而是一个庞大的、协同的计算工程。
最近,我利用该工具解决一个复杂的系统设计问题——如何防止本地 10B MoE(混合专家)模型在评估医疗转录文本时产生引用幻觉。通过重建 .jsonl 追踪日志和本地的 .js 编排文件,我发现了一个令人着迷的架构:一个用于对抗性验证的确定性 Map-Reduce 流水线。
技术血统:从自动找 Bug 到深度研究
在编排脚本的第 9 行,有一行注释揭示了它的前世今生: // Ported from bughunter architecture. WebSearch/WebFetch instead of git/grep.
这是一个关键的发现。该系统并非基于创意写作框架构建,而是从自动化 Bug 猎人(Bug-hunter)循环移植而来的。在 Bug 探测中,你会生成一个失败假设,然后针对代码库进行对抗性测试以证伪该假设。Claude 的 Deep Research 延续了这种对抗逻辑:针对用户的查询生成假设,然后通过抓取的证据系统性地尝试“杀死”这些假设。
为了构建类似的高可靠性系统,开发者通常会选择 n1n.ai,它提供了统一的 API 接入,允许在同一个框架内编排多种模型——例如使用 Claude 3.5 进行推理,使用 GPT-4o 进行验证。
软件框架:对模型的严格约束
在 LLM 领域,“框架(Harness)”是指一个受控环境,它将模型限制在特定的、类型化的任务中。该编排器定义了五个主要原语:
- SCOPE(范围设定):将根问题分解为多个子任务。
- SEARCH(搜索):执行有针对性的网络查询。
- EXTRACT(提取):从源中提取特定的主张和逐字引用的原文。
- VERDICT(裁决):由对抗性小组对主张的有效性进行投票。
- REPORT(报告):将经过验证的证据汇总成最终回复。
该流水线中的每一次 LLM 调用都被强制要求输出结构化的 JSON。这防止了“模型漂移”,即 AI 在自由格式的文本中开始幻觉或偏离主题。编排机制在工具调用层面强制执行了严格的 Schema。
研究策略:作为治理手段的常量
系统的大部分行为由文件顶部的四个硬编码常量控制:
const VOTES_PER_CLAIM = 3 // 每个主张的投票数
const REFUTATIONS_REQUIRED = 2 // 否决所需票数
const MAX_FETCH = 15 // 最大抓取源数量
const MAX_VERIFY_CLAIMS = 25 // 最大验证主张数
这些变量代表了“判断策略”。如果你需要一个更严谨的研究者,可以增加 VOTES_PER_CLAIM。如果你预算有限,可以降低 MAX_FETCH。通过使用 n1n.ai,开发者可以实现这种逻辑,将流水线的不同阶段路由到性价比最高的模型,同时保持高速吞吐。
执行步骤详解:医疗转录案例分析
在我的测试案例中,问题是如何解决 10B MoE 模型的引用幻觉。该模型虽然能找到引用,但其中 41% 的引用实际上并不支持评价标准。
1. Scope 阶段(任务分解)
编排器将这个模糊的问题拆解为五个具体的研究方向:
- 选择时技术(Selection-time techniques):将引用逻辑前置到生成阶段。
- NLI / Cross-encoder 分类器:使用专门的模型进行证据相关性验证。
- 归因评估基准:研究 ALCE、RARR、AIS 等归因系统。
- UX 降级方案:如何诚实地向用户展示弱证据或缺失证据。
- 怀疑论视角:分析为什么小规模 LLM 的自我验证通常会失败。
2. Fetch & Extract 阶段(抓取与提取)
系统对这些方向执行了 Map 操作。对于找到的每个页面,提取器会寻找具体的“主张(Claim)”。Schema 要求每个主张必须附带逐字引用的原文:
{
"claim": "在标注匮乏的医疗领域,Cross-encoders 的表现优于 LLM 自我修正。",
"quote": "仅仅切换更强大的模型并不能显著提高...",
"importance": "central"
}
如果没有找到相关主张,该页面会被立即丢弃。这确保了后续的 Reduce 阶段只处理高信号数据。
3. Triage 排序与分流
由于 MAX_VERIFY_CLAIMS 限制为 25,系统无法验证所有内容。它使用了纯代码编写的排序逻辑:
- 重要性:核心 (Central) > 支持 (Supporting) > 边缘 (Tangential)。
- 来源质量:原始 PDF > 二手资料 > 博客 > 论坛。
这种分流是由 JavaScript 运行时而非 LLM 处理的,确保了最关键的证据能优先进入昂贵的验证环节。
4. 对抗性验证(Verdict 阶段)
这是该架构中最令人印象深刻的部分。前 25 个主张中的每一个都会被发送给三个独立的 Agent。它们的提示词是一个对抗性清单:检查是否存在断章取义、数据偏倚或过度推断。指令明确要求:“如果不确定,默认设为 refuted=true(已否决)。”
在我的运行中,一个关于 GPT-3.5 精度的某些主张被以 2-1 的投票结果否决。原因是验证 Agent 发现原始论文仅报告了 Macro-F1 指数,而该指数可以通过调整阈值来刷高,因此“0.85 精度”的主张被视为过度推断。
构建你自己的研究框架
要实现这种级别的可靠性,不能仅仅依赖单个 Prompt。你需要一个能够管理状态和预算的流水线。利用 n1n.ai 提供的低延迟基础设施,你可以构建一个 Map-Reduce 智能体流:使用 Claude 3.5 Sonnet 进行初始的 SCOPE 和 EXTRACT 阶段,并使用 DeepSeek-V3 等高速模型进行 VERDICT 投票环节。
| 功能特性 | 标准 RAG 模式 | 深度研究框架 (Deep Research) |
|---|---|---|
| 逻辑类型 | 线性 / 检索 | 对抗性 / 迭代 |
| 输出格式 | 自由文本 | 结构化且经过验证的 JSON |
| 错误处理 | 容易产生幻觉 | 基础设施故障标记为“无定论” |
| 验证机制 | 单次通过 | 多智能体法定人数 (3+ 票) |
开发者专业建议
- 数据清洗:Claude 编排器使用正则表达式过滤抓取内容中的 ANSI 转义序列和 IDN 同形异义词。永远不要信任进入 LLM 上下文的外部数据。
- 引用优先选择:正如研究所发现的,防止幻觉的最佳方法是强制模型在撰写主张 之前 先选择引用原文。
- 证据预算:为阅读的来源数量设置硬性上限。高质量的研究在于过滤,而不仅仅是收集。
通过将 LLM 研究视为一个软件工程问题而非提示词工程问题,我们可以实现以前在小规模模型上无法达到的精度水平(0.85+)。
在 n1n.ai 获取免费 API 密钥。