What Recipes Own
Image selection
Read public Docker image metadata or provider snapshots and set provider params.
Workspace layout
Align benchmark workspaces such as
/testbed, /workspace, or /root.Resource hints
Merge task CPU, memory, disk, GPU, or provider resources without overwriting explicit user overrides.
Compatibility failure
Fail before sandbox startup when a required image, snapshot, or task metadata field is missing.
Core Interface
| Method | Responsibility |
|---|---|
matches(req, task, plan) | Return true when the recipe applies to this benchmark, provider, task, and plan. |
apply(plan, req, task) | Return a new ExecutionPlan with provider-aware overrides. |
--recipe.
External Recipe Packages
Trusted private recipes can be injected for one run without adding them undersrc/agentcompass:
BaseRecipe subclasses with stable ids. External classes must not use the global @RECIPES.register() decorator; AgentCompass adds them to a run-local registry so later SDK runs cannot see them accidentally.
--recipe-dir is repeatable. Python callers use recipe_dirs=["./company_recipes"], and config files use runtime.recipe_dirs. Directories are resolved from the launch working directory. Built-in recipes run first, followed by external directories and their RECIPE_CLASSES declaration order. Duplicate recipe ids fail before the run output directory is created.
External packages execute as trusted Python code in the AgentCompass process. They are cached by canonical path for the life of the process, are not hot-reloaded, and must already be visible on every worker filesystem. Reading an existing run through summary or offline analysis does not load its recorded external packages.
Example: Modal SWE-bench Verified
swebench_verified_modal_prebaked recipe can derive the image from SWE-bench metadata or instance id and set the workspace root to /testbed.
Example: Daytona Terminal-Bench
task.environment.docker_image, sets the environment image, and uses /root as the default workspace root.
User Overrides
| Override | Effect |
|---|---|
--env-params '{"image":"..."}' | Force a provider image when the recipe supports registry images. |
--env-params '{"named_image":"..."}' | Use a named Modal image when supported. |
--env-params '{"snapshot":"..."}' | Use a provider snapshot instead of an inferred image when supported. |
--recipe <recipe_id> | Restrict enabled recipes to explicit ids. |
--recipe-dir <package_dir> | Load a trusted external recipe package for this run; repeatable. |
image just because a benchmark is remote. If a recipe can infer the task image, the shorter command is more reproducible.
Recipe Families In This Repo
| Benchmark family | Providers |
|---|---|
| SWE-bench Verified | host_process, docker, modal, daytona |
| SWE-bench Multilingual / Pro | docker, modal, daytona |
| Terminal-Bench 2 | modal, daytona |
| PinchBench / SkillsBench / GDPval | provider-specific cluster or gateway recipes |
