只有在 Benchmark 页面明确要求选择替代 Recipe、排查问题时需要限制匹配范围,或团队需要加载自定义适配逻辑时,才需要手动设置 Recipe。除此之外,保持默认自动匹配即可。
Recipe 如何工作
Recipe 通过统一执行计划描述任务要求。采用统一默认 Recipe 的 Benchmark 在 Docker、Daytona、Modal 以及其他具备所需能力的 provider 上使用同一份策略,由 Environment 转换为各自的配置。例如,Recipe 可以:- 根据任务 ID 或任务中记录的镜像地址选择运行镜像;
- 将工作目录设为 Benchmark 需要的
/testbed、/workspace或/root; - 声明 CPU、内存、磁盘或 GPU 要求,由所选 Environment 校验并转换;
- 在评分需要单独启动 sandbox 时,补充它的镜像和网络设置。
deepswe、swebench_verified 和 terminalbench2。frontier_engineering、skillsbench、swe_marathon、swebench_pro_verified、taubench 和 wildclawbench 也采用相同设计。使用旧 provider 专属 ID 的配置需要改为 Benchmark 级 ID;applied_recipes 记录注册的 ID,terminalbench2_ac 等可选策略仍需显式选择。BrainArena 和 OSWorld 保留各自的 Docker 专用 Recipe。Environment 仍需支持任务的镜像、资源、操作系统和网络要求。
Recipe 不会替你选择 Harness 或 model,也不会执行任务或评分。为了让已选组合正常运行,它可能调整 Harness 的安装或执行设置。
什么时候需要手动设置 Recipe
--recipe 不会强制执行指定 Recipe,而是只允许列出的 ID 参与匹配。Recipe 仍需与当前 Benchmark、Environment 和任务信息相符;未传入该选项时,AgentCompass 会从所有可用 Recipe 中自动匹配。
如果多个 Recipe 同时匹配,它们都会应用。需要确认实际应用项时,可在 DEBUG 运行日志 中查找 Recipe matched。
示例
下面使用sample_ids 运行一个 SWE-bench Verified 实例。命令没有传入 --recipe;AgentCompass 会根据 swebench_verified 和 modal 自动匹配内置 Recipe。
/testbed。其他内置适配示例:
覆盖 Recipe 提供的值
需要使用自定义镜像或快照时,通过--env-params 传入所选 Environment 支持的字段:
可信外部 Recipe
这是面向团队自定义适配逻辑的高级用法。--recipe-dir 可为本次运行加载外部 Recipe:
外部软件包要求
外部软件包要求
- 目录必须是包含
__init__.py的 Python 软件包。 - 根模块必须导出非空的
RECIPE_CLASSES列表或元组。 - 每一项都必须是继承 AgentCompass
BaseRecipe基类的具体类,定义唯一id,并支持无参数构造。 - 相对路径从当前工作目录解析。
agentcompass launch 没有 --recipe 或 --recipe-dir 选项,需要将对应字段写入编排文件。显式 CLI 或 SDK 列表会替换配置文件中的对应列表,而不是追加。
Recipe ID 重复会导致加载失败。如果多个 Recipe 修改同一镜像、工作目录或网络设置,AgentCompass 不会自动解决冲突,因此不应同时加载职责重叠的实现。
