Recipe 默认由 AgentCompass 自动匹配。常规评测不需要设置或改写 Recipe;只有 Benchmark 文档明确要求替代 Recipe、排查匹配问题或加载团队自定义逻辑时,才需要手动配置。
选择 provider 与配置入口
下列入口都能提供 Environment 参数。选择哪一种,取决于这些值只用于当前评测,还是需要在其他运行或程序中复用:agentcompass run
使用 --env <id> 选择 provider;省略时默认使用 host_process。运行 agentcompass list env 可以查看当前安装中可用的 provider ID。
--env-params 接收一个 JSON 对象,用于设置本次评测的 Environment 参数;同名字段会覆盖配置文件中的值:
配置文件
可复用的 provider 参数直接写在environments.<id> 下,不要增加 params 包装层:
Python SDK 单评测
SDK 使用 Python 字典传递参数,不需要把它们转换成 JSON 字符串:agentcompass launch 与 SDK 多评测
在 launch 编排中,id 选择 provider,其他字段直接写在 environment 下:
environment 中覆盖这些默认值。Python SDK 的 OrchestrationSpec 使用相同的字段结构。完整说明见 agentcompass launch 的映射规则和 Python SDK 的多评测请求。
嵌套字段怎么写
Provider 参数既可以是字符串、数字或布尔值,也可以是对象和列表。参数参考中的resources.cpu 表示“resources 对象里的 cpu 字段”,不是名为 resources.cpu 的扁平键。
下面四种写法等价,都会为 Daytona 设置 2 个 vCPU 和 6 GiB 内存。
CLI 使用 JSON 对象:
launch 编排将参数与 id 写在同一层,参数内部仍可嵌套:
resources.cpu: 2 和 resources.memory: 6,本次请求只传入 {"resources":{"memory":8}} 时,结果是 2 个 vCPU 和 8 GiB 内存。
不要额外增加 params 包装层,也不要把字段路径写成 {"resources.cpu":2}。嵌套字段、单位和可用值以相应 provider 的参数参考为准。
分清字段归属
Environment 参数由两类字段组成:
无论使用哪种入口,共享网络字段和 provider 字段都写在同一层,不需要再增加
params。例如,在配置文件中,它们都直接写在 environments.docker 下。
查看字段与配置结果
查询当前安装版本中某个 provider 的专属字段、类型和默认值:config show 只展示内置值和配置文件的合并结果,不包含本次运行额外传入的 CLI、SDK 或编排字段,也不会展示 Recipe 在任务开始前补充的最终 Environment 设置。命令的完整行为见 agentcompass config。
Environment 参数如何生效
Environment 参数不是一次性从某一个入口读取,而是按以下阶段逐步形成:
下面的命令没有设置 Docker 镜像。匹配的 SWE-bench Verified Recipe 会根据样本补充镜像和任务工作区,因此通常只需选择 provider:
config docs 输出为准。
评测总超时、并发和 Environment 启动速率属于运行控制。Modal 的
timeout 和 OpenSandbox 的 lifecycle_seconds 等字段只限制单个 sandbox 的存活时间,不等同于评测总超时。