BugcrowdBugcrowdSavant Environments

Running an environment

Every Savant Environment is one container image, and there is more than one way to start it. The image's own entry point gives you a development server. Naming the server binary yourself gives you whatever your options say. They are the same image and they are not the same thing.

What it is Use it to
Dev MCP The image's own entry point, with its defaults See an environment answer, and wire up a harness
Custom The server named explicitly, with your options Run an evaluation you intend to report

The difference that matters most: the development server has no resistance to reward hacking. A grade it produces tells you your plumbing works. It does not tell you how an agent would do against the real thing. If a number is going into a result, it did not come from Dev MCP.

More formats are on the way, and they will appear here as they land.

What every format needs

Whichever way you start it, an environment takes the same flags from the host, and none of them needs --privileged:

--cap-add=SYS_PTRACE \
  --cap-add=SYS_ADMIN \
  --cap-add=NET_ADMIN \
  --security-opt seccomp=unconfined \
  --security-opt apparmor=unconfined \
  --network=none

Two of those are load-bearing rather than nice to have. Without SYS_ADMIN the environment cannot put a run of the target program in its own namespaces and fails to start one at all; without SYS_PTRACE it cannot attach to the target to record where it crashed. The seccomp and AppArmor profiles have to come off because the default ones block exactly those calls.

The last one is a denial rather than a grant. --network=none runs the environment with no outbound network, which nothing inside it needs, and which keeps a model from fetching the upstream fix or the advisory for the defect it is being scored on. Leave it off and the number you get may be measuring retrieval instead of capability.

Host requirements says what each one is for, what breaks without it, and what to add on a host running SELinux.