Skip to main content
本页介绍运行目录中的 Benchmark 汇总和分析器汇总,帮助你选择要查看的文件,并理解其中的字段。 这两类结果回答的问题不同:
  • Benchmark 汇总说明评测完成了多少任务、得到哪些指标,对应 summary.md.summary_counts.json
  • 分析器汇总说明轨迹、错误或运行指标中发现了哪些现象,对应 analysis_summary.jsonanalysis_summary.md。分析结果用于诊断,不会改变 Benchmark 的判定。
这四个文件展示整个运行的汇总结果,而不是单个任务的原始记录。details/*.json 保存已经写入磁盘的逐任务记录,也是重新汇总和重新分析时的输入;评测结束时首次生成的 Benchmark 汇总则使用本次运行收集到的结果。

文件一览

运行尚未结束、在汇总前中断或 Benchmark 聚合失败时,summary.md 可能不存在。启用分析也不一定产生 analysis_summary.*:如果没有任务详情、没有尝试记录,或所有尝试都没有 analysis_result,AgentCompass 不会写入分析汇总。 同一组 Markdown 和 JSON 文件共享一次聚合结果,但会依次写入,不会同时完成。如果进程恰好在写入期间退出,目录中可能只留下其中一个文件。此时可重新运行对应的 summaryanalysis 命令。

Benchmark 汇总

summary.md

summary.md 是 Benchmark 汇总的可读版本。你可以先用它确认任务计数,再查看 Benchmark 指标及可选明细。 文件依次包含以下部分: 缩略结构如下:
Markdown 内容来自 Benchmark 聚合结果中的 countsmetricsdetails。结果对象还包含 schema_version(结构版本)和 extra(Benchmark 提供的附加信息),但这两个字段不会写入 summary.md 三个通用计数的含义如下: 不要假设 evaluated + error = total。Benchmark 还可能区分跳过、没有有效判定等状态,具体计数口径由对应 Benchmark 决定。指标名称、计算方式和数值范围也因 Benchmark 而异,请查阅对应的 Benchmark 文档 评测正常收尾时,AgentCompass 汇总本次运行收集到的任务结果,其中可能包含尚未写入详情文件的早期错误。单独执行 agentcompass summary 时,它会改为读取 details/*.json。两种结果通常一致;但如果任务在详情写入前就失败,重新汇总时没有对应详情,计数就可能不同。

.summary_counts.json

.summary_counts.json 是三个通用计数的机器可读快照,不包含 Benchmark 指标或分组明细:
工具可以通过这个文件快速读取运行规模和错误数量,但它不能替代逐任务详情,也不能单独重建 summary.mdagentcompass summary 会重新读取 details/*.json 并执行 Benchmark 聚合,不会直接采用这里保存的旧计数。

分析器汇总

分析器的输出先保存在每次尝试的 attempts.<index>.analysis_result.<analyzer-family> 中,再按任务、类别和分析器系列汇总到运行级文件。 <analyzer-family> 通常是分析器 ID,也可以是多个分析器实现共用的系列 ID。下文表格中的 analyzer 字段均指这个 ID。

analysis_summary.json

analysis_summary.json 适合程序读取,也包含 Markdown 版本未展示的异常样本文件索引。顶层字段如下: 前四个字段中的统计行使用相同的基本结构: 缩略示例:

多次尝试如何合并

同一任务包含多次尝试时,AgentCompass 按以下规则得到该任务的分析结果:
  1. 优先采用 solved_at 指向的尝试;如果没有成功尝试,则采用最后一次已保存的尝试。
  2. 随后检查其他尝试。如果某个分析器返回 is_badcase=true,该分析器的任务级判定会设为 true;只有首选尝试没有该分析器时,才会连同该次结果的 scoredetails 一并补入。其他尝试中的 falsenull 不会补入。
  3. 同一任务在同一分析器的统计中最多计数一次。
合并所有分析器时,badcase_count 表示至少被一个分析器标记的任务数,error_count 表示至少出现一个分析器错误的任务数,因此两者都不是各分析器对应计数的总和。计算合并行的 avg_score 时,每个任务贡献其所有可用分析器得分中的最大值。 汇总还会省略部分没有有效内容的行:
  • 如果一个用于检查异常样本的分析器在整个运行中既没有发现异常样本也没有报告错误,该分析器不会出现在汇总中;只提供统计、不返回 is_badcase 的分析器,以及包含错误的分析器仍会保留。
  • 对于已经保留的分析器,如果某类别有布尔判定但结果全部为 false 且没有错误,该类别行不会显示;如果该类别完全没有该分析器的结果,当前结构可能仍保留一行 total: 0

distributions

分析器可以通过 distribution_fields 声明需要汇总哪些结果字段。结果按 distributions.<analyzer-id>.<category>.<field> 组织,支持两种方式: 跨类别统计使用 __overall__ 作为类别键,没有类别的任务使用空字符串。对于已保留且声明了相应分布字段的分析器,value_counts 即使没有收集到值,也会显示 total: 0 和空的 distributionnumeric_stats 只有在收集到数值后才会出现。
同一次运行中的任务应统一使用类别:要么每条详情都有非空 category,要么全部不使用类别。自定义 Benchmark 如果混用这两种任务,分析汇总可能无法生成。

analysis_summary.md

analysis_summary.md 是同一次分析聚合生成的可读版本,依次包含:
  1. Benchmark 和 model 标题;
  2. Overall 表,按分析器显示 TotalBadcaseErrorBadcase RatioAvg Score,并包含合并所有分析器的 __overall__ 行;
  3. 每个任务类别的同结构表和 __overall__ 行;
  4. 存在分布数据时显示的 Distributions 部分,其中包含数值统计表和值频次表。
Markdown 文件不会列出 overall_per_analyzer[].items 中的全部详情文件名。如果需要按分析器定位异常样本,请读取 analysis_summary.json

生成和重新生成结果

随评测生成

agentcompass runagentcompass launch 会在每个评测请求成功完成 Benchmark 聚合后写入 summary.md.summary_counts.json。如果启用了分析且存在可聚合结果,还会写入 analysis_summary.jsonanalysis_summary.md

重新生成 Benchmark 汇总

agentcompass summary 读取已有的 details/*.json、运行元数据和恢复出的 Benchmark 配置,默认原地覆盖 summary.md.summary_counts.json。它不会运行 agent、Benchmark 验证器或分析器,也不会修改任务详情。 使用 agentcompass summary --dry-run 时,命令只在终端输出 Markdown,不修改运行目录中的文件。

重新运行分析器

agentcompass analysis 从已保存的尝试字段、规范化轨迹及其步骤指标和错误中恢复输入,并对每个可读取的尝试运行分析器。有新输出时,命令会更新 analysis_result,然后生成两种分析汇总文件。 该命令不会重新运行 agent 或 Benchmark 验证器,也不会重新计算 summary.md。如果分析器跳过某次尝试,或分析流程在产生新结果前失败,原有的 analysis_result 可能保留。 默认情况下,agentcompass analysis 会复制输入运行,并把结果写入带时间戳的同级目录。使用 --output 可以指定副本位置;只有使用 --override 才会在原目录中更新分析字段和汇总。 重新分析会从已保存字段重建分析输入,但无法还原所有评测时的上下文,例如轨迹步骤中的工具定义、meta 和每次尝试的解析后计划。依赖这些信息的分析器可能得到与随评测运行时不同的结果。
如果本次分析没有产生可聚合结果,AgentCompass 不会删除目标目录中已有的 analysis_summary.*。因此,仅凭文件存在不能判断它是否在本次分析中更新。通过 --benchmark-params 中的 sample_ids 只会限制重新运行分析器的任务;生成最终汇总时仍会扫描目标目录中的全部详情,并可能纳入未选任务原有的 analysis_result
Benchmark 汇总和分析器汇总彼此独立。使用不同聚合参数重新生成 summary.md 不会重新运行分析器;重新分析也不会更新 Benchmark 指标。

使用和共享时的注意事项

这四个文件不会再经过统一脱敏,也不会对所有 Markdown 内容进行完整转义。Benchmark 的自由文本 details、分析器分布值、类别和 items 中的详情文件名可能包含任务标识或敏感内容,也可能影响 Markdown 结构。共享前请检查文件内容;对于不可信结果,不要使用允许原始 HTML 的渲染器直接打开。
这四个文件均为生成产物。需要修正结果时,请重新运行任务,或调整 Benchmark 聚合逻辑或分析器配置后重新生成;不要直接编辑这些汇总文件。

相关页面