// technical overview
How Perathos Works
Perathos is a drop-in verification proxy. Your AI calls pass through it unchanged — but every response is examined before delivery.
architecture
The Verification Pipeline
Intercept
Your SDK's base_url points to Perathos. The request is forwarded to your chosen LLM provider identically — same model, same parameters, same API format.
Latency added: ~0ms (forwarding is async and non-blocking)
Claim Extraction
A fast lightweight model reads the response and extracts every verifiable claim: factual assertions, mathematical expressions, structured data, and citations.
Output: typed claim list — [{id, type: 'mathematical|factual|structured|citation', text, context}]
Parallel Verification
Six verifiers run simultaneously. LLM-based verifiers use independent models; deterministic verifiers use SymPy and your knowledge base. No verifier sees another's output.
asyncio.gather() — total latency ≈ slowest single verifier, not the sum
Verdict Aggregation
A weighted risk score is computed from all verifier signals. Deterministic failures (wrong math) trigger immediate BLOCK. LLM failures accumulate toward FLAG or BLOCK thresholds.
PASS < 0.30 risk | FLAG 0.30–0.65 | BLOCK > 0.65 (configurable per deployment)
Proof Generation
The verdict is hashed and wrapped in a VRL Proof Bundle — an immutable, signed artifact containing the full evidence trail: claims, signals, confidence scores, and timestamps.
SHA-256(verdict_json) → VRL bundle → appended to audit chain (PostgreSQL append-only)
Delivery
The response is returned in the exact format your SDK expects. PASS responses include the original content. BLOCK responses replace content with a signed explanation.
x-vrl-verdict header | vrl_bundle field in response body | x-vrl-confidence score
The Six Verifiers
Sends response + extracted claims to a second model with the sole task of finding factual contradictions. Returns per-claim PASS/FAIL/UNCERTAIN with confidence.
A fast model specifically prompted to identify hallucination signals: fabricated specifics, overconfident statistics, invented citations. Returns an overall score and per-claim flags.
Mathematical claims are extracted and sent to a third model. It re-derives every calculation from scratch — blind to the original answer — then compares.
Uses SymPy to algebraically verify every mathematical equation. If LHS ≠ RHS, it is always BLOCK — no threshold, no probability. Deterministic verification cannot be overridden.
Factual claims are looked up in a trusted knowledge base (your PostgreSQL database, a curated knowledge graph, or industry-specific sources). Pluggable per industry vertical.
Structured output — JSON blocks, financial tables, API responses — is extracted and validated against a JSON Schema or regex patterns you configure. AI extracts; deterministic code verifies.
See it in your environment
We build a proof of concept tailored to your use case — live, with your data.
Request a Demo