Quickstart
Zero to first receipt in 5 minutes.
Prova is the system of record for every AI decision your enterprise makes. Pick the path that matches what you're building.
Control plane · recommended
Instrument your agent →
Drop the SDK into a LangGraph, CrewAI, or custom run. Catch loops and runaway cost, and sign a receipt for every AI decision.
Verifier · legacy
Verify a single reasoning chain →
Paste a chain of reasoning, get a verdict on whether it has circular logic. The original Prova product, still supported.
1. Try it in 10 seconds (no account)
This hits the public demo endpoint, signs a real coordination-loop receipt, and prints a shareable URL. No signup, no key.
pip install prova-sdk
python -c "import prova_cp; prova_cp.demo()"
# -> public URL of a signed receipt, viewable for 7 days2. Score your own run offline (still no account)
Run health locally: a 0-100 grade plus the signals behind it (loops, no-progress, runaway cost, PII / secrets / injection). Nothing leaves your machine. Point it at events in Prova's shape, or at raw vendor logs.
# events the SDK emits
prova-local --file run.ndjson
# or raw LangSmith / Langfuse / OpenAI logs, mapped offline first
prova-local --file langsmith-export.ndjson --source langsmith3. Send signed receipts to the Audit Vault
Grab a free key at /signup (100,000 events / month, no credit card). Drop the callback handler into any LangChain or LangGraph run and every model call, tool call, and agent step becomes a signed receipt.
pip install "prova-sdk[langgraph]"from prova_cp import ProvaClient, ProvaCallbackHandler
prova = ProvaClient(api_key="prv_...") # your free key
handler = ProvaCallbackHandler(prova, app_id="claims-agent")
# Drop into any LangChain / LangGraph run.
graph.invoke(inputs, config={"callbacks": [handler]})
# Pass break_on_loop=True to stop the run the moment a coordination loop forms.CrewAI, the Node SDK, and any non-LangChain runtime (via RunGuard) are in the SDK guide.
4. Verify a receipt without trusting Prova
Every receipt is Ed25519-signed. The SDK recomputes the canonical hash, fetches the public key from /api/v1/keys/{id}, and checks the signature offline. An auditor can do the same with OpenSSL.
from prova_cp import verify_receipt
ok = verify_receipt(receipt) # True when the signature is validThe full offline walkthrough is in /docs/audit.
5. CLIs
# Score a run offline, no account (run health + loop detection)
prova-local --file run.ndjson
# Analyze raw LangSmith / Langfuse / OpenAI logs offline
prova-local --file langsmith-export.ndjson --source langsmith
# Bulk-import existing logs into the Audit Vault (needs a key)
prova-migrate --source langsmith --file langsmith-export.ndjsonNext steps
Control plane SDK →
Python and Node clients. Auto-instrument LangGraph, CrewAI, Vercel AI SDK, OpenAI Agents, LlamaIndex, and Pydantic AI; attribute cost; verify offline.
Run health →
A label-free 0-100 verdict on every run: the score, the signals, and the pass / flag / needs-you routing.
Audit Vault + receipts →
The receipt spec and the verify-without-trusting-Prova walkthrough.
Gateway-mode enforcement →
Allow / alert / block before the model call.
Progressive delivery →
Canary a release, auto-promote on a clean verdict, auto-rollback on a signed regression.
Agent authorization →
IAM for agents: scoped, revocable, just-in-time tool and data-scope capabilities.
Fleet benchmark →
Privacy-preserving cross-customer model + regression intelligence. Contribute to see.
Transparency log →
Append-only Merkle log over your receipts. Inclusion + consistency proofs, tamper-evident even against us.
Inline detectors →
Coordination loops, prompt injection, PII, bias drift, groundedness.
Continuous ingestion →
Mirror LangSmith / Langfuse traces in continuously, no re-instrumentation.
Network discovery →
Find shadow AI from Cloudflare and Datadog logs.