Support agents
Card numbers, emails and promises you can't keep are caught before the reply leaves.
Deterministic policy gate for AI agents
AgentGate runs 50 published rules — 47 of them mapped to a specific provision, from GDPR and the EU AI Act to PCI DSS — on anything your agent is about to say or do. One call returns a verdict in milliseconds and a signed, hash-chained receipt an auditor can check without taking your word for it.
10,000 validations a month freeNo cardEnglish, Russian and Uzbek patterns
engine 2.0.0
50 rules · no model in the loop
01Why now
For years "AI governance" meant a policy document. Now specific duties apply on specific days — and a regulator, an auditor or a judge asks the same question each time: show me what your agent said, and what checked it.
Manipulation is prohibitedEU AI Act Art. 5 bans manipulative and exploitative techniques.
G8-MANIPULATION
Uzbekistan: no AI-only decisionsLaw ZRU-1115 — legally significant decisions may not rest solely on an AI's conclusion.
G8-AUTOMATED-DECISION
AI has to say it is AIEU AI Act Art. 50 applies. Fines reach €15M or 3% of worldwide turnover.
G8-HUMAN-IMPERSONATION
High-risk: logs and oversightArts 12, 14 and 26 apply to Annex III systems — automatic logs kept at least six months, and a person who can intervene.
receipts review
Summaries, not legal advice. EU dates per Regulation (EU) 2024/1689 as amended by Regulation (EU) 2026/1744; Uzbekistan per Law ZRU-1115 (Informatization Law, Art. 7¹).
02How it works
1Check
Only agent_output is required. Add context to narrow the gates, or a policy to switch rules off.
curl https://agengate.com/v1/validate \ -H "X-API-Key: $AGENTGATE_KEY" \ -H "Content-Type: application/json" \ -d '{ "agent_output": "Your loan application has been declined." }'
2Decide
Your code handles four cases, not 50 rules. Each finding names its rule and, where there is one, the provision behind it.
switch (result.verdict) { case "allow": return send(output); case "redact": return send(result.redacted_output); case "review": return holdForHuman(result.id); case "block": return refuse(); }
3Prove
It records which rules ran, what they found and which receipt came before — and never the text itself.
{
"verdict": "review",
"evaluated": 50,
"findings": [{ "rule": "G7-NO-RECOURSE", … }],
"ruleset": "sha256:4c1e…",
"seq": 412, "prev": "sha256:93c5…",
"hash": "sha256:a41f…",
"signature": { "alg": "Ed25519", … }
}
Nothing matched, or only advisories. Send it as written.
status: "passed"
Personal or payment values were found. Send the masked version that comes back.
redacted_output
A decision, a promise or an action that needs a person. Hold it until someone signs off.
POST /v1/overrides
A leaked key, a guaranteed return, an agent claiming to be human. It does not go out.
status: "failed"
03The rulebook
No black box and no model to second-guess. Each rule states what it matches, what it does, how literal it is and which provision, if any, it supports. The list below is rendered from the engine itself, so it cannot drift from what runs.
The output is finished and carries no machinery: no placeholders, leaked prompts, stack traces or destructive commands.
04Evidence
Logs are easy to edit and awkward to share. A receipt is small, safe to hand to an auditor, and wrong the moment one character changes.
subject.commitmentA salted hash of the output. On its own it reveals nothing; with the salt you keep, it proves the receipt is about this exact text.rulesetThe hash of the exact rules that ran. Change one pattern and it changes.checks_rootOne hash over every check's result. Anyone can recompute it from the public catalogue.prev · seqEach receipt points at the one before it. Remove or reorder one and the chain breaks.signatureEd25519, verifiable offline against the key we publish.05Human in the loop
A review verdict holds the message instead of guessing. A named person approves or rejects it with a written justification, and that decision is kept with the validation it belongs to.
The response names the rule that wants a human and why.
"verdict": "review",
"findings": [{
"rule": "G5-BINDING-COMMITMENT",
"action": "review"
}]
Request an override with a justification; a reviewer approves or rejects it.
POST /v1/overrides
{ "validation_id": "val_8f2c…",
"gate_id": "G5",
"justification": "Refund approved
under returns policy 4.2" }
Who decided, when and why is stored against the validation. A request nobody reviews expires after 90 days. Webhooks tell your systems.
override.requested override.approved override.rejected → HMAC-signed webhook
06Honest scope
| AgentGate | Model-based guardrails | Governance platforms | Evidence proxies | |
|---|---|---|---|---|
| Decides with | Published deterministic rules | A second model | Policies and questionnaires | Nothing — records only |
| Same input, same verdict | Always | Not guaranteed | — | — |
| Catches meaning-level errors | No | Often | No | No |
| Finding mapped to a provision | 47 of 50 rules | Rarely | At policy level | No |
| Hold for a human, on the record | Built in | Varies | Workflow tools | No |
| Verifiable record per decision | Signed, chained receipt | Logs | Reports | Yes |
These work together. Use a model-based filter for meaning, and AgentGate for the things you have to be able to prove.
07Where it fits
Card numbers, emails and promises you can't keep are caught before the reply leaves.
A decline with no reason or no route to appeal is held before the applicant sees it.
Guaranteed returns are blocked. Transfers above your threshold wait for approval.
Tokens, connection strings and destructive commands are stopped before anyone pastes them.
08Central Asia
Most output filters are built for English. AgentGate ships patterns for the languages your customers write in and the identifiers your systems hold.
09Pricing
Billed per validation, not per seat. The free tier is large enough to run a real pilot.
10,000 validations a month. Every rule, signed receipts, the verifier.
100,000 validations. Webhooks and a higher rate limit.
1,000,000 validations. Audit packages per framework, priority support.
Higher volume, custom rule packs, deployment in your environment.
10Questions
No. A rule passing means a specific pattern was not found in a specific output. Compliance is a property of your whole system and how you run it. AgentGate gives you a control that runs on every output and a record that it ran — which is usually the part that is missing — but it is evidence tooling, not a certificate and not legal advice.
Because a verdict you cannot reproduce is hard to defend. The same text and the same ruleset always give the same result, the rule that fired is named, and anyone can re-run it. The price is that rules do not understand meaning: they will miss a politely worded mistake. If you need that, run a model-based filter alongside — the two do different jobs.
Receipts, usage counts and your account details. The text you send is checked in memory and is not written to disk; a receipt holds a salted commitment to the text, never the text or a plain hash of it. The playground on this page goes further: it runs entirely in your browser and sends nothing.
The engine evaluates a typical reply in well under a millisecond — the playground above shows the measured time on your own device. Through the API you add hashing, signing and the network round trip. There is no model inference anywhere in the path.
Per request, you can switch off any rule or gate, change a rule's action (for example, redact instead of block), set the approval threshold for money movement and mark a decision as already human-reviewed. The receipt records what was disabled. Writing your own rules is not self-serve yet — talk to us if you need a custom pack.
Every rule has English patterns. 28 of the 50 also carry Russian patterns and 7 carry Uzbek. Structural detectors — card numbers, IBANs, keys, tokens — are language-independent. The catalogue shows the languages for each rule.
Paste it into the verifier. It recomputes the hash and the checks root in the browser, checks the Ed25519 signature against our published key, and asks whether that hash is anchored in the ledger. The format is documented, so the same checks can be run offline with a few lines of code.
No. AgentGate looks at what your agent is about to send or do, not at what users send to it. It will flag the artifacts an injection leaves in an output — "ignore previous instructions", leaked system prompts, data-carrying image links — but input-side defence is a different product.
A free key and one POST. Your first verified receipt takes about as long as reading this page did.