先区分资源与调度
下面四类设置解决的问题不同:
例如,Docker 的
resources.cpu: 2 表示每个容器最多使用 2 核;--task-concurrency 8 表示最多可以同时处理 8 个任务。两者不能互相替代。
任务 Environment 与验证 Environment 也按实例分别计算资源。需要新建验证 Environment 时,AgentCompass 通常会先关闭任务 Environment,再创建验证 Environment。只有使用 --keep-environment 保留任务 Environment 时,两者才可能同时占用资源。
并发、创建速率和 --keep-environment 的完整说明见运行控制。
provider 能力与单位
AgentCompass 提供统一的 provider-neutral 资源模型,再由各 provider adapter 转换为平台原生字段和单位。
各 provider 支持该模型的一个子集:
AgentCompass 会在创建 Environment 前报告不受支持的显式资源字段。
storage_mb 是一个例外:无法强制限制存储的 provider 会打印 warning 并忽略它,避免 task 声明的磁盘需求阻止其他方面兼容的运行。
GPU 型号约束默认保持 fail-closed。如果 Benchmark 要求特定型号,但你明确希望所选 provider 分配任意可用 GPU,可以显式设置 ignore_gpu_type: true:
gpu_type,不会删除或修改 gpu;AgentCompass 应用该指令时会打印 warning。它与其他资源字段遵循相同的优先级和 phase 作用范围,因此也可以写入 run_resources 或 evaluation_resources;更高优先级重新指定 gpu_type 时,对应 phase 会恢复严格型号选择。任务依赖特定 GPU 架构、显存容量或性能特征时不要使用该覆盖;比较结果时也应记录这项变更。
运行下面的命令,可以查看当前安装版本接受的准确字段和默认值:
设置资源
为 fresh 验证分别设置资源
evaluation_environment_mode="fresh" 的 Benchmark 会分别创建 run Environment 和 evaluation Environment。可以在 --env-params 中使用以下字段控制两者的资源:
Phase-specific 字段的优先级高于
resources 中的同名字段。例如,下面的配置为两个 Environment 都分配 8192 MiB 内存,同时为 run Environment 分配 4 个 CPU,为 evaluation Environment 分配 2 个 CPU:
resources 会覆盖两个 fresh Environment 对应的 task 字段,run_resources 和 evaluation_resources 再分别覆盖公共字段。fresh Benchmark 没有单独声明 evaluation resources 时,evaluation Environment 会回退到该任务的公共资源。
下面对 Docker、Daytona 和 Modal 使用同一种统一资源参数写法。三个示例都通过 sample_ids 只运行一个任务,并为每个 Environment 设置 2 核 CPU 和 6144 MiB 内存;这些数值只用于说明格式,不代表 Benchmark 的推荐配置。
以下以 agentcompass run 为例。配置文件、Python SDK 和 launch 编排文件的写法见配置 Environment。
Docker
Daytona
Modal
Docker 通过
--storage-opt size=... 应用 storage_mb。如果 Docker daemon 报告当前存储驱动无法执行该选项,AgentCompass 会记录 warning,并在不限制存储的情况下启动容器。远程 provider 也可能因为账号配额、区域容量或不提供所选规格而拒绝创建实例。Recipe 资源设置与显式覆盖
部分 Recipe 会读取 Benchmark 中的任务资源要求,并写入统一资源模型;随后由选中的 provider adapter 完成平台侧校验和转换。 内置 Recipe 通常会保留兼容的显式资源值,但具体适配仍以对应 Recipe 和 Benchmark 说明为准。因此:- 想复现 Benchmark 的资源条件时,优先使用其 Recipe 提供的默认值;
- 想比较另一种资源配置时,再显式覆盖,并在结果说明中记录修改。
估算总资源需求
可以按以下步骤估算:- 从 Benchmark 或 Recipe 给出的资源要求开始。
- 先运行一个有代表性的任务,观察内存峰值、CPU 使用率、磁盘增长和验证阶段的资源需求。
- 为安装依赖、编译和缓存保留余量。
- 根据单实例资源和实际并发估算总量,再调整任务并发与 provider 限制。
- 逐步提高并发;出现 OOM、创建失败或明显排队时及时降低。
--env-open-qps 只改变新实例的创建速度,不限制同时运行的实例数。
