Skip to content

Add a deontic policy guardrail for agent actions#184

Open
MesTTo wants to merge 3 commits into
asi-alliance:mainfrom
MesTTo:deontic-policy-guardrail
Open

Add a deontic policy guardrail for agent actions#184
MesTTo wants to merge 3 commits into
asi-alliance:mainfrom
MesTTo:deontic-policy-guardrail

Conversation

@MesTTo

@MesTTo MesTTo commented Jun 18, 2026

Copy link
Copy Markdown

Stacked on #180.

This adds a guardrail that checks a proposed agent action against a deontic policy before it runs. If the policy forbids the action it is blocked, and any outstanding obligation is surfaced. It is opt-in and does nothing until you give it a policy, so by default it changes no behaviour. It adds src/policy_guard.metta and an example policy.

MesTTo added 3 commits June 19, 2026 05:39
A non-monotonic + normative reasoner — Defeasible Logic DL(d) (Nute; Antoniou
et al.), Standard Deontic Logic (Governatori: O/P/F, F p =def O not-p,
contrary-to-duty reparation chains, dilemmas), Event Calculus + the 13 Allen
interval relations + temporal deadlines, and weakest-link trust. Complements
lib_nal/lib_pln: they grade how much a fact is believed; this decides what
defeasibly holds and what one ought to do.

Theories and plans are ordinary .metta files read by PeTTa's native loader (no
bespoke parser; .dfl arrow syntax also accepted). API: dl-run / dl-run-deontic /
dl-run-at, deontic-compliance / deontic-dilemmas, the non-monotonic queries
(dl-what-if / dl-why-not / dl-abduce / dl-requires), Event Calculus, and trust.
Golden test suite under tests/deontic/. Docs: docs/reference-lib-deontic.md.
The same theory runs through either the fast indexed Prolog kernel or the
atomspace-native MeTTa engine (ground.metta / reason.metta) with identical
conclusions; select with (dl-engine! native) or $OMEGACLAW_DL_ENGINE=native.
Native grounding uses a semi-naive frontier fixpoint. prolog stays the default —
native grounding is ~4-5x slower on grounding-heavy theories (per-operation
MeTTa-eval overhead, see the perf note in ground.metta), while native is ideal
for propositional plans and inspection. Docs: docs/deontic/README.md.
Gates the agent's actions against a deontic policy before they run — a forbidden action is blocked, an obligation surfaced. Opt-in, off by default. Stacked on lib_deontic. Adds src/policy_guard.metta + an example policy.
@vsbogd vsbogd added the plugin label Jul 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants