Skip to content

Safety Abstractions

Reward and safety are separate signals in OMSH. Every labelled environment has a named safety model that projects the public observation onto only the state needed to answer “is this focal agent safe?”

Shared Contract

SafetyAbstraction exposes:

  • agent_ids, in environment order,
  • abstract_state(observation), which returns a finite safety-relevant state, and
  • is_safe(state, agent_id), which labels one explicit focal agent.

Current production models return AgentSafetyState, whose unsafe_agents field is immutable. LabelledEnv uses the model to report per-step cost and cumulative_cost. Shield construction uses the same model to label unsafe graph nodes, preventing training metrics and risk certificates from drifting apart.

Current Objectives

Environment Unsafe condition
Congestion The agent committed to the same direct slot as an adjacent vehicle and collided.
Bertrand The repeated-game price-war flag is set.
Chicken The crash flag is set.
Inspection An undetected violation occurred.
DPGG An agent contributed while its teammate withheld.
Gathering The agent is absent from the active channel (frozen/tagged out).
Ice Duel The agent occupies an edge cell.
Markov Stag Hunt The agent is in the damaged state.
Pursuit All intruders occupy goal cells; this global failure label applies to every agent.

These are the experiment objectives, not universal definitions of safety for the underlying games. A new objective should be implemented as a new or parameterized safety model and tested for every focal agent it can distinguish.