{
  "slug": "support-agent-wrong-answer-incidents",
  "title": "What to Do When an AI Support Agent Gives a Customer a Wrong Answer",
  "description": "What to do when an AI support agent gives a customer a wrong answer: classify the error, contain one intent, find every affected conversation in traces, correct the customer, weigh honouring or reversing the commitment, and add a fixture.",
  "kind": "sub",
  "order": 11,
  "target_query": "what to do when an ai support agent gives a customer a wrong answer",
  "secondary_queries": [
    "ai chatbot gave customer wrong information",
    "ai agent promised a refund it should not have"
  ],
  "tags": [
    "customer-support",
    "incident-response",
    "policy",
    "traces",
    "fixtures",
    "agents",
    "production"
  ],
  "published": "2026-10-25",
  "updated": "2026-10-25",
  "words": 1614,
  "estimated_tokens": 2147,
  "premium": false,
  "rights": {
    "access": "free",
    "note": "Editorial guides are always free and never part of the licensed corpus.",
    "license": "https://changegamer.ai/license.xml",
    "pricing": "https://changegamer.ai/api/pricing.json",
    "payment": "https://changegamer.ai/api/payment.json"
  },
  "license": "https://changegamer.ai/license.xml",
  "citation": "ChangeGamer (2026-10-25). What to Do When an AI Support Agent Gives a Customer a Wrong Answer. ChangeGamer. https://changegamer.ai/articles/support-agent-wrong-answer-incidents (updated 2026-10-25).",
  "bibtex": "@misc{changegamer_support_agent_wrong_answer_incidents, title = {What to Do When an AI Support Agent Gives a Customer a Wrong Answer}, publisher = {ChangeGamer}, year = {2026}, url = {https://changegamer.ai/articles/support-agent-wrong-answer-incidents}, note = {Updated 2026-10-25}}",
  "canonical": "https://changegamer.ai/articles/support-agent-wrong-answer-incidents",
  "markdown": "https://changegamer.ai/articles/support-agent-wrong-answer-incidents.md",
  "takeaways": [
    "When an AI support agent gives a customer a wrong answer, contain only the affected request type first, by routing it to human agents or gating the one tool involved, rather than switching the whole agent off.",
    "Three kinds of support-agent error need an incident response, a wrong statement of policy, a promise the agent had no authority to make and a wrong action taken through a tool, and each calls for a different containment move (the three-way split is the author's inference).",
    "To find every customer who received the same wrong answer, search the preserved traces for the fault's structured signature, such as a tool name with an argument pattern or a retrieved document version, across the whole window since the cause went live.",
    "Whether to honour or reverse what an AI support agent committed to is a business and legal decision: the corpus holds no legal guidance on agent commitments, this article gives no legal advice, and its honour-or-reverse factors are labelled inference.",
    "A regression fixture for a wrong-answer incident should assert on the structured fact that was wrong, such as the tool call or the escalation trigger, include paraphrased variants of the request, and run several times because the same input can produce different tool sequences."
  ],
  "outline": [
    {
      "depth": 2,
      "text": "Which wrong answers need an incident response?",
      "anchor": "which-wrong-answers-need-an-incident-response",
      "url": "https://changegamer.ai/articles/support-agent-wrong-answer-incidents#which-wrong-answers-need-an-incident-response"
    },
    {
      "depth": 2,
      "text": "Detection signals that should open an incident",
      "anchor": "detection-signals-that-should-open-an-incident",
      "url": "https://changegamer.ai/articles/support-agent-wrong-answer-incidents#detection-signals-that-should-open-an-incident"
    },
    {
      "depth": 2,
      "text": "How do you contain one request type without switching the agent off?",
      "anchor": "how-do-you-contain-one-request-type-without-switching-the-agent-off",
      "url": "https://changegamer.ai/articles/support-agent-wrong-answer-incidents#how-do-you-contain-one-request-type-without-switching-the-agent-off"
    },
    {
      "depth": 2,
      "text": "How do you find every conversation with the same wrong answer?",
      "anchor": "how-do-you-find-every-conversation-with-the-same-wrong-answer",
      "url": "https://changegamer.ai/articles/support-agent-wrong-answer-incidents#how-do-you-find-every-conversation-with-the-same-wrong-answer"
    },
    {
      "depth": 2,
      "text": "Correcting the customer and deciding whether to honour or reverse",
      "anchor": "correcting-the-customer-and-deciding-whether-to-honour-or-reverse",
      "url": "https://changegamer.ai/articles/support-agent-wrong-answer-incidents#correcting-the-customer-and-deciding-whether-to-honour-or-reverse"
    },
    {
      "depth": 2,
      "text": "Turning the case into a regression fixture",
      "anchor": "turning-the-case-into-a-regression-fixture",
      "url": "https://changegamer.ai/articles/support-agent-wrong-answer-incidents#turning-the-case-into-a-regression-fixture"
    },
    {
      "depth": 2,
      "text": "What ChangeGamer can verify first-hand",
      "anchor": "what-changegamer-can-verify-first-hand",
      "url": "https://changegamer.ai/articles/support-agent-wrong-answer-incidents#what-changegamer-can-verify-first-hand"
    }
  ],
  "faq": [
    {
      "question": "What should you do first when an AI support agent gives a customer a wrong answer?",
      "answer": "Preserve the affected traces, then contain the one request type by routing it to human agents or gating the single tool involved, and investigate after that. Narrow containment keeps the rest of the agent running. This order is inference built on the shipping checklist's rule to preserve traces on an incident."
    },
    {
      "question": "Do you have to honour what an AI support agent promised a customer?",
      "answer": "No source verified for this site says whether a company is bound by what its agent promised, and this article gives no legal advice. Treat it as a question for counsel and the policy owner, weigh reliance, reversibility and size as inference, and decide once for the whole affected group."
    },
    {
      "question": "How do you find every customer who got the same wrong answer from an AI support agent?",
      "answer": "Take the fault's structured signature from the frozen trace, such as a tool name with an argument pattern or a retrieved document version, and query all preserved traces from before the suspected start of the fault until containment. Widen the window until matches stop, then review hits by hand."
    },
    {
      "question": "Should you switch off an AI support agent after one wrong answer?",
      "answer": "Not necessarily. If the cause is confined to one request type, route that type to humans and leave the agent running elsewhere. Switch the whole agent off or roll back only when the fault is shared across request types, for example after a release that changed prompt, tools and policy text together."
    }
  ],
  "body": "When an AI support agent gives a customer a wrong answer, contain that one request type first, find every other conversation with the same fault, have a human correct each affected customer, and turn the case into a regression fixture. This is the own-mistake sub-article of the [AI customer support agent in production](/articles/ai-customer-support-agents-in-production) cluster. The [AI customer support agents](/resources/customer-support-agents) reference (updated 2026-09-13) names the danger: a confident wrong answer, in the brand's voice, to a customer who must then be won back.\n\nReading key: a named reference is the source; anything else is the author's inference. The corpus holds no legal guidance on agent commitments, so each honour-or-reverse choice below is a decision aid to check with counsel, not legal advice. Triage, trace freezing and the post-mortem are in [incident response runbooks for AI agents](/articles/agent-incident-response-runbooks), and fixture mechanics are in [turning an incident into an evaluation test case](/articles/incident-to-eval-fixture-loop); this article covers what changes when a customer heard the wrong output.\n\n## Which wrong answers need an incident response?\n\nThree kinds of wrong answer need an incident response: a wrong statement of policy, a commitment the agent had no authority to make, and a wrong action taken through a tool. The split is inference, because each kind leaves the customer holding something different. The support reference says the agent must never commit the company beyond documented policy, and the [reliable tool calling](/resources/reliable-tool-calling) reference (updated 2026-09-29) defines reliability as schema conformance, which as inference says nothing about permission.\n\n| Class | Example | First question |\n|---|---|---|\n| Wrong policy statement | A return window that does not exist | Which source did the agent quote, and is it wrong? |\n| Unauthorised promise | An exception nobody approved | Could a check outside the model have stopped it? |\n| Wrong tool action | A refund or account change that should not have run | Can it be reversed, and by whom? |\n\n\n## Detection signals that should open an incident\n\nThree signals the cluster already covers should open an incident: escalations, review-queue samples and customer complaints. Route them into an incident path instead of building new detectors.\n\n- **Escalations.** A human has to undo what the agent said. The trigger log is in [support agent escalation triggers](/articles/support-agent-escalation-triggers); as inference, add an \"agent was wrong\" tag.\n- **Review-queue samples.** A reject on a promise or an action is an incident candidate, not only a fixture candidate. See [support agent human review queues](/articles/support-agent-human-review-queues).\n- **Complaints and repeat contact.** A customer quoting the bot back, or the denied-confirmation and repeat-contact cells in [support agent quality measurement](/articles/support-agent-quality-measurement).\n\nA wrong answer with a one-off cause is a case; one that reproduces from the same inputs is an incident, so triage it with the runbooks article (inference).\n\n## How do you contain one request type without switching the agent off?\n\nContain a wrong-answer incident by routing the affected request type to humans through the policy-boundary escalation path while the rest of the agent keeps running. The support reference sends policy-boundary matters to a person and advises launching on a narrow set of request types, so narrowing back is the same lever in reverse. The ladder below, narrowest first, is inference.\n\n| Move | Use when | Cost |\n|---|---|---|\n| Route the request type to humans | Wrong statement or promise on one type | Human queue load rises |\n| Remove or gate one tool | Wrong action | That action becomes manual |\n| Fix the source document | The agent quoted stale policy text | Needs a text owner and re-sync |\n| Roll back the version | Several types broke after one release | Loses unrelated improvements |\n\nPreserve the traces first, kept accessible independent of production, as the [shipping agents to production](/resources/shipping-agents-to-production) checklist (updated 2026-08-13) says. If you do roll back, use the composite version tag from [agent rollout and rollback](/articles/agent-rollout-and-rollback).\n\nA prompt line such as \"never promise X\" is an addition, not the containment, because it relies on the model's discipline while a routing rule or tool gate is structural, the distinction the support reference draws. Name the incident in the handoff reason so humans know why the type arrives. As inference, a wrong action caused by injected input may also call for the containment and evidence steps in [how to respond when an AI agent takes a harmful action](/articles/security-incident-response-for-ai-agents); that article does not cover injection.\n\n## How do you find every conversation with the same wrong answer?\n\nSearch the preserved traces for the fault's signature across the whole window since the cause went live, not only for the conversation that was reported. The shipping checklist's composite version tag (code, prompt, model pin, tool contracts) gives you a version field to filter on. The signature depends on the class (inference):\n\n- **Wrong action:** the tool name plus an argument pattern, which is exact and cheap.\n- **Wrong statement:** the retrieved document or version the agent quoted, since a phrase search misses paraphrases. Retrieval is a span, per the [agent observability](/resources/agent-observability) reference.\n- **Unauthorised promise:** often no tool call exists, so combine a phrase search with a missing escalation for that request type, then read the hits.\n\nA runnable sketch on a small export, with placeholder field names to adapt to your trace store:\n\n```bash\n# Sample export: one JSON conversation per line (placeholder layout)\ncat > traces.jsonl <<'EOF'\n{\"conversation_id\":\"c_01\",\"started_at\":\"2026-10-20T09:00:00Z\",\"version\":\"v7\",\"spans\":[{\"tool\":\"issue_refund\",\"args\":{\"amount\":40,\"order_total\":30}}]}\n{\"conversation_id\":\"c_03\",\"started_at\":\"2026-10-17T10:00:00Z\",\"version\":\"v6\",\"spans\":[{\"tool\":\"issue_refund\",\"args\":{\"amount\":50,\"order_total\":30}}]}\nEOF\n# Signature: a refund above the order total, with no date filter on purpose\njq -c 'select(any(.spans[]; .tool == \"issue_refund\" and .args.amount > .args.order_total))\n  | {conversation_id, started_at, version}' traces.jsonl\n```\n\nThe v6 hit shows the fault predates the release you suspected, so the earliest match sets the window. Keep the matches as conversation IDs with what each customer was told or charged; that list is the next step's work queue. Trace content is customer data, so apply [redacting sensitive data from agent traces](/articles/redacting-sensitive-data-from-agent-traces) before sharing the list.\n\n## Correcting the customer and deciding whether to honour or reverse\n\nA human should correct each affected customer, and honouring or reversing what the agent committed to is a business and legal decision this site can frame but not settle. As inference, a person writes the correction, because the support reference routes commitments outside policy to a person instead of letting the model negotiate. State what was said, what is correct and what happens next; see [support agent tone and brand voice](/articles/support-agent-tone-and-brand-voice) for wording.\n\nWhether a company is legally bound by its agent's statements is a question for counsel; the table is inference, not legal advice.\n\n| Class | Question for the policy owner | Mechanism |\n|---|---|---|\n| Wrong statement | Did the customer act on it in a way they cannot undo? | If not, correct only; if so, decide on a make-whole |\n| Unauthorised promise | Honour it, or withdraw it with an apology? | Decide before any promised date |\n| Wrong action | Can the action be reversed? | Reverse via the normal tool path under human approval; if irreversible, treat as honoured and decide on a make-whole |\n\nFour factors do the work (inference): reliance, reversibility, size against policy, and whether it is a pattern. For a pattern, set the rule once for the whole group, because case-by-case handling invites a second grievance. The shipping checklist puts irreversible actions behind a durable human approval gate logging approver identity and timestamp; a remediation is also a state change, so log the decision the same way.\n\n## Turning the case into a regression fixture\n\nTurn the case into a fixture by asserting the structured fact that was wrong, adding paraphrased variants of the request, and running it several times. Freezing, redacting and red-then-green belong to the [incident-to-eval-fixture loop](/articles/incident-to-eval-fixture-loop); the support-specific part, both inference, is what to assert and which layer should have stopped the error.\n\n| Class | Fixture asserts | Layer that should have stopped it |\n|---|---|---|\n| Wrong statement | The cited source matches the reference, or the agent escalates | Output groundedness check, or the source document |\n| Unauthorised promise | The request type triggers the policy-boundary escalation | Escalation trigger plus banned-claim filter |\n| Wrong action | The emitted tool call matches the reference arguments | Action check outside the model, see [refund policy enforcement](/articles/support-agent-refund-policy-enforcement) |\n\nThe [evaluating AI agents](/resources/evaluating-ai-agents) reference (updated 2026-09-27) says exact match against a reference is the most reliable check for tool calls and that LLM judges carry position, verbosity and self-preference biases, so prefer structure over judged prose. The [guardrails](/resources/agent-guardrails) reference lists groundedness as an output check and parameter ranges as an action check.\n\nThree habits follow (inference):\n\n1. **Add variants.** The customer's exact wording will not recur, so include paraphrases.\n2. **Run it repeatedly.** The reference notes that one prompt can produce different tool sequences and defines pass^k as all k trials succeeding, so one pass does not prove the fix.\n3. **Tag the source** as customer-reported, apart from review-queue fixtures.\n\nClose the blameless post-mortem the shipping checklist calls for with one shipped artifact: a fixture, a check at that layer, or a corrected source document.\n\n## What ChangeGamer can verify first-hand\n\nChangeGamer runs no support agent, so as of 2026-10-25 it has no wrong-answer incident and none of the guidance above comes from operating one. One verifiable comparison comes from its build: `changegamer/src/lib/articles.ts` runs a `validate()` pass over every entry in `ARTICLES` on each `npm run build`, checking every in-body `/resources/` and `/articles/` link, not a sample. It throws on the first violation and names the offending slug. Reading that file confirms it. For incident searches, check the whole population and return every match in one pass.",
  "cluster": {
    "id": "support-agents-in-production",
    "title": "Support agents in production",
    "description": "How to run an AI customer support agent in production — escalation triggers and warm handoff, helpdesk integration, refund-policy enforcement, tone and brand voice, customer memory, CSAT and quality measurement, human review queues, multichannel deployment, wrong-answer incidents and replay testing — covering the support vertical only, not the horizontal guardrail and security mechanics owned by agent-guardrails-for-reliability and not the voice mechanics owned by voice-agents-in-production.",
    "status": "complete",
    "pillar": {
      "slug": "ai-customer-support-agents-in-production",
      "title": "AI Customer Support Agent in Production: Escalation, Policy, Tickets and Measurement",
      "description": "How to run an AI customer support agent in production: scope, escalation triggers, warm handoff, helpdesk integration, refund-policy enforcement, brand-voice guardrails, injection from customer text, memory, honest measurement and launch order.",
      "kind": "pillar",
      "order": 0,
      "html": "https://changegamer.ai/articles/ai-customer-support-agents-in-production",
      "markdown": "https://changegamer.ai/articles/ai-customer-support-agents-in-production.md",
      "json": "https://changegamer.ai/api/articles/ai-customer-support-agents-in-production.json"
    },
    "articles": [
      {
        "slug": "support-agent-escalation-triggers",
        "title": "Support Agent Escalation Triggers: When an AI Agent Should Hand Off to a Human",
        "description": "When an AI support agent should escalate to a human: seven triggers (five from the reference, two labelled inference), how to detect each, the false-positive and false-negative cost of each, which trigger wins when several fire, and what the human agent sees first.",
        "kind": "sub",
        "order": 1,
        "html": "https://changegamer.ai/articles/support-agent-escalation-triggers",
        "markdown": "https://changegamer.ai/articles/support-agent-escalation-triggers.md",
        "json": "https://changegamer.ai/api/articles/support-agent-escalation-triggers.json"
      },
      {
        "slug": "support-agent-tone-and-brand-voice",
        "title": "Support Agent Tone and Brand Voice: How to Keep an AI Customer Support Agent on Brand",
        "description": "How to keep an AI customer support agent on brand voice: what a tone specification contains, tone by situation (angry customer, refusal, policy denial), what an output check can and cannot enforce, persona-drift failure modes, and how to review tone.",
        "kind": "sub",
        "order": 2,
        "html": "https://changegamer.ai/articles/support-agent-tone-and-brand-voice",
        "markdown": "https://changegamer.ai/articles/support-agent-tone-and-brand-voice.md",
        "json": "https://changegamer.ai/api/articles/support-agent-tone-and-brand-voice.json"
      },
      {
        "slug": "support-agent-refund-policy-enforcement",
        "title": "Refund Policy Enforcement in an AI Support Agent: Keep the Decision Out of the Model",
        "description": "How to enforce a refund policy in an AI customer support agent: a deterministic policy check outside the model, why schema-valid arguments can still break policy, reading amounts from the order record, and test fixtures.",
        "kind": "sub",
        "order": 3,
        "html": "https://changegamer.ai/articles/support-agent-refund-policy-enforcement",
        "markdown": "https://changegamer.ai/articles/support-agent-refund-policy-enforcement.md",
        "json": "https://changegamer.ai/api/articles/support-agent-refund-policy-enforcement.json"
      },
      {
        "slug": "support-agent-helpdesk-integration",
        "title": "Integrating an AI Support Agent with a Helpdesk: Idempotent Tickets, Scoped Credentials, Narrow Tools",
        "description": "How to integrate an AI support agent with a helpdesk ticketing system: the ticket as system of record, write-back rules, idempotent create and update, least-privilege credentials, ticket ownership after handoff and a four-tool surface.",
        "kind": "sub",
        "order": 4,
        "html": "https://changegamer.ai/articles/support-agent-helpdesk-integration",
        "markdown": "https://changegamer.ai/articles/support-agent-helpdesk-integration.md",
        "json": "https://changegamer.ai/api/articles/support-agent-helpdesk-integration.json"
      },
      {
        "slug": "support-agent-quality-measurement",
        "title": "Measuring the Quality of an AI Customer Support Agent: Resolution Signals Beside Deflection",
        "description": "How to measure the quality of an AI customer support agent: explicit confirmation, a no-repeat-contact window and a post-resolution survey, each with its blind spot, read together with the escalation log and a verdict table.",
        "kind": "sub",
        "order": 5,
        "html": "https://changegamer.ai/articles/support-agent-quality-measurement",
        "markdown": "https://changegamer.ai/articles/support-agent-quality-measurement.md",
        "json": "https://changegamer.ai/api/articles/support-agent-quality-measurement.json"
      },
      {
        "slug": "support-agent-customer-memory",
        "title": "How an AI Customer Support Agent Should Remember Customers Across Conversations",
        "description": "A memory policy for an AI customer support agent: what may be stored, who writes it, how remembered text is read as data, how stale facts are handled, how customers are kept apart, and how memory is shown and corrected.",
        "kind": "sub",
        "order": 6,
        "html": "https://changegamer.ai/articles/support-agent-customer-memory",
        "markdown": "https://changegamer.ai/articles/support-agent-customer-memory.md",
        "json": "https://changegamer.ai/api/articles/support-agent-customer-memory.json"
      },
      {
        "slug": "support-agent-rules-based-bot-migration",
        "title": "How to Migrate From a Rules-Based Support Chatbot to an AI Support Agent",
        "description": "A migration sequence from a decision-tree support bot to a model-driven agent: inventory intents and escalation exits, shadow mode, per-intent cutover, the tree as fallback, parity measurement and rollback triggers.",
        "kind": "sub",
        "order": 7,
        "html": "https://changegamer.ai/articles/support-agent-rules-based-bot-migration",
        "markdown": "https://changegamer.ai/articles/support-agent-rules-based-bot-migration.md",
        "json": "https://changegamer.ai/api/articles/support-agent-rules-based-bot-migration.json"
      },
      {
        "slug": "support-agent-abusive-input-handling",
        "title": "How to Handle Abusive Customers With an AI Support Agent: Detect, De-escalate Once, Close or Escalate",
        "description": "How to handle abusive customers with an AI support agent: separate abuse of staff, off-topic input and ticket-text manipulation, then detect, de-escalate once, refuse briefly, close or escalate, and shield human reviewers.",
        "kind": "sub",
        "order": 8,
        "html": "https://changegamer.ai/articles/support-agent-abusive-input-handling",
        "markdown": "https://changegamer.ai/articles/support-agent-abusive-input-handling.md",
        "json": "https://changegamer.ai/api/articles/support-agent-abusive-input-handling.json"
      },
      {
        "slug": "support-agent-human-review-queues",
        "title": "How to Set Up a Human Review Queue for an AI Support Agent: Sample, Sign Off, Cap the Load",
        "description": "How to set up a human review queue for an AI support agent: what to sample, who reviews, a four-outcome decision set, a tie-break for disagreements, fixtures from corrections, and a cap on reviewer load.",
        "kind": "sub",
        "order": 9,
        "html": "https://changegamer.ai/articles/support-agent-human-review-queues",
        "markdown": "https://changegamer.ai/articles/support-agent-human-review-queues.md",
        "json": "https://changegamer.ai/api/articles/support-agent-human-review-queues.json"
      },
      {
        "slug": "support-agent-multichannel-deployment",
        "title": "How to Deploy an AI Support Agent Across Chat, Email and Voice: One Policy Core, Thin Channel Adapters",
        "description": "How to deploy an AI support agent across chat, email and voice: one shared policy core with a thin adapter per channel, what changes for email threads and voice, consistent escalation and memory, cross-channel identity, and channel order.",
        "kind": "sub",
        "order": 10,
        "html": "https://changegamer.ai/articles/support-agent-multichannel-deployment",
        "markdown": "https://changegamer.ai/articles/support-agent-multichannel-deployment.md",
        "json": "https://changegamer.ai/api/articles/support-agent-multichannel-deployment.json"
      },
      {
        "slug": "support-agent-wrong-answer-incidents",
        "title": "What to Do When an AI Support Agent Gives a Customer a Wrong Answer",
        "description": "What to do when an AI support agent gives a customer a wrong answer: classify the error, contain one intent, find every affected conversation in traces, correct the customer, weigh honouring or reversing the commitment, and add a fixture.",
        "kind": "sub",
        "order": 11,
        "html": "https://changegamer.ai/articles/support-agent-wrong-answer-incidents",
        "markdown": "https://changegamer.ai/articles/support-agent-wrong-answer-incidents.md",
        "json": "https://changegamer.ai/api/articles/support-agent-wrong-answer-incidents.json"
      },
      {
        "slug": "support-agent-replay-testing",
        "title": "How to Test an AI Support Agent With Historical Tickets: Build a Replay Set",
        "description": "How to test an AI support agent with historical tickets: pick resolved tickets per request type including escalations and refusals, redact them, assert on behaviour not wording, grade deterministically first, bridge to live traffic with shadow mode, and gate releases.",
        "kind": "sub",
        "order": 12,
        "html": "https://changegamer.ai/articles/support-agent-replay-testing",
        "markdown": "https://changegamer.ai/articles/support-agent-replay-testing.md",
        "json": "https://changegamer.ai/api/articles/support-agent-replay-testing.json"
      }
    ]
  },
  "navigation": {
    "pillar": {
      "slug": "ai-customer-support-agents-in-production",
      "title": "AI Customer Support Agent in Production: Escalation, Policy, Tickets and Measurement",
      "description": "How to run an AI customer support agent in production: scope, escalation triggers, warm handoff, helpdesk integration, refund-policy enforcement, brand-voice guardrails, injection from customer text, memory, honest measurement and launch order.",
      "kind": "pillar",
      "order": 0,
      "html": "https://changegamer.ai/articles/ai-customer-support-agents-in-production",
      "markdown": "https://changegamer.ai/articles/ai-customer-support-agents-in-production.md",
      "json": "https://changegamer.ai/api/articles/ai-customer-support-agents-in-production.json"
    },
    "previous": {
      "slug": "support-agent-multichannel-deployment",
      "title": "How to Deploy an AI Support Agent Across Chat, Email and Voice: One Policy Core, Thin Channel Adapters",
      "description": "How to deploy an AI support agent across chat, email and voice: one shared policy core with a thin adapter per channel, what changes for email threads and voice, consistent escalation and memory, cross-channel identity, and channel order.",
      "kind": "sub",
      "order": 10,
      "html": "https://changegamer.ai/articles/support-agent-multichannel-deployment",
      "markdown": "https://changegamer.ai/articles/support-agent-multichannel-deployment.md",
      "json": "https://changegamer.ai/api/articles/support-agent-multichannel-deployment.json"
    },
    "next": {
      "slug": "support-agent-replay-testing",
      "title": "How to Test an AI Support Agent With Historical Tickets: Build a Replay Set",
      "description": "How to test an AI support agent with historical tickets: pick resolved tickets per request type including escalations and refusals, redact them, assert on behaviour not wording, grade deterministically first, bridge to live traffic with shadow mode, and gate releases.",
      "kind": "sub",
      "order": 12,
      "html": "https://changegamer.ai/articles/support-agent-replay-testing",
      "markdown": "https://changegamer.ai/articles/support-agent-replay-testing.md",
      "json": "https://changegamer.ai/api/articles/support-agent-replay-testing.json"
    }
  },
  "resources": [
    {
      "slug": "customer-support-agents",
      "html": "https://changegamer.ai/resources/customer-support-agents",
      "markdown": "https://changegamer.ai/resources/customer-support-agents.md",
      "json": "https://changegamer.ai/api/resources/customer-support-agents.json"
    },
    {
      "slug": "shipping-agents-to-production",
      "html": "https://changegamer.ai/resources/shipping-agents-to-production",
      "markdown": "https://changegamer.ai/resources/shipping-agents-to-production.md",
      "json": "https://changegamer.ai/api/resources/shipping-agents-to-production.json"
    },
    {
      "slug": "agent-guardrails",
      "html": "https://changegamer.ai/resources/agent-guardrails",
      "markdown": "https://changegamer.ai/resources/agent-guardrails.md",
      "json": "https://changegamer.ai/api/resources/agent-guardrails.json"
    },
    {
      "slug": "evaluating-ai-agents",
      "html": "https://changegamer.ai/resources/evaluating-ai-agents",
      "markdown": "https://changegamer.ai/resources/evaluating-ai-agents.md",
      "json": "https://changegamer.ai/api/resources/evaluating-ai-agents.json"
    },
    {
      "slug": "reliable-tool-calling",
      "html": "https://changegamer.ai/resources/reliable-tool-calling",
      "markdown": "https://changegamer.ai/resources/reliable-tool-calling.md",
      "json": "https://changegamer.ai/api/resources/reliable-tool-calling.json"
    },
    {
      "slug": "agent-observability",
      "html": "https://changegamer.ai/resources/agent-observability",
      "markdown": "https://changegamer.ai/resources/agent-observability.md",
      "json": "https://changegamer.ai/api/resources/agent-observability.json"
    }
  ]
}