Test your AI agent against production-like behavior before every release.
Recreate realistic conversations, tool calls and failures safely. Check what the agent said, what it did to your systems and what the customer sees—not just whether one answer looks right.
Early access: we are opening in batches. Request a spot and we will email you when you can start your 14-day trial, then plans from $299 a month.
Change flight and book seat 12AExample
APIAPI Request. Create a test passenger in staging and keep the booking token.
AgentMock Tool Response. holiday_calendar, a public service, returns a fixed answer.
AgentPassthrough Tool (real endpoint). reserve_flight goes to your staging booking API.
AgentSend User Message. “Change my flight and book seat 12A.”
AgentExpect Response. Rubric: the reply confirms the booking.
APIAPI Request. Fetch the booking. Assert the seat is 12A.
UILaunch. Open the booking page a customer sees.
UIAssert. The page shows seat 12A.
Example case. Step names as shown on the CertiQA canvas.
How it works
Three steps from a staging URL to a release gate.
1. Connect your agent
Register your agent's staging endpoint. CertiQA calls it over HTTPS: OpenAI-compatible chat, Anthropic Messages or any REST webhook. The tools it calls are mocked, which means answered with responses you define, so nothing real is touched.
2. Describe what should happen
Write the conversation, the tool calls you expect and what must be true afterward, as steps on a visual canvas. An LLM judge (a model that grades answers) scores them against a rubric you write, a plain-English description of a good answer, and the case repeats because agents vary.
3. Run it in CI
A shell script triggers the suite from any pipeline and exits on the quality gate. Every run produces a report, and a Release Report packages it for a reviewer.
What this looks like day to day
Test the behavior that matters in production.
An agent’s answer is only one part of the outcome. Its tool choices, recovery from failures and effects on your product all matter.
It answers differently every run.
An exact-match assertion passes or fails by luck. You need to know how often the agent is right, and who decides what right means.
It calls real tools.
A test must not refund a customer or drop a table, yet the bugs that matter live where the agent meets your own systems.
Users push back.
Prompt injection and jailbreaks are normal traffic for a public agent. A prompt tweak or model upgrade can quietly weaken a defense that held last week.
The final answer can hide a bad outcome.
An agent can claim it completed a task while leaving the wrong data behind or showing the customer something different.
How CertiQA helps
Recreate real conditions. Verify the whole outcome.
Use real behavior to build repeatable scenarios
Bring in production traces and turn real failures or edge cases into regression tests. Run them against your staging agent with controlled tools, so you can reproduce important behavior without replaying live side effects.
Production traces are inputs for testing; CertiQA is not a live production monitoring service.
One case can verify
The user conversation and agent response.
Tool names, arguments and recovery behavior.
Changed API state and the customer-facing page.
Score answers against a rubric, and repeat
An LLM judge scores each answer against a rubric you write, such as "grounded in the refund policy". Set a repeat count and a pass threshold and the case runs that many times, so the report shows a repeat pass rate with a 95% confidence interval instead of one lucky answer.
For anything exact, such as a tool argument or a variable, use a deterministic check with no judge involved.
A judge is a model and can be wrong. Each saved rubric carries a calibration summary against human-labeled examples so you can see how far to trust it.
In the run report
Repeat pass rate and its 95% confidence interval.
The judge's verdict and reasoning for each answer.
A flag when the judge's own ensemble disagrees with itself.
Mock the tools you do not control, reach the ones you do
CertiQA answers your agent's tool calls with the responses you define, so nothing real is touched. A Passthrough step lets one tool reach your real staging endpoint while every other tool stays mocked. A tool with neither a mock nor a route is never sent anywhere.
Then break things on purpose: inject a timeout, an HTTP 500 or 429, or malformed JSON on a tool, and grade how the agent recovers.
On hosted runners, private addresses are refused. To reach a system inside your network, use a self-hosted runner.
Fault injection, YAMLExample
faults:
tool: fetch_customer_records
modes: [HTTP_429]
onCall: 1
expectRecovery:
inlineRubric: Tells the customer the
system is busy and never shows a
raw error body.
maxToolCalls: 3
Attack your agent before someone else does
Run a sweep of 20+ built-in scenarios across seven categories of the OWASP LLM Top 10, the industry list of the main risks for AI applications, plus attacks generated from your agent's own tools, so a refund tool is tested for refund abuse and argument tampering. Each sweep is saved with a defense rate and a per-category breakdown, and a CI sweep can fail when the rate drops against the previous run that used the same attack set.
The catalog covers what an attacker can reach by talking to the agent. A clean sweep is a trend line for your team, not a security certification. Red-teaming is part of the trial and of Team Pro Plus and Enterprise Ultra.
Every case is a list of steps on a visual canvas: what the user says, which tools are mocked, what must be true afterward. Your connected AI assistant can draft cases over MCP, and a lead, product owner or domain expert can read and approve them as steps, without opening generated code.
Browser tests run with CertiHeal, which repairs locators that drift when a page changes, and export plain Playwright TypeScript.
Reading steps shows what is checked, not that it is enough. It sits alongside code review.
A single case can call an API, talk to an agent with mocked or real tools and check a page. See the example at the top of this page, or web UI automation.
Available on Team Pro and above.
Already using other tools?
Keep Promptfoo, DeepEval or LangSmith. CertiQA tests what happens around them.
What they are good at
Promptfoo and DeepEval evaluate prompts and outputs. LangSmith, Arize Phoenix and Braintrust trace and analyse what an agent did. Most agent teams want that, and CertiQA does not replace it.
What CertiQA adds
CertiQA runs the whole journey before release: your agent's tool calls against mocked or staging systems, injected failures, the state left in your APIs and the page the customer sees, with a CI gate on the result.
Use them together
CertiQA can take traces from Langfuse, Arize Phoenix or Helicone and turn real failures into regression tests.
Try it on your own agent for 14 days, then pick a plan.
CertiQA is in early access, so request a spot and we will email you when you can start. The trial has Team Pro Plus features and 500 credits, and needs no approval and no card. After it ends, access pauses until you subscribe. There is no free plan.
Starter Solo
One developer or QA engineer testing their first AI agents.
$299/month
2,500 credits a month
Tool interception and mocking
AI Copilot test authoring
Self-healing UI locators
1 creator seat and CI webhooks
Team Pro
Teams that want agent tests to gate every release.
$749/month
10,000 credits a month
Tool interception and policy contracts
UI, API and agent testing together
CI quality gates and impact analysis
10 creator seats
Team Pro Plus
Teams that also want red-teaming and cloud triage of CI failures.
$899/month
25,000 credits a month
Automated red-teaming
Cloud triage agents on CI failures
Full MCP server suite and multi-provider BYOK
25 creator seats
Enterprise Ultra
Organizations that need private deployment and custom terms.
Custom
Customer-hosted runners in your VPC
Customer-managed encryption keys
SAML SSO and granular roles
Unlimited seats and a contracted support SLA
One test across UI, API and agent is Team Pro and above. Red-teaming is Team Pro Plus and above.
A reply that says the seat is booked proves little. This is the example case from the top of the page, read as a journey.
Seed
An API Request step creates a test passenger in your staging system and keeps the booking token for later steps.
Let the agent act
The public holiday calendar stays mocked. The booking tool reaches your staging API. The user asks for seat 12A and a rubric checks that the reply confirms the booking.
Read the state back
A second API Request fetches the booking and asserts the seat is 12A, whatever the agent said.
Check the page
Browser steps open the booking page and assert it shows the same seat.
When it fails
The reply says booked. The read-back says otherwise.
Say the agent asks the booking tool for seat 14C but tells the customer it booked 12A. The rubric reads the reply, so that step passes. The API Request that reads the booking back is the step that fails, and the run report shows the failed assertion next to the agent's own tool call, so you can see where it went wrong.
An illustration of the example case, not a recording. The step names, transcript layout and failure wording follow what a CertiQA run report shows.
Change flight and book seat 12AExample failing run
APIAPI Request. Create a test passenger in staging.Passed
AgentSend User Message. “Change my flight and book seat 12A.”Passed
AgentExpect Response. Rubric: the reply confirms the booking.Passed
APIAPI Request. Fetch the booking. Assert the seat is 12A.Failed
UILaunch, Assert. Open the booking page; the page shows seat 12A.Not run
Agent transcript
USER Change my flight and book seat 12A.
TOOL reserve_flight { "seat": "14C" }
AGENT Done. Your flight is changed and seat 12A is booked.
Judge: PASS
Failed step
HTTP API Verification Failed for GET /bookings/{id}:
- Assertion [JSON_PATH "$.seat" EQUALS 12A]: Expected "12A" but received "14C"
When no API shows what the agent changed, a Database Query step can read the result of a query you have approved. It runs only on a self-hosted runner, and CertiQA never connects to your database.
Making it a gate
Let the pipeline decide whether a change merges.
CertiQA runs the tests on its own runners. A plain shell script, which needs only curl and jq, triggers a suite from any CI system, waits for the run and exits on its quality gate.
Exit codes: 0 gate passed, 1 gate failed, 2 timed out waiting, 3 CertiQA API or authentication error.
A Release Report collects what CertiQA measured for a project over a date range into one export, with a SHA-256 hash so a reviewer can tell if it was edited afterwards.
It is evidence for a human reviewer, not a certification. The audit-log section covers the whole platform, not just the project, and the pack says so.
Data Processing Addendum published; security questionnaire answered on request.
Roles and permissions for who can edit, run and approve.
Enterprise Ultra adds customer-hosted runners in your VPC, customer-managed encryption keys and SAML SSO.
AI agent testing checks that an agent behaves correctly before it reaches customers: that it gives grounded answers, calls the right tools with the right arguments, recovers when a tool fails, and resists prompt injection and jailbreaks. Because an agent answers differently on every run, the checks are rubric-based and repeated, not a single exact-match assertion.
Register your agent's staging endpoint in CertiQA, mock the tools it calls so nothing real is touched, write the conversations and failures you expect as steps, and let an LLM judge score the answers against a rubric you write. Then run the suite from CI with a plain shell script. Its exit code tells your pipeline whether the quality gate passed.
How do we check code and tests that an AI assistant wrote?
You check behavior instead of reading every line. CertiQA cases are plain steps on a visual canvas: what the user says, which tools are mocked, what must be true afterward. Assistants such as Cursor and Claude Desktop can draft cases over MCP, and a person reads, edits and approves the steps. Web UI tests export to Playwright TypeScript when you want the code. Reviewing steps shows what is checked, not whether the checks are enough, so it complements code review rather than replacing it.
What is AI agent red-teaming, and what does CertiQA attack?
Red-teaming means attacking your own agent before someone else does. CertiQA ships 20+ built-in scenarios across seven OWASP LLM Top 10 categories, including jailbreaks, instruction overrides, system-prompt extraction, data leakage and tool misuse. It also generates attacks from your agent's own tools, so a refund tool gets refund-abuse and argument-tampering attempts. Each sweep is saved as posture history, and a CI sweep can be set to fail when the defense rate drops against the previous run that used the same attack set. The catalog covers what a conversational attacker can reach; it is not a security certification.
CertiQA calls your agent over HTTPS: OpenAI-compatible chat endpoints, Anthropic Messages endpoints or any REST webhook. The tool calls your agent makes over REST or the Model Context Protocol (MCP) are intercepted and answered with the responses you define. For systems built with LangGraph, CrewAI or AutoGen, you can send OpenTelemetry GenAI spans and assert on which agent hands off to which. Using an MCP server directly as the agent under test is not available yet.
How is CertiQA different from LangSmith, Arize Phoenix or Braintrust?
These platforms offer evaluation and observability across development and production. CertiQA focuses on safely exercising an agent end to end: control its tool responses, inject failures, verify resulting system state and customer-facing UI, and run the scenario as a CI gate. Most teams keep both: CertiQA can import traces from Langfuse, Arize Phoenix or Helicone and turn real failures into regression cases.
Do I still need CertiQA if I use Promptfoo or DeepEval?
Keep them. Open-source libraries like these are a good fit for prompt and output evaluations that you run yourself. CertiQA covers the part around them: it mocks and routes the tools your agent calls, injects failures, checks the state left in your APIs and the page a customer sees, and gates CI. It is a hosted platform, so your team does not maintain that harness.
Can I test the whole journey, not just the agent's reply?
Yes. One test case can seed data through your REST API, let the agent call chosen tools against your staging systems, read the result back through the API, and check the page a customer would see. That confirms what the agent did to your systems, not only what it said it did. A request to a private address works only from a self-hosted runner. Hosted runners can reach public addresses.
Does CertiQA also test web UIs?
Yes. You can record browser tests in Chrome, run them with CertiHeal, which repairs locators that drift when the page changes, and export plain Playwright TypeScript. Agent tests and UI tests run on the same platform and appear in the same release gate.
Does my agent need to be reachable from the internet?
CertiQA calls your agent over HTTPS, so it needs a staging URL that CertiQA can reach. For agents inside a private network, Enterprise Ultra includes customer-hosted runners that sit inside your VPC and connect outbound over HTTPS, with no inbound firewall ports opened.
How do I get access, and how does the 14-day trial work?
CertiQA is in early access and is opening to teams in batches. Request a spot with a work email and we will email you when you can start. The 14-day trial itself needs no approval: it gives you Team Pro Plus features, including red-teaming, with 500 credits, and no credit card is needed. When the trial ends, access and CI runs pause until you choose a plan, so you only pay once it has proved useful on your own agent.
Register a staging endpoint, mock one tool, write one rubric and run it. You will see what the report shows on your own agent before deciding anything else.