details/ 下的每个 JSON 文件记录一个 Benchmark 任务的结果,本文称为“任务详情文件”。其中包含最终答案、评分、轨迹、错误以及该任务的多次评测尝试。如果触发 runtime 重试,本次被丢弃的执行结果还会单独写入 retry_details/,用于确认重试原因。
阅读这些文件前,需要区分两个概念:
attempt是一次独立的评测尝试,数量由k控制,并计入最终任务结果。retry是同一次评测尝试发生可恢复错误后的重新执行,不会新增attempt,也不直接参与 Benchmark 指标计算。
k 和 avgk 的配置与聚合方式见 Benchmark 共享字段。
只有任务带有类别时,文件名才会包含
category。任务 ID、类别和阶段名称中的 / 与 : 会替换为 _。常规运行将多次评测尝试写入同一个详情文件的 attempts。
任务详情文件
普通详情与_error_ 详情使用相同的 JSON 结构。顶层字段描述整个任务,attempts 则保存每次评测尝试的具体结果。字段内容取决于所选 Benchmark、Harness 和分析器,因此部分值可以为 null,可选字段也可能不出现。
如果任务在形成可保存的结果前就已失败,可能不会生成对应的任务详情文件。不过,评测结束时的首次汇总使用本次运行收集到的结果,因此仍可能将该任务计为错误。首次汇总与重新汇总的区别见汇总与分析结果。
任务级字段
任务详情没有顶层
status 或 score;执行状态和得分分别记录在每次评测尝试中。评测结束时生成的首次汇总使用当前运行收集的结果;之后单独执行 agentcompass summary,则会读取已保存的详情文件并重新计算。
尝试级字段
排查单次评测尝试时,可以先查看status 和 error 判断执行是否有效,再通过 correct 和 score 确认评分结果。trajectory、artifacts、extra 和 meta 提供进一步的过程与诊断信息。
不要将 Harness 的内部
metrics 视为稳定的尝试级字段。Benchmark 或 Harness 如需保留集成专属指标,通常会将其写入 meta.harness_metrics、extra 或 artifacts。meta.resolved_execution_plan 只是一份精简摘要,meta 中的其他组件字段可能包含更完整的配置或诊断信息。
状态值
轨迹字段
ACTF_v1.0 是 AgentCompass 自定义的轨迹结构版本,用于统一表示不同 Harness 产生的 agent 执行记录。它不是 model provider 或第三方 agent 框架定义的协议。
trajectory 使用该结构按执行顺序记录 model 输入与输出、工具调用、Environment 观察结果、耗时和 token 统计。各字段是否有值取决于 Harness;Harness 不生成轨迹时,trajectory 为 null。
每个
steps[] 元素包含:
解析后执行计划
attempts.<N>.meta.resolved_execution_plan 记录本次评测尝试解析得到的 Environment、网络策略和 Recipe。这份摘要在打开 Environment 前生成,因此只能说明计划已经解析,不能证明 Environment 创建成功,也不会包含 Environment 的完整配置。
上述
network_policy 对象包含 network_mode 和 allowed_hosts:network_mode 表示网络模式,allowed_hosts 列出允许访问的 host。各项策略的含义见网络策略。
分析结果
启用agentcompass analysis 后,analysis_result 会按分析器系列保存每次评测尝试的分析结果。分析成功时可以包含下列字段;分析失败时可能只写入其中一部分:
如果某个已选分析器在执行
analysis() 时抛错,对应系列通常会写入 is_badcase: false 和 error,但省略 details。该错误不会覆盖 Benchmark 已经产生的 status、correct 或 score。如果错误发生在分析器创建、匹配或前置条件检查阶段,该系列可能不会出现在 analysis_result 中;此时可通过日志确认原因。
错误详情文件
_error_ 前缀用于标记包含执行或评分错误的任务详情。只要任一已记录的评测尝试满足以下条件,就会使用该前缀:
status为run_error、eval_error或run_error_or_eval_error;error字段非空。
meta.status 为 error 时也会使用该前缀。
_error_ 不表示答案错误,而表示任务详情中存在执行或评分错误,因此该文件不能用于复用。如果多次评测尝试中同时存在 completed 和错误状态,只要有一次满足上述条件,整个任务详情仍使用 _error_ 前缀。对于 status 为 completed、correct 为 false 的任务,则使用普通详情文件名。
使用 --reuse 时,AgentCompass 只复用普通详情。只有 _error_ 详情的任务会在新运行中重新执行,来源运行不会被修改。如果目标目录随后成功写入该任务的普通详情,对应的旧错误详情会被移除。
重试详情文件
只有错误匹配重试规则并且仍有重试额度时,runtime 才会重新执行并写入重试详情。因此,没有重试详情并不代表任务没有失败:未触发重试的最终失败通常保存在_error_ 任务详情中;如果失败时还没有形成可保存的结果,也可能没有任何详情文件。重试规则和额度见只重试瞬时失败。
discarded_result 只用于排障,会尽量保留被丢弃结果中的信息,因此字段可能多于 details/*.json 中的评测尝试。它通常包含上文已经说明的 status、correct、score、final_answer、ground_truth、trajectory、error、artifacts、extra 和 meta,还可能包含以下字段:
查看
scope 可以判断重试会重新执行哪些工作:
查看
stage 可以定位最先失败的阶段:
处理敏感内容
写入任务详情和重试详情前,AgentCompass 会递归脱敏能够识别的凭据字段。但答案、prompt、观察结果、错误堆栈和集成附加数据仍可能包含任务内容或其他敏感文本。请像保护日志一样保护这些文件,并在公开运行目录前检查其中的内容。details/*.json 会用于汇总,普通详情还可用于复用;retry_details/*.json 只用于排障。需要修正评测配置或结果时,请重新运行任务,不要直接修改这些文件。
