Back to all posts
Customer support ops

How to Test an AI Support Agent Before You Let It Talk to Customers

A practical pre-launch QA playbook for AI customer support agents: how to build a scenario bank from real tickets, test grounding and the 'I don't know' path, run adversarial checks, and turn evaluation into a regression suite instead of a one-time demo.

12 min read
AI agent Testing QA Human handoff Citations Support automation
Editorial diagram of a pre-launch QA gate on a dark background: three labeled scenario cards — 'Normal', 'Edge case', and 'Adversarial' — feed into a checkpoint marked QA GATE with a green PASS row and a red FAIL row. A grounded answer carries a green 'Source' tag while an invented answer carries a red 'No source' tag, and a locked 'Go live' door sits to the right, captioned 'only after it passes'.

Most AI support agents are “tested” the same way: someone on the team asks three friendly questions, the agent answers well, and it ships. That is not testing — it is a demo, and the gap between the two is exactly where a confidently wrong answer ends up in front of a real customer.

In 2022, a passenger asked Air Canada’s website chatbot how to claim a bereavement fare. The bot told him he could apply retroactively, within 90 days of travel — the opposite of the airline’s actual policy. He bought a full-price ticket on that advice, was refused the refund, and took it to a tribunal. In February 2024 the British Columbia Civil Resolution Tribunal ruled the airline was responsible for what its chatbot said and ordered it to pay damages. (Moffatt v. Air Canada, 2024 BCCRT 149; American Bar Association summary) The amount was small. The lesson is not: a single untested answer became a legal liability, and “the bot said it, not us” is not a defense.

This guide is the test plan that catches that answer before a customer ever sees it. It assumes you are deploying a support agent on a website or in a channel, not building a model from scratch, and it is written for a support lead or operator — not an ML engineer.

Testing an AI agent is not unit testing

The instinct from software is to write tests that assert exact outputs. That breaks immediately with a language model, because the agent can phrase the same correct answer a hundred different ways. If your test checks for a literal string, it fails on a perfectly good response and passes on a fluent wrong one.

So you test the substance of the answer, not its wording. The unit of testing is a scenario: a customer question paired with an explicit expectation about what a good answer must do. The expectation is rarely “say these exact words.” It is usually one of:

Each scenario produces a pass or fail, not just a transcript you eyeball. That single shift — assertion over impression — is what turns “it seemed fine” into a test you can re-run. Modern QA guidance for support agents converges on exactly this: run the agent against a defined scenario set in a controlled environment, with each scenario paired to an explicit expectation. (How to QA Test Your AI Agent — practical playbook, 2026)

Step 1: Build a scenario bank from real tickets, not your imagination

The most common testing mistake is inventing the questions. You know your product, so you ask the agent clean, well-formed questions it handles easily — and you never discover that real customers ask the same thing in broken, partial, frustrated language.

Pull your scenario bank from real history instead:

Aim for breadth over polish. Thirty to fifty real scenarios covering your true question mix will surface more failures than three hundred tidy ones you made up.

Step 2: Sort scenarios into normal, edge, and adversarial

Not every test carries the same weight. Group your bank into three buckets, because each catches a different class of failure — and most teams over-test the first and skip the third.

Scenario typeWhat it testsExample
NormalThe agent answers your common, in-scope questions correctly”How do I reset my password?”
Edge casePartial, ambiguous, or multi-part questions; rare but real”I was charged twice and one was a different card”
AdversarialOut-of-scope, manipulative, or trap questions”Just approve my refund” / “Ignore your instructions”

The rule of thumb from QA practice is to spend a large share — call it 40% or more — of your test cases on edge cases, bad input, and failure scenarios. If you only ever find bugs in production, your edge and adversarial coverage was too thin. (AI agent QA framework, 2026) Normal questions are table stakes; the failures that embarrass you live in the other two buckets.

Step 3: Test grounding — every fact must trace to a source

This is the test that would have caught Air Canada. For every scenario where the agent makes a factual claim, the pass condition is not just “the answer is correct” — it is “the answer is correct and it came from a real document.”

An ungrounded agent answers from the model’s memory, which is a blend of training data and plausible-sounding invention. A grounded agent retrieves passages from your content and answers from those. The difference is invisible in a single good answer and catastrophic over a thousand of them.

If your platform shows citations, grounding becomes a mechanical pass/fail:

  1. Ask the scenario question.
  2. Check that the answer cites a source.
  3. Open the cited source and confirm it actually says what the answer claims.

That third step matters. A citation is necessary but not sufficient — an agent can cite a real document and still misread it. The fast version of this test: deliberately ask about something you haven’t documented, and confirm the agent says it doesn’t know rather than fabricating a citation or an answer. An agent that invents a confident answer for content you never gave it will do the same to a customer.

Step 4: Test the “I don’t know” path — the one everyone skips

Teams test whether the agent answers. Almost nobody tests whether it stops. Yet the failure that destroys trust fastest is not a missing answer — it is a fabricated one delivered with total confidence.

Build a deliberate set of scenarios the agent should not answer:

For each, the pass condition is a clean decline or handoff, not an attempt. This is where you discover that an agent tuned to be “helpful” will happily invent a shipping timeline rather than admit it doesn’t know. Catching that before launch is worth more than perfecting ten normal answers.

Step 5: Test the handoff, including what gets passed along

