Skip to content

How it compares

Different layer. Different problem.

Edictum is not a replacement for LangGraph, CrewAI, Bedrock, MCP, or eval tools. It composes with them as the runtime governance layer that checks actions before tools execute.

Text safety vs runtime governance

Guardrails AI, NeMo Guardrails

Content safety layer. Filter what the model says.

Edictum

Runtime governance layer. Control what the agent does.

They compose in the same agent stack.

Feature comparison

Side by side

Layer

Edictum

Runtime governance

Guardrails AI

Text I/O

NeMo

Text I/O

DIY

Tool-call

Deterministic

Edictum

Yes

Guardrails AI

No (LLM)

NeMo

No (LLM)

DIY

Depends

Policy/load failures fail closed

Edictum

Yes

Guardrails AI

No

NeMo

No

DIY

No

YAML rulesets

Edictum

Yes

Guardrails AI

Python code

NeMo

Colang

DIY

Custom

Observe mode

Edictum

Yes

Guardrails AI

No

NeMo

No

DIY

No

Session limits

Edictum

Yes

Guardrails AI

No

NeMo

No

DIY

Manual

Sandbox enforcement

Edictum

Yes

Guardrails AI

No

NeMo

No

DIY

Manual

Human-in-the-loop

Edictum

Timeout to block

Guardrails AI

No

NeMo

No

DIY

Manual

Workflow Gates

Edictum

Evidence-gated stages

Guardrails AI

No

NeMo

No

DIY

Manual

Profile conformance

Edictum

Runtime-measured

Guardrails AI

No

NeMo

No

DIY

Custom

Output-quality evals

Edictum

Composes

Guardrails AI

Different scope

NeMo

Different scope

DIY

Separate

Principal identity

Edictum

Yes

Guardrails AI

No

NeMo

No

DIY

No

Audit trail

Edictum

27-field structured

Guardrails AI

Logs

NeMo

Logs

DIY

Custom

Framework adapters

Edictum

8 native

Guardrails AI

Python SDK

NeMo

Python SDK

DIY

Per-framework

Runtime deps

Edictum

Zero

Guardrails AI

Multiple

NeMo

Multiple

DIY

Varies

Overhead

Edictum

In-process

Guardrails AI

Model/service dependent

NeMo

Model/service dependent

DIY

Varies

Open source

Edictum

MIT + FSL

Guardrails AI

Apache 2.0

NeMo

Apache 2.0

DIY

N/A

CLI tooling

Edictum

12 commands

Guardrails AI

No

NeMo

No

DIY

Custom

Notification channels

Edictum

Telegram, Slack, Discord, Webhook

Guardrails AI

No

NeMo

No

DIY

Manual

The research

Why tool-call enforcement matters

The GAP research shows that text refusal does not reliably transfer to tool-call safety.

6

Frontier LLMs tested

17,420

Datapoints analyzed

GAP

Text refusal did not reliably carry over to tool calls

arXiv:2602.16943 — "Mind the GAP"

Text safety layers catch the text. Edictum catches the tool calls and workflow-stage violations. That is runtime governance.

Architecture

Two layers, one pipeline

Stack them. They address different threat surfaces.

User Prompt

Text Safety Layer

Filter harmful / toxic input text

LLM
Tool Call Decision

Edictum

Enforce rules on tool execution

Tool Execution

vs DIY middleware

Why not just write middleware?

Every team starts with if-statements. Here's where it breaks down.

No observe mode

Can't deploy enforcement in observe mode without blocking. You either enforce or you don't.

No audit trail

Who changed what rule? When did it fire? There's no record.

No human-in-the-loop

High-risk calls need human review. DIY means building a queue, a UI, and a timeout system.

No hot-reload

Change a rule? Restart every agent. No way to update rulesets at runtime.

No fleet visibility

50 agents, each with different rules. No reference stack. No coverage analysis.

Rule debt

Starts as 5 if-statements. Becomes 500. No one can audit it.

No ruleset versioning

Anyone can change the rules. No version history. No audit trail of changes.

No session limits

Rate limiting across tool calls requires shared state. DIY means building it from scratch.

No notification routing

Telegram, Slack, Discord, webhook — DIY means building each integration from scratch. Plus routing rules, filters, and fallbacks.

Ready to enforce rules on tool calls?

Add Edictum in 3 lines of code. Start in observe mode, enforce when ready.

pip install edictum[yaml]