Agent Governor
An autonomous agent proposes real actions; a deterministic governor decides which can run without a human. The LLM handles perception - reading risk from meaning - while fixed rules make the decision, so it stays predictable and auditable. One engine serves multiple domains, and it is measured against human judgment rather than assumed correct.
How it works
Hover, tap, or tab through any component to see what it does and the tech behind it.
This diagrams the n8n build (code in the repo's /n8n folder, with its own numbers). The from-scratch Python implementation lives in the repo root and is evaluated separately.
Hover, tap, or tab through any component for what it does and the tech behind it.
What sits under the diagram
The diagram is the framework. These are the ideas it encodes.
The LLM reads risk from meaning (competitor, seniority, sensitive content, manipulative tone); the deterministic rules score and decide. Flexible where it helps, provable where it must be.
One governance engine, two domains - recruiting outreach and refund approvals. Only the signal set changes; the thresholds, load-shedding, and routing are identical.
A separate, manually-run pass mines new risk terms from misses and adopts a change only if it validates on held-out data without breaking the zero-dangerous invariant - human-approved.
A prototype: the agent drafts and the governor decides - it does not send. The same governance engine also exists as a Python reference. For production - real auth, higher volume, the approved action wired behind the ESCALATE gate - the deterministic core moves into a queue-backed service; n8n Cloud runs the demo, self-hosted queue-mode workers are the horizontal-scale route.
Built from scratch as a deterministic Python governance engine, and as a live n8n workflow- agent, tools, governor, and persistent state in one runnable flow - on OpenAI gpt-5-mini, GitHub Search, live web search, and n8n Data Tables. The LLM handles perception; deterministic rules make the decision. At production scale, the deterministic core moves out of the workflow into a dedicated queue-backed service.