Guardrails for AI that changes your data model

Your AI proposes.
Evoduce proves.

When AI adds to your taxonomy, product catalog or permissions model, Evoduce checks every change against your rules and proves it fits before it ships. If it doesn't, you get the exact rule it breaks and why, so the AI can fix it. Every answer is a proof, not another model's opinion.

pip install evoducenpm install evoduce
EVODUCE / PROOF TRACE01—03
01 / Proposed change
user:read:ownNew permission scope from your AI
02 / Checked against your rules
AXIS_COVERAGEMissing scope boundary
Conflict
NO_DUPLICATEThis scope already exists
Conflict
03 / DecisionChange rejected

Exact reasons returned so the AI can fix it.

Deterministic checkSame rules. Same answer.
The platform

One stack from prose to proof

Language models are good at proposing structure and bad at keeping it consistent. Evoduce sits between them and your data and checks every write before it's accepted.

Your model

Bring Jev, an open decision model or your own LLM. Evoduce calls a configured model when rules can't settle a decision.

ClassifyAdjudicateRepair

Evoduce API

A simple HTTP API. Each request carries your rules with it, so there's nothing to set up or sync on our side.

/verify/verify/graded/optimize/accept/prove/audit

Vocabulary

Your categories, rules and existing terms, written down once as plain JSON. That's the contract every change is checked against.

AXIS_COVERAGEMUTUAL_EXCLUSIONREQUIRES_INVERSETRANSITIONCOMPARISON…

Proof engine

Must-have rules are checked by formal proof, so a pass is a guarantee. Nice-to-have rules carry weights, and an optimizer picks the best set of changes that still fits.

The toolkit

Four tools on one engine. Use one on its own, or chain them so your AI suggests, gets checked, fixes what failed, and only then commits.

⊢

Verify

Is this change safe? A yes or no against your must-have rules, with the exact conflict when it's no.

/v1/verify
%

Grade

Must-have rules still decide; nice-to-haves add a score and list what the change misses.

/v1/verify/graded
∑

Optimize

When suggestions compete, keep the most valuable set that still fits every rule.

/v1/optimize
↑

Grow

Add an approved change and get the updated model back. Re-check the whole thing at any time.

/v1/accept · /prove · /audit
The guarantees

Four properties every answer has

AI will keep getting better at suggesting changes. What it can't do is vouch for them. These are the properties a check needs, whichever model wrote the change.

01

Proven

A pass means every rule holds, every time. The answer is a formal proof, not a model grading its own work.

02

Explainable

Every rejection names the rule it breaks and shows the conflict, which is exactly what your AI needs to fix it.

03

Graded

Must-haves block a change; nice-to-haves only score it. When suggestions compete, the best set that fits wins.

04

Any model

Claude, an open-source model or your own fine-tune. Evoduce checks the change, not who wrote it.

How it works

Three calls close the loop

  1. Write down your rules

    Your categories, rules and existing terms as JSON, or build them in the visual editor. Store it wherever you like.

  2. Check what the AI proposes

    A pass means it's safe to accept. A rejection tells you which rule it breaks and why.

  3. Fix and commit

    Hand the reason back to your AI to fix, then accept the passing version and get the updated model back.

curl https://$EVODUCE_HOST/v1/verify \
  -H "Authorization: Bearer $EVODUCE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "vocabulary": '"$(cat vocab.json)"',
    "proposal": {
      "name": "sliding_on",
      "duration": "temporary",
      "type": "contact",
      "symmetric": true
    }
  }'
Vocabulary × decisions

One vocabulary. A decision loop that learns.

Use your verified terms as typed Choice options. Evoduce checks your rules first, asks a decision model only when needed, and learns repeatable decisions from confident answers.

01 / DEFINE
◇

Set the vocabulary

Name the allowed terms and the structural rules they must follow. New terms enter only after verification.

NS Vocabulary
02 / DECIDE
⊢

Ask a typed question

Predicate names become Choice options. Jev or a configured open model can answer the same question shape.

state + questions → choice
03 / LEARN
↗

Reuse what holds

Confident answers teach decision rules. When facts force one answer, the solver returns it without another model call.

facts → rules → answer
See the Choice vocabulary format
Templates

Start from a working vocabulary

Each template is a real vocabulary from the evaluator's examples. Open one in the playground, break it, then fix it.

API permissions

Scopes as access level × resource × boundary. Catches a scope the model proposes twice or leaves unclassified.

3 dimensions12 scopes

Knowledge graph

Relations with direction, temporality and domain. Asymmetric relations must declare their inverse.

3 dimensions13 relations

Emotional states

Valence × arousal × intensity. Every new emotion has to land on all three axes.

3 dimensions8 states

Spatial relations

Contact, proximity and containment over time. Shows symmetric relations and inverse pairs.

2 dimensionsinverses

Graded catalog

A soft "prefer reviewed" rule that scores items without blocking them. Try the Graded button.

soft rulegraded

Jev's examples

The requests from Jev's docs, verbatim, answered here. Choose what answers them: a model, your rules, or both.

compatiblecompare
Open the examples →

Build your own

Design categories, rules and terms in the visual editor. It checks everything as you type and exports the JSON.

editorimport / export
Open the editor →
Playground

Try it right now

This is the live API, no key required, rate-limited per IP. Edit the vocabulary or the proposal, then choose an operation.

Vocabulary
Proposal
Result
// choose an operation
Pricing

Start free, scale when it's in production

Playground

Free
no signup
  • All endpoints
  • 30 requests / minute per IP
  • Up to 10 s per check
Open playground

Enterprise

Custom
dedicated or self-hosted
  • Single-tenant deployment
  • Custom (code) rules
  • Escalation-ladder backends
  • SLA
Talk to us

Stop trusting. Start proving.

Your first verified extension takes about a minute.

Get a free API key →