Skip to main content
Environment 资源参数用于限制本地实例可使用的资源,或指定远程实例申请的 CPU、内存、存储和 GPU。 这些参数可以防止单个任务占用过多资源,也可以让远程 provider 创建符合 Benchmark 要求的实例。它们不限制 AgentCompass host 进程、model 服务或其他外部服务。
host_process 直接在 host 上运行命令,无法强制执行 Environment 级 CPU、内存、存储或 GPU 限制。需要资源隔离时,请选择其他 provider。

先区分资源与调度

下面四类设置解决的问题不同: 例如,Docker 的 cpus: 2 表示每个容器最多使用 2 核;--task-concurrency 8 表示最多可以同时处理 8 个任务。两者不能互相替代。 任务 Environment 与验证 Environment 也按实例分别计算资源。需要新建验证 Environment 时,AgentCompass 通常会先关闭任务 Environment,再创建验证 Environment。只有使用 --keep-environment 保留任务 Environment 时,两者才可能同时占用资源。 并发、创建速率和 --keep-environment 的完整说明见运行控制

provider 能力与单位

不同 provider 的 API 和计量方式不同,因此资源字段无法统一为同一种格式。 运行下面的命令,可以查看当前安装版本接受的准确字段和默认值:
各 provider 页会进一步解释字段格式、账号配额和运行条件。

设置资源

下面用同一个任务比较 Docker、Daytona 和 Modal 的资源参数写法。三个示例都通过 sample_ids 只运行一个任务,并为每个 Environment 设置 2 核 CPU 和 6 GiB 内存;这些数值只用于说明格式,不代表 Benchmark 的推荐配置。 以下以 agentcompass run 为例。配置文件、Python SDK 和 launch 编排文件的写法见配置 Environment

Docker

memory_swapmemory 相同表示不提供额外 swap。字段格式见 Docker 的资源参数

Daytona

Daytona 的 resources.memory 以 GiB 为单位。该组合的 Recipe 会选择任务镜像,因此资源请求会用于基于镜像创建的 sandbox;显式改用 snapshot 时,Daytona 不会应用 resources。字段格式见 Daytona 的资源参数
Modal 接受顶层资源字段,也接受 resources 对象;示例使用更直接的顶层写法。字段格式见 Modal 的资源参数
Docker 的存储上限只有在存储驱动支持单容器大小限制时才会生效。远程 provider 也可能因为账号配额、区域容量或不提供所选规格而拒绝创建实例。

Recipe 资源设置与显式覆盖

部分 Recipe 会读取 Benchmark 中的任务资源要求,再转换成所选 provider 的字段和单位。例如,同一个内存要求在 Daytona 中可能以 GiB 表示,在 Modal 中则需要转换为其接受的格式。 内置 Recipe 通常会保留兼容的显式资源值,但具体适配仍以对应 Recipe 和 Benchmark 说明为准。因此:
  • 想复现 Benchmark 的资源条件时,优先使用其 Recipe 提供的默认值;
  • 想比较另一种资源配置时,再显式覆盖,并在结果说明中记录修改。
资源变化可能影响任务完成率和得分。不要把使用不同资源限制的运行结果当作同一条件下的结果直接合并。

估算总资源需求

可以按以下步骤估算:
  1. 从 Benchmark 或 Recipe 给出的资源要求开始。
  2. 先运行一个有代表性的任务,观察内存峰值、CPU 使用率、磁盘增长和验证阶段的资源需求。
  3. 为安装依赖、编译和缓存保留余量。
  4. 根据单实例资源和实际并发估算总量,再调整任务并发与 provider 限制。
  5. 逐步提高并发;出现 OOM、创建失败或明显排队时及时降低。
估算容量时,应关注同时存在的 Environment 实例数。--env-open-qps 只改变新实例的创建速度,不限制同时运行的实例数。

排查资源问题

其他运行错误见评测故障排查

相关页面