agentcompass run 创建的评测请求一致。只有一个请求时使用 run;需要比较多个 Model、评测多个 Benchmark 或混合不同 Harness、Environment 时使用 launch。
AgentCompass 不会自动推导组合矩阵。每个请求都需要显式命名和声明,从而保证参数、结果、失败和复用来源可审计。
定义编排
以下编排定义两个评测请求,它们共享一个包含 16 个 Benchmark 任务槽位的全局资源池。公共 model 设置只需在defaults 中定义一次:
${MODEL_API_KEY}。AgentCompass 会拒绝局部字符串插值,防止未解析或意外拼接的密钥静默进入请求。
字段说明
因此,即使 Benchmark 或 Environment 配置改变,请求的
name 仍可以保持稳定。使用agentcompass list benchmark、agentcompass list harness 和 agentcompass list env 查看合法组件 ID。
映射规则
可选
version 默认为最新受支持的编排格式。请求名称不能为空且必须唯一。
运行前验证
启动评测前,先解析完整编排:--dry-run 会加载配置层、展开环境变量引用、解析组件默认值、验证每个请求并输出脱敏后的编排;它不会加载 Benchmark 任务或创建结果目录。请检查输出中的组件 ID、任务筛选条件、Environment、Model API 端点地址、并发和复用设置。
确认后启动同一编排:
agentcompass launch --help。常用的编排级参数如下:
调度与失败隔离
所有请求共享一个任务工作池。声明顺序决定准入优先级:较早请求的任务优先进入执行;当早期请求的待启动任务已全部准入后,后续请求会使用空闲槽位。这个顺序是确定的,但不会强制前一项完整评测结束后才启动下一项。 在定义编排中的task_concurrency: 16 示例中:
- AgentCompass 首先使用
tb21的任务填满可用槽位。 - 随着
tb21的任务完成,它尚未启动的任务继续优先获得槽位。 - 当
tb21的全部任务都已准入后,空闲槽位会立即启动tb2vrf的任务,即使最后几个tb21任务仍在运行。 - 如果
tb21少于 16 个任务,未使用的槽位会立即开始tb2vrf的任务。
task_concurrency 控制整个编排中同时运行的 Benchmark 任务总数。
每个请求都有独立的运行目录、进度文件、日志、摘要和终端结果。请求级失败会记录为 failed,但不会阻止后续请求运行。所有请求完成时编排返回 completed;只有部分请求失败时返回 partial_failure;共享操作被停止时则返回超时或取消状态。
三种进度模式的终端行为及其与进度文件的关系,见日志与进度。
提高全局并发前,请先参考运行控制中的容量建议。
复用已有运行
--reuse 会为编排中的每个请求默认启用最新运行复用:
runtime.reuse: false 退出复用。若要选择精确来源,在该请求或 defaults 中设置 runtime.reuse_run_id;output.run_id 命名新结果,不是复用来源。
多个请求可以有意使用相同 Benchmark 和 model。AgentCompass 会发出警告,因为它们的结果层级发生重叠。对于这些请求,隐式复用“最新匹配运行”存在歧义,因此会被拒绝;请为每个重复的 Benchmark/model 请求指定明确的 runtime.reuse_run_id。显式输出目录冲突也会在任务执行前被拒绝。
复用结果的匹配方式和使用限制见继续中断的运行。
