Skip to content

0003 Keep policies out of process

Status: accepted

Context

Real policies run in their own Python environments, on GPUs, or on other machines, and often pin dependency versions that conflict with the simulator's.

Decision

Define a small JSON protocol (robo-evals/1) over HTTP and WebSocket. The harness is the client and the policy is a server. Local Python callables stay supported for simple cases.

Consequences

  • A policy needs no MuJoCo install and no robo-evals import.
  • Each step costs a network round trip, so remote runs are slower than local ones.
  • The message format is versioned, so it can change without breaking old servers silently.