Skip to main content
Recipes are AgentCompass’s provider-adaptation layer. They translate portable benchmark task metadata into the provider-specific image, workspace, resource, network, and execution settings required to run that task. A recipe exists because neither side of this translation should own it. A benchmark should describe what a task requires without branching on Docker, Modal, or Daytona APIs. An environment provider should create a sandbox from a resolved plan without knowing the conventions of every benchmark. Requiring users to repeat this mapping in every CLI command would make otherwise equivalent runs provider-specific and difficult to reproduce. Recipes bridge that boundary after AgentCompass builds the initial execution plan and before it opens the environment:

Design Principles

For most evaluations, users do not select a recipe manually. Choose the benchmark and environment normally; AgentCompass matches compatible built-in recipes for each task. Use recipe flags only when you need to restrict that matching for debugging or load a trusted external adaptation package.

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.

Network policy

Apply benchmark-aligned setup, rollout, and verifier policies and add required endpoint hosts when supported.

Verifier environment

Prepare provider settings for a fresh verifier sandbox when the benchmark’s grading flow requires one.

Compatibility failure

Fail before sandbox startup when a required image, snapshot, or task metadata field is missing.
Recipes do not execute commands, create sandboxes, score results, or call model APIs.

Using Recipes

By default, AgentCompass evaluates the registered recipes against each task and applies the compatible ones automatically. Matching can consider the benchmark, environment provider, task image metadata, workspace requirements, and current execution plan. Explicit user values keep the highest priority. For example, a recipe may supply a task image and default memory from benchmark metadata, while an explicit --env-params '{"memory":"8g"}' preserves the requested memory override. Restrict automatic matching when reproducing or debugging one recipe:
--recipe is repeatable. An empty recipe selection uses all compatible built-in recipes.

Trusted External Recipes

Load a private recipe package for one run with a repeatable --recipe-dir option:
Python callers use recipe_dirs=["./company_recipes"], and configuration files use runtime.recipe_dirs. External recipe packages execute as trusted Python code in the AgentCompass process. See Environment Integration for provider precedence, lifecycle boundaries, and validation requirements.

Example: Modal SWE-bench Verified

The 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

The Terminal-Bench Daytona recipe reads task.environment.docker_image, sets the environment image, and uses /root as the default workspace root.

Example: ResearchClawBench Sandboxes

ResearchClawBench has built-in recipes for Docker, Daytona, and Modal. When no image or provider-native artifact is supplied explicitly, the compatible recipe selects the ResearchHarness runner image and configures /workspace where the remote provider requires a workspace root. The normal benchmark command therefore does not need an --env-params image override:
An explicit Docker image, Daytona image/snapshot, or Modal image remains higher priority than the recipe fallback.

User Overrides

Do not pass 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