Skip to main content
Launch fields tell Synth how to run the work. Backend preflight is authoritative for whether a specific combination is allowed.

Common fields

FieldRequiredPurpose
host_kindYesExecution substrate, such as daytona.
work_modeYesGoal posture: directed_effort or open_ended_discovery.
providersYesProvider bindings. Public examples use openrouter.
runbookOptionalCollaboration posture: lite or heavy. Defaults to lite.
agent_harnessOptionalAgent runtime harness: codex or opencode_sdk.
agent_modelOptionalPublic model ID compatible with the selected harness.
agent_model_paramsOptionalModel-specific parameters such as supported Codex reasoning_effort.
rolesAdvancedRole-based launch policy for orchestrator, reviewer, worker palette, and worker subtypes.
initial_runtime_messagesOptionalKickoff messages enqueued on the durable runtime message queue.
limitOptionalRun-scoped usage limits such as spend, wallclock, GPU hours, or tokens.
timebox_secondsOptionalWall-clock run timeout.

Minimal launch

run = client.runs.start(
    "Inspect the repo and leave evidence for the highest-impact fix.",
    host_kind="daytona",
    work_mode="directed_effort",
    providers=[{"provider": "openrouter"}],
    runbook="lite",
)

Kickoff messages

Use initial_runtime_messages when you need the launch request to carry durable opening intent.
{
  "initial_runtime_messages": [
    {
      "mode": "queue",
      "body": "Prioritize the smallest patch that improves the failing eval."
    }
  ]
}

Role policy

Use top-level agent_harness, agent_model, and agent_model_params for simple shared selection. Use roles for actor-specific policy. Do not combine roles with shared top-level agent_* selectors.