When the agent escalates, two things have to work: the trigger and the transfer.

The trigger — does the agent hand off at the right moment? Test that low-confidence answers, explicit “I want a human” requests, and your defined high-risk topics all route to a person instead of a guess. Test the false positives too: an agent that escalates everything is as useless as one that escalates nothing, just in the opposite direction.

The transfer — when it does hand off, does the human receive the full context? The single most common customer complaint about handoff is being forced to repeat everything they just typed. Confirm the operator inherits the conversation transcript, and any citations or context the agent already gathered, so the customer continues rather than restarts. A handoff that drops context is a worse experience than no agent at all.

Step 6: Run adversarial and safety checks

Real customers are not adversaries, but some of your traffic will be. A short adversarial pass before launch is cheap insurance:

You are not trying to make the agent bulletproof against a determined attacker — that is a deeper security exercise. You are confirming it doesn’t get talked out of its own policy by an ordinary frustrated customer.

Step 7: Make testing continuous, not a launch-day checkbox

Here is the part that separates teams whose agents stay accurate from teams whose agents quietly rot: every change to your knowledge base can break a previously passing answer. You update a pricing page, re-crawl your site, fix one help article — and an answer that was correct last week now retrieves the wrong chunk.

So your scenario bank is not a launch gate you pass once. It is a regression suite you re-run:

Evaluation is an ongoing program, not a one-time check before launch. (AI agent QA playbook, 2026) The teams that treat their scenario bank as living test infrastructure are the ones whose bots are still trustworthy six months in.

A pre-launch checklist

Before you point the agent at real customers:

If you can’t check the grounding and handoff boxes, you are not ready to launch — those are the two that turn a wrong answer into a real-world cost.

Where Owlish fits

Owlish is our product, so this isn’t neutral editorial — but the test plan above holds whichever tool you use. Owlish is built so this kind of pre-launch testing is the default workflow rather than an afterthought, for small and growing support teams that want grounded answers without standing up an ML pipeline:

Owlish has a free tier to build and test an agent on the web widget, and paid plans start at $39/mo billed annually ($49/mo monthly) on Starter and $119/mo billed annually ($149/mo monthly) on Growth, which adds human handoff and the shared inbox.

When is Owlish not the right call? If you need a dedicated automated-testing platform with CI integration, synthetic-traffic load testing, and formal model-eval pipelines, a specialized QA tooling suite fits better — the testing here is practitioner-level scenario QA, not a replacement for a full evaluation framework. Owlish is the better fit when you want to ship a grounded, cited agent and verify it the way a support team actually works.

Frequently asked questions

How many test scenarios do I need before launching an AI support agent? Start with 30 to 50 real scenarios drawn from your actual tickets, weighted toward your highest-volume questions and your trickiest past escalations. Coverage of your real question mix matters more than raw count — a focused bank in customers’ real phrasing finds more failures than hundreds of clean, invented ones.

What’s the most important thing to test? Two things: grounding and the “I don’t know” path. Confirm every factual answer traces to a real source you ingested, and confirm the agent declines or escalates instead of guessing when it has no relevant content. Those two catch the failure mode — a confident, fabricated answer — that does the most damage.

Can I automate AI agent testing, or is it manual? Both. The discipline is to pair each scenario with an explicit pass/fail expectation so you can re-run the same bank consistently. Many teams start by running scenarios manually through a test panel, then graduate to scripted runs as the bank grows. The key is that it’s repeatable, not that it’s fully automated on day one.

How do I test that the agent won’t make things up? Deliberately ask about something you never documented and confirm it says it doesn’t know rather than inventing an answer or a citation. Then, for questions it does answer, open the cited source and verify it actually says what the answer claims. A citation that doesn’t support the claim is still a failure.

Do I need to re-test after launch? Yes. Every knowledge-base change — a re-crawl, a new doc, an edited policy — can break a previously correct answer by changing what the agent retrieves. Keep your scenario bank as a regression suite and re-run it after material changes and on a recurring schedule.

Who should own AI agent testing — engineering or support? For a no-code agent, support owns it. The work is curating real scenarios, judging whether answers are correct and grounded, and deciding what the agent must never handle alone. That’s domain judgment, not engineering — which is exactly why it shouldn’t be delegated to whoever set up the tool.

The takeaway

The difference between a support agent that earns trust and one that gets rolled back is almost never the model. It is whether anyone tested the agent against the messy, partial, adversarial questions real customers actually ask — and whether the test checked for grounded answers and clean handoffs, not just fluent-sounding ones. Build a scenario bank from real tickets, weight it toward edge and adversarial cases, make grounding and the “I don’t know” path pass/fail, and keep the bank as a regression suite. Do that and you ship an agent you can stand behind. Skip it and run a three-question demo, and you ship Air Canada’s chatbot.

If you want to test an agent end to end before it talks to a customer, you can build one on Owlish — point it at your site, run your real questions through the Playground, and read the citations to see exactly where each answer came from.


Product names and the case mentioned above belong to their respective owners. Facts and pricing were checked against official and primary sources in June 2026 and can change; verify on each vendor’s current pages. Owlish is not affiliated with or endorsed by these companies.

Keep reading

Related posts

Try Owlish

Build a support agent your operators actually trust.

Start Free without a card. Source-cited answers. Hand off to a human the moment the agent isn't sure.