Routing

routing on every Responses create is what you ask for (smart, learning, learning-all, a named runner, a category, or an ordered list). Banana Peel then executes on a runner (Browserbase, Steel, Skyvern, Hyperbrowser, Playwright, Deck, …). Response field banana_peel.runner is the runner that ran. Learning and learning-all exist to teach the router the best path: they calibrate the routing brain on a domain/task so later smart runs pick the winning runner.

Modes

  • smart — production: the router uses the brain to pick and fall back; prefers a prior Learning ranking when present
  • learning / learning-all — teach the router the best path (paid calibration; not production). learning probes the live ~54-single-runner pool; learning-all sweeps the full catalog. Then switch back to smart — see Learning mode
  • Named runner — pin one engine by slug, e.g. "skyvern"
  • Array — ordered primary + fallbacks
  • Category — MVP fixed runner pools (SOC2, HIPAA, EU); not full compliance attestation

Outcomes feed the benchmark

Each finished run updates internal per-domain scores used by smart routing, and rolls up into the public benchmark — a per-runner leaderboard aggregated across all domains.

See also

Command Palette

Search for a command to run...