ns.governed_act(...):
action_candidate → governance → act for allowed actions. Enforced vetoes emit
direction(status="blocked") → action_candidate → governance and then either
terminate by default or run.interrupt → run.checkpoint when pause-on-veto is
enabled.
Why this matters: you get a hard safety gate with a verifiable audit trail.
What you’ll build
- Governed actions that emit action-candidate traces
- A vetoed run with no act events
- Artifacts that can be evaluated by trace-based scoring
Prerequisites
- Python with
noesisinstalled
Run the tutorial
Notes
ns.governed_act(...) creates its own episode bundle through the same canonical runtime boundary as ns.solve(...). The tutorial locates the episode id by diffing runs_dir before and after each call.
Runtime outcomes and constraints
- Default enforce veto (
governance_pause_on_veto=false):direction(status="blocked") → action_candidate → governance → terminate(noact), and the run is sealed (final.json+manifest.json). - Pause-on-veto (
governance_pause_on_veto=true):direction(status="blocked") → action_candidate → governance → run.interrupt → run.checkpoint(noact, noterminate), and the run remains unsealed until continuation. - Allow/audit paths emit
action_candidate → governance → actand seal normally.
Source
The source file is located atexamples/noesis-quickstart/tutorials/governed_side_effects.py.
