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, andis_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.