Skip to main content
DeepResearch Bench(arXiv)用于评测深度研究 agent 撰写研究报告的能力:给定一个需要联网检索、多步取证的开放式研究查询,agent 产出一份完整的 Markdown 研究报告,再由 RACE 与 FACT 两套框架分别评定报告质量与引用事实性。数据集共 100 条任务(中文、英文各 50 条),由领域专家撰写,覆盖 22 个主题。

工作原理

DeepResearch Bench 一次运行分为推理与打分两个阶段。打分阶段包含 RACE 与 FACT 两套彼此独立的框架,通过 metrics 选择运行其中一套或两套。

推理与打分

  • 推理:被测 model 作为研究 agent,在 Harness(默认 naive_search_agent)驱动下逐题完成搜索 / 网页访问等多轮工具循环,最终产出一份 Markdown 研究报告作为该任务的作答。
  • 打分:RACE 由评委 model(judge_model)将被测报告与一份参考报告逐条比对,评定报告质量;FACT 由 fact_judge_model 配合 Jina Reader 抓取被引网页,核查报告中的引用是否支持其论断。评委与被测 model 是两个独立端点,须显式指定 judge_model。
官方仅发布评测器,不规定推理侧的任何约束(工具、轮数、篇幅均不限),其排行榜成绩来自各家深度研究产品的真实输出。因此本 Benchmark 的成绩仅在 Harness、Harness 配置、评委 model 三者一致 的运行之间具有横向可比性,引用成绩时应一并记录这三项。

附加的引用格式要求

FACT 只能核查报告中确实写出的引用,而 agent 仅收到一个查询时,产出的报告往往通篇不含 URL——此类报告的 FACT 成绩为零,并不反映其真实的引用能力。因此在 require_citations 为默认值 true 时,查询之后会追加一段引用格式要求(中英文各一版,按任务语言选用):
该要求仅追加在发往被测 model 的提示词上,RACE 评委读到的始终是原始查询,因此 instruction_following 评定的是任务本身的要求,而非此处附加的要求。[标题](url) 也是官方抽取器原生支持的四种引用写法之一,并非本集成新增的格式。置 require_citations: false 即退回官方行为,仅发送原始查询。

RACE:基于参考报告的相对评分

RACE 不给绝对分。每条任务随数据集提供一份由强力深度研究产品撰写的参考报告,以及一棵带权重的评分标准树。打分分两步:
  • 清洗:先移除被测报告中的引用标记、参考文献列表与脚注,使评委比对正文而非参考书目。篇幅超出单次调用的报告按段落边界切块并发清洗。参考报告随数据集提供已清洗版本,无需重复处理。置 skip_cleaning: true 可跳过此步,直接评定原始报告。
  • 判题:单次调用内,评委依据每一条评分标准分别为两篇报告打 0-10 分。逐条分数先按评分标准权重折算为四个维度分,再按维度权重合成任务总分。
最终上报的是比值 target / (target + reference):0.5 表示与参考报告打平,大于 0.5 表示优于参考报告,小于 0.5 表示不及参考报告。四个维度——完整性(覆盖面)、洞察力(洞察深度)、instruction_following(指令遵循)、可读性——按同一比值分别上报。必需 Judge 请求或评分协议失败报告 FATAL,并使用共享评测重试预算。最终 FATAL 使整题失效且不发布 run 的正式分数;有效题可贡献明确标注的参考分。

FACT:引用事实性核查

FACT 核查报告中每一处引用是否真的支持其所在的论断,四个阶段均在保留引用标记的原始报告上进行:
  • 抽取:从正文提取 (fact, ref_idx, url) 三元组,[标题](url)、[15]、正文 15、[15†L10] 四种引用写法均可识别。
  • 去重:按 URL 分组,组内表述几乎一致的陈述合并为一条。
  • 抓取:每个唯一 URL 由 Jina Reader 抓取。抓取结果缓存于 AgentCompass 数据根目录下,可跨运行复用(scrape_cache)。
  • 校验:逐条判定陈述相对该网页为 supported、unsupported 或 unknown。
两条剔除规则与官方一致:判为 unknown 的陈述(链接失效、付费墙、页面不存在)从分子与分母中同时剔除;完全抽不出引用的报告整篇排除在 FACT 均值之外,而非记 0 分。

参数

通过 --benchmark-params '{...}' 传入一段 JSON;也可写进 --config 指定 YAML 的 benchmark.params 块,同名项以命令行为准。合并与优先级见 Benchmark 概览。

参数总览

参数类型默认值可选值 / 取值说明
judge_model字典nullid, base_url, api_key, api_protocol, params评委 model 配置,必填(见 评委 model 配置)。RACE 判分由它裁定,非命令行的 —model-*;同时作为清洗与 FACT 阶段的默认 model。
metrics列表[“race”, “fact”]race、fact 或二者运行哪几套打分框架。默认两套均运行,与官方 run_benchmark.sh 一致;仅评定报告质量时置为 [“race”]。
jina_api_key字符串$JINA_API_KEYJina Reader 密钥供 FACT 抓取被引网页。除 metrics 为 [“race”] 外必填,缺失时在构建配置阶段即报错。
fact_judge_model字典null同 judge_modelFACT 各阶段的评委;不填则回落到 judge_model。
cleaning_model字典null同 judge_model判题前执行清洗的 model;不填则回落到 judge_model。
language字符串”all”all / zh / en按查询语言筛选任务;all = 不过滤。中英各 50 条。
category字符串 / 列表”all""all”、单个主题名、或主题名列表(22 个见下方)按主题筛选任务;“all” = 不过滤。传入列表时取并集。
require_citations布尔值truetrue / false是否在查询后追加引用格式要求(见 附加的引用格式要求)。置 false 时仅发送原始查询,FACT 通常无内容可核查。
skip_cleaning布尔值falsetrue / false跳过清洗,直接评定原始报告。每条任务少一次 LLM 调用,但成绩会随之偏移。
pass_threshold浮点数0.50.0-1.0任务记为 passed=true 所需的最低当前主分数。启用 RACE 时,默认值表示「打平或优于参考报告」;仅启用 FACT 时,则表示引用准确率至少为 50%。
max_retries整数10≥ 1单次 RACE 判题的重试预算,覆盖 JSON 不可解析与维度缺失两类失败。
scrape_cache布尔值truetrue / false是否将抓取到的网页缓存于数据根目录下并跨运行复用。
max_urls整数00 = 不限单条任务最多核查的唯一 URL 数。非零值可控制成本,但会丢弃部分引用,丢弃量写入日志。
max_url_content_chars整数00 = 不截断校验前将每个网页截断至该长度。
clean_concurrency整数4≥ 1单条任务内的清洗并发数,仅在长报告被切块时生效。跨任务并发由 —task-concurrency 控制。
scrape_concurrency整数4≥ 1单条任务内的 Jina Reader 并发抓取数。
fact_llm_concurrency整数4≥ 1单条任务内的 FACT 判题并发数,覆盖抽取、去重、校验三个阶段。
sample_ids 等共享 Benchmark 字段遵循 Benchmark 参数 的约定。DeepResearchBench 声明标量主指标 score、二元辅助指标 passed,并将 RACE 各维度和引用统计作为辅助标量观测。k>1 时应使用 avg 执行策略;标量主指标选择 pass 会在预检时报错,详见指标与聚合。
Science & Technology(16)、Finance & Business(14)、Software Development(10)、Education & Jobs(8)、Health(8)、Literature(4)、History(4)、Hardware(4)、Industrial(4)、Art & Design(4)、Games(2)、Crime & Law(2)、Entertainment(2)、Sports & Fitness(2)、Software(2)、Transportation(2)、Religion(2)、Home & Hobbies(2)、Travel(2)、Food & Dining(2)、Fashion & Beauty(2)、Social Life(2)。括号内为该主题的任务数(合计 100,中英各半)。大小写与空格需精确匹配。

评委 model 配置

judge_model 以字典形式传入,包含 id、base_url、api_key、api_protocol 和 params,指向评委 model 的独立端点,model 推理参数放在 params 下。 建议 固定使用同一个评委 评测所有被测 model。RACE 判分是影响成绩最大的单一因素,更换评委后成绩即失去横向可比性;同时不应让被测 model 充当自身的评委,否则既不公正也失去对照意义。与 DeepSearchQA 等判据相对客观的 Benchmark 不同,RACE 评委还需具备 足够大的上下文窗口:单次判题须同时装入两篇完整研究报告与全部评分标准,通常超过 100k 词元;评委若直接拒绝该请求,将耗尽整个重试预算,该任务最终记为错误。 AgentCompass 推荐 GLM-5.2,RACE 与 FACT 共用。官方排行榜使用的是 RACE gpt-5.5、FACT gpt-5.4-mini,因此改用其他评委所得成绩可在内部横向对比,但不能直接与该排行榜对齐。

运行示例

agentcompass run 的三个位置参数依次为 Benchmark、Harness 和 Model;以下使用 deepresearch_bench、naive_search_agent 和 $MODEL_NAME,运行环境为 host_process。 运行前,在当前终端设置以下环境变量:
  • 被测 Model:MODEL_NAME、MODEL_BASE_URL、MODEL_API_KEY,设置方法见 Model 接入配置。
  • 评委 Model:JUDGE_MODEL_NAME、JUDGE_MODEL_BASE_URL、JUDGE_MODEL_API_KEY,使用独立且固定的评委配置。
  • 检索工具:SERPER_API_KEY 和 JINA_API_KEY,分别供 search 和 visit 使用。
配置归属与命令行覆盖规则见 run 命令。 jina_api_key 在两段配置中用途不同:Harness 用它支持 visit 工具,Benchmark 用它为 FACT 抓取被引网页。示例共用 JINA_API_KEY;只运行 RACE 时,agent 的网页阅读仍需要该密钥。
通过 sample_ids 仅评测一条任务,用于验证推理、RACE、FACT 的端到端流程是否正常,其余参数使用默认值。

评测结果

通用结果说明见运行目录、汇总成绩和单题文件与公共字段。

评分指标

DeepResearchBench 的主指标是标量 score,取值为 0–1,越高越好。启用 RACE 时,它采用前文相对评分的 overall_score;仅启用 FACT 时,它采用引用准确率。切换评分模式后,主分数的含义也随之改变。 FACT 的整体 citation_accuracy 按引用数加权:先分别合计受支持和已核查引用数,再相除;仅启用 FACT 时,整体 score 也使用该公式。派生指标 avg_citations 和 avg_effective_citations 分别为已核查、受支持引用总数除以计分 FACT 任务数。 RACE 与 FACT 可能覆盖不同任务,不能假设它们共享分母。未抽取到引用(no_citations_found)的任务不参与 FACT 均值;抽取到引用但所有判定均为 unknown 的任务仍计入计分任务数,已核查引用数为 0。主指标为标量,因此不支持 pass 执行策略;辅助指标 passed 仅用于报告通过情况。 多次尝试、分类聚合和计分异常的通用处理见指标与聚合。

单题结果与评分依据

每次尝试的 meta.benchmark 下,scoring 保存 RACE 与 FACT 证据,以及实际使用的 pass_threshold 和可用时的 passed 判定。下表字段均相对于 scoring: