工作原理
DeepSearchQA 一次运行分为推理与判题两个阶段,判题阶段依据任务的答案形态采用不同判据。推理与判题
- 推理:被测 model 作为检索 agent,在 Harness(默认
naive_search_agent)驱动下逐题完成搜索 / 网页访问等多轮工具循环,并给出一段自然语言答案。 - 判题:评委 model(
judge_model)接收「问题 + 标准答案 + 答案形态 + 被测答案」,套用官方评分模板进行打分。评委与被测 model 是两个独立端点,须显式指定judge_model。
两种答案形态的判法
评委依据每条任务的answer_type 采用不同判据:
- 单答案(316 条):被测答案在语义上命中标准答案即判为正确,不要求逐字一致。
- 集合答案(584 条):标准答案为一组条目,被测答案须 逐项命中每一个条目;同时评委会检查被测答案是否包含标准答案之外的 多余答案。
Correctness Details(逐条目命中与否的布尔字典)、Excessive Answers(多余答案列表)、Explanation(判分理由)。一条任务被判为 正确,当且仅当 所有期望条目均命中 且 不存在多余答案;任一条目缺失或存在多余答案,均记为错误。
参数
通过--benchmark-params '{...}' 传入一段 JSON;也可写进 --config 指定 YAML 的 benchmark.params 块,同名项以命令行为准。合并与优先级见 Benchmark 概览。
参数总览
| 参数 | 类型 | 默认值 | 可选值 / 取值 | 说明 |
|---|---|---|---|---|
judge_model | 字典 | null | {id, base_url, api_key, api_protocol, params} | 评委 model 配置,必填(见 评委 model 配置)。判分由它裁定,非命令行的 —model-*。 |
category | 字符串 / 列表 | ”all" | "all”、单个类别名、或类别名列表(17 个见下方) | 按类别筛选任务;“all” = 不过滤。传入列表时取并集。 |
answer_type | 字符串 | ”all” | all / Single Answer / Set Answer | 按答案形态筛选任务;all = 不过滤。大小写与全名需精确匹配。 |
k、avgk、sample_ids 等遵循 Benchmark 参数 的约定。
category 全部 17 个可取值(点击展开)
category 全部 17 个可取值(点击展开)
Politics & Government(148)、Finance & Economics(132)、Geography(95)、Education(94)、Health(92)、Science(90)、Other(65)、History(44)、Travel(36)、Media & Entertainment(29)、Arts(26)、Technology(22)、Sports(20)、Current Events(3)、Biology(2)、Linguistics(1)、Arts & Entertainment(1)。括号内为该类别的任务数(合计 900)。评委 model 配置
judge_model 以字典形式传入:{"id","base_url","api_key","api_protocol","params"},指向评委 model 的独立端点,model 推理参数放在 params 下。
建议 固定使用同一个评委 评测所有被测 model。判分结果直接决定成绩,更换评委后成绩即失去横向可比性;同时不应让被测 model 充当自身的评委,否则既不公正也失去对照意义。评委无需特别强——DeepSearchQA 的判据(语义命中 + 多余项检查)相对客观,中等规模 model 即可胜任。AgentCompass 推荐 Qwen3.6-35B-A3B。
运行示例
DeepSearchQA 的运行命令形如agentcompass run deepsearchqa <harness> <model>,三个位置参数依次是:
deepsearchqa—— Benchmark ID;<harness>—— 驱动被测 model 完成检索循环的 Harness,默认naive_search_agent;其自身配置通过--harness-params传入;<model>—— 被测 model,即完成检索与作答的 agent;其访问凭据通过--model-base-url/--model-api-key传入。
--benchmark-params 传 Benchmark 层配置(评委 model、数据过滤,见上文参数总览),--harness-params 传 naive_search_agent Harness 自身配置(启用的工具、Serper / Jina 密钥、迭代数与超时等,完整清单见 NaiveSearchAgent Harness)。两段都可改写进 --config 的 benchmark.params / harness.params 块,同名项以命令行为准。
以下示例的 --harness-params 均通过 serper_api_key / jina_api_key 直接传入检索所需的 Serper 与 Jina 密钥(naive_search_agent 的 search / visit 工具依赖二者),三个示例只在 --benchmark-params 上有区别。
- 冒烟测试(单条跑通)
- 自定义参数
- AgentCompass 推荐配置
通过
sample_ids 仅评测一条任务,用于验证推理与判题的端到端流程是否正常,其余参数使用默认值。输出
一次运行产出两类结果,均位于results/deepsearchqa/<model>/<run>/ 下:聚合指标(summary.md,整体表现)与 单任务详情(details/,逐任务判分)。
聚合指标(summary.md)
summary.md 汇总本次运行的整体表现,分为运行概况与指标两部分。
运行概况
指标
只有一个主指标
accuracy:判为正确的任务占比。一条任务 当且仅当 所有期望条目命中且无多余答案时记为正确(记 1,否则记 0),accuracy 即所有任务的平均值。
单任务详情(details/)
每个任务对应一个 JSON 文件,其中评委对该任务的原始判分记录在extra.scoring 字段下,用于逐条追溯判定来源:
判题失败(评委端点报错、返回为空、JSON 非法等)时,该任务记为
correct=false,并在 extra.scoring.error 中标注失败原因(如 judge_call_failed / invalid_json_response)。