Skip to main content

Migration: from NeMo Guardrails

Colang flows → Policy clauses. Action server → Guardian. Self-check rails → Glass Box Ledger replay.

Why move

NeMo Guardrails is excellent for conversation-flow control (when to say no, when to ask a clarifying question). It is less suited to content-correction at scale — every guardrail call invokes an LLM evaluation under the hood, which adds latency and inherits drift.

Trinitite's Guardian is a fine-tuned LoRA model purpose-built for the decision: faster, cheaper, and deterministic.

Concept mapping

NeMo conceptTrinitite equivalent
Colang flowPolicy clause + Guardian rubric
Input rail / output railPre-call / post-call Guardian phases (built-in)
Self-check rail (LLM-evaluated)Guardian decision (deterministic, sub-400ms)
Action serverGuardian + MCP per-tool Guardians
disallow: / allow: listsPermitted / Forbidden subspaces of the Policy Manifold
bot refuse actionoutcome: blocked
Trace / inspect modeGlass Box Ledger replay (bit-exact)

API translation

POST /v1/chat
{
"guardian": "auth-and-security",
"input": [{
  "role": "assistant",
  "content": "<ai output>"
}]
}

← 200 OK
{
"outcome": "blocked",
"reason": "Authentication-bypass intent",
"ledger_id": "lg_01HZ2V..."
}

Single Guardian invocation, ~140ms p99. The verdict is hashed and Merkle-chained — a year from now you can replay this exact decision bit-for-bit.