{
  "slug": "voice-agent-vendor-change-management",
  "title": "How to Handle Voice AI Vendor Model Changes Without Regressing Callers",
  "description": "How to handle voice AI vendor model changes: classify the change, record the model id on every trace, replay an offline set with hard calls on old and new, canary before cutover, keep a rollback, and run a deprecation-readiness routine.",
  "kind": "sub",
  "order": 10,
  "target_query": "how to handle voice ai vendor model changes",
  "secondary_queries": [
    "voice ai model deprecation",
    "upgrade realtime voice model safely"
  ],
  "tags": [
    "voice",
    "vendor",
    "change-management",
    "evaluation",
    "rollback",
    "agents",
    "production"
  ],
  "published": "2026-10-13",
  "updated": "2026-10-13",
  "words": 1306,
  "estimated_tokens": 1737,
  "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-13). How to Handle Voice AI Vendor Model Changes Without Regressing Callers. ChangeGamer. https://changegamer.ai/articles/voice-agent-vendor-change-management (updated 2026-10-13).",
  "bibtex": "@misc{changegamer_voice_agent_vendor_change_management, title = {How to Handle Voice AI Vendor Model Changes Without Regressing Callers}, publisher = {ChangeGamer}, year = {2026}, url = {https://changegamer.ai/articles/voice-agent-vendor-change-management}, note = {Updated 2026-10-13}}",
  "canonical": "https://changegamer.ai/articles/voice-agent-vendor-change-management",
  "markdown": "https://changegamer.ai/articles/voice-agent-vendor-change-management.md",
  "takeaways": [
    "To handle a voice AI vendor model change, replay your offline call set, including deliberately hard calls, against the old and new model on identical metrics before any caller reaches the new one.",
    "The voice-realtime-agents reference, web-verified as of 2026-07-09 (not re-confirmed in the 2026-09-28 corpus pass), records OpenAI shipping gpt-realtime-2.1 on 6 July 2026 with a ~25% lower p95 latency, a figure recorded in the corpus rather than measured on your callers, so test it on your own traffic.",
    "As the author's inference, every voice agent trace should record the exact model identifier that served the call, because without it a regression after a vendor change cannot be tied to the change.",
    "A voice agent that depends on a deprecated model line, such as the gpt-4o-realtime-preview series the corpus lists as deprecated, as the author's inference needs a migration owner and a tested replacement before the old line stops working.",
    "A vendor-claimed gain, such as better alphanumeric recognition or interruption behavior, is not guaranteed on your callers' audio, so route a small canary slice and keep a tested rollback path."
  ],
  "outline": [
    {
      "depth": 2,
      "text": "What kinds of vendor change can hit a live voice agent?",
      "anchor": "what-kinds-of-vendor-change-can-hit-a-live-voice-agent",
      "url": "https://changegamer.ai/articles/voice-agent-vendor-change-management#what-kinds-of-vendor-change-can-hit-a-live-voice-agent"
    },
    {
      "depth": 2,
      "text": "How do you know which model served a call?",
      "anchor": "how-do-you-know-which-model-served-a-call",
      "url": "https://changegamer.ai/articles/voice-agent-vendor-change-management#how-do-you-know-which-model-served-a-call"
    },
    {
      "depth": 2,
      "text": "How do you replay old and new models on the same calls?",
      "anchor": "how-do-you-replay-old-and-new-models-on-the-same-calls",
      "url": "https://changegamer.ai/articles/voice-agent-vendor-change-management#how-do-you-replay-old-and-new-models-on-the-same-calls"
    },
    {
      "depth": 2,
      "text": "How do you roll a new model out to callers?",
      "anchor": "how-do-you-roll-a-new-model-out-to-callers",
      "url": "https://changegamer.ai/articles/voice-agent-vendor-change-management#how-do-you-roll-a-new-model-out-to-callers"
    },
    {
      "depth": 2,
      "text": "What is a deprecation-readiness routine?",
      "anchor": "what-is-a-deprecation-readiness-routine",
      "url": "https://changegamer.ai/articles/voice-agent-vendor-change-management#what-is-a-deprecation-readiness-routine"
    },
    {
      "depth": 2,
      "text": "What is the vendor-change checklist?",
      "anchor": "what-is-the-vendor-change-checklist",
      "url": "https://changegamer.ai/articles/voice-agent-vendor-change-management#what-is-the-vendor-change-checklist"
    },
    {
      "depth": 2,
      "text": "What does ChangeGamer know first-hand about vendor change?",
      "anchor": "what-does-changegamer-know-first-hand-about-vendor-change",
      "url": "https://changegamer.ai/articles/voice-agent-vendor-change-management#what-does-changegamer-know-first-hand-about-vendor-change"
    }
  ],
  "faq": [
    {
      "question": "How do you test a new voice AI model before switching callers to it?",
      "answer": "Replay your offline set of recorded or synthetic calls, including deliberately hard ones, through the old and the new model and compare the same metrics. The evaluating-voice-agents reference recommends this offline replay to gate a release."
    },
    {
      "question": "Should a voice agent follow the newest vendor model automatically?",
      "answer": "As the author's inference, no: a live voice agent should change model on a schedule the operator controls, after a replay and a canary. Automatic following lets a vendor change alter caller experience with no test and no clear owner."
    },
    {
      "question": "What should be recorded on each voice call to survive a vendor change?",
      "answer": "Record the exact model identifier, the transport and the configuration that served the call, on the trace. The agent-observability reference names a model-name attribute, gen_ai.request.model (Development status; names may change), on LLM spans; the rest of this answer is the author's inference."
    },
    {
      "question": "What changed in OpenAI realtime models in 2026?",
      "answer": "Per the voice-realtime-agents reference, web-verified as of 2026-07-09 and not re-confirmed in the 2026-09-28 corpus pass, gpt-realtime-2 arrived on 7 May 2026 and gpt-realtime-2.1 with a mini variant on 6 July 2026, while the gpt-4o-realtime-preview series is deprecated."
    }
  ],
  "body": "A live voice agent absorbs a vendor model change by treating it as a release you did not write: classify it, replay your own hard calls on old and new, canary it, and keep the old path until the new one has earned trust. This article covers the operator's routine for that. The [voice AI agent in production](/articles/voice-ai-agent-in-production) pillar frames the whole cluster; here the question is only what to do when the vendor ships something.\n\nReading key: \"corpus\" marks a statement taken from a named reference; \"inference\" marks the author's reasoning. The corpus documents the vendor timeline (web-verified as of 2026-07-09, not re-confirmed in the 2026-09-28 corpus pass) and the offline replay idea; it does not document vendor notice periods or version-pinning behaviour, so none are stated.\n\n## What kinds of vendor change can hit a live voice agent?\n\nA live voice agent faces three kinds of vendor change: a new model generation, a deprecation of the line you run on, and a silent behaviour shift inside a model you did not change. The first two are visible in the corpus timeline; the third is inference.\n\nThe voice-realtime-agents reference, whose vendor entries are web-verified as of 2026-07-09 and not re-confirmed in the 2026-09-28 corpus pass, gives a worked example for OpenAI's Realtime API (corpus):\n\n| Date | Event |\n|---|---|\n| 2025-08-28 | `gpt-realtime` generally available |\n| 2026-05-07 | `gpt-realtime-2`: GPT-5-class reasoning, configurable reasoning effort, 128K context |\n| 2026-07-06 | `gpt-realtime-2.1` and `gpt-realtime-2.1-mini`: improved alphanumeric recognition, noise and silence handling and interruption behavior; ~25% lower p95 latency via caching |\n| not dated in the corpus | `gpt-4o-realtime-preview` series deprecated |\n\nThe table shows three dated releases between August 2025 and July 2026; the corpus does not claim that cadence will continue.\n\nEach kind needs a different response (inference):\n\n- **New generation:** optional, so schedule it. The gain is a claim until measured on your calls.\n- **Deprecation:** mandatory, so the deadline belongs to the vendor and the work belongs to you.\n- **Silent shift:** detected only by watching live metrics, covered in [monitoring a voice agent in production](/articles/voice-agent-online-monitoring).\n\n## How do you know which model served a call?\n\nYou know it only if you record the exact model identifier on every call trace, which is the author's inference rather than a documented practice. The agent-observability reference describes traces and spans and lists a model-name attribute, `gen_ai.request.model` (Development status; names may change), among the `gen_ai.*` attributes (corpus), so the slot already exists in that vocabulary.\n\nRecord these on the trace or its root span (inference):\n\n- the model identifier your code requested, and any identifier the vendor reports back, stored separately;\n- the transport and the session configuration, such as the turn detection settings;\n- your prompt and tool-definition version.\n\nWithout the first item, a jump in false interruptions in the week of a vendor release cannot be separated from your own deploy. With it, a dashboard can be split by model and the comparison becomes a query. The corpus does not say whether a vendor name resolves to a fixed model or can move over time, so read the vendor's current documentation and do not assume either behaviour.\n\n## How do you replay old and new models on the same calls?\n\nReplay your offline call set through both models and compare the same metrics side by side. The evaluating-voice-agents reference says offline evaluation replays a fixed set of recorded or synthetic calls, including deliberately hard ones such as accents, background noise and crosstalk, before every release (corpus); as the author's inference, a vendor model change is a release.\n\nThe generic re-run logic, which tests to repeat after swapping a model, is in the swap section of [cascaded versus speech-to-speech architecture](/articles/voice-agent-architecture-cascaded-vs-speech-to-speech). The vendor-specific steps are (inference):\n\n1. Run old and new on identical audio, one change at a time. If you also edit the prompt, you cannot attribute the difference.\n2. Read the hard-call slice separately. An average can improve while the calls that matter get worse.\n3. Check the specific claim. If the vendor says alphanumeric recognition improved, test your order numbers and postcodes; if it says latency fell, compare against the [voice agent latency budget](/articles/voice-agent-latency-budget) split, not a single total.\n\nThe reference warns that an offline set is blind to conditions it does not contain. Add any call that exposed a gap to the set, so it grows with every incident.\n\n## How do you roll a new model out to callers?\n\nSend a small share of live calls to the new model, compare it to the old model on the same live metrics, and keep a one-step route back to the old one. Percentages, hold times and promotion rules are generic release mechanics and are in [rolling out and rolling back agent versions](/articles/agent-rollout-and-rollback); the voice-specific points below are inference.\n\n- **A vendor-claimed gain is not guaranteed on your traffic.** The ~25% lower p95 latency is recorded in the corpus as a vendor-side claim about the release, not a measurement of your callers, routes or prompts.\n- **Pick canary traffic you can afford to get wrong.** A low-stakes call type teaches more than a hard-to-recover one.\n- **Compare on the same panels** you already use for the live agent, split by the model identifier from the trace; the per-model split is this article's trace-field recommendation (inference).\n- **Keep the old model configuration deployable** until the new one has run through a normal traffic cycle, including your hardest hour of the week.\n\nRollback only works while the old model still exists. A deprecated line removes that option, which is why deprecation is a separate routine.\n\n## What is a deprecation-readiness routine?\n\nA deprecation-readiness routine is a standing, scheduled check that you could move to a replacement model within the vendor's window, run before any deprecation is announced. Its content is inference; the corpus records only that the gpt-4o-realtime-preview series is deprecated.\n\n- **Keep a model inventory:** which agents, prompts and environments run which model, so a deprecation notice maps to a list, not a search.\n- **Name the replacement and its owner** for each, and run the replay on it ahead of need.\n- **Subscribe to the vendor's change notices** and read the current documentation for dates; this article states none because the corpus supplies none.\n- **Rehearse one migration** in a quiet period, end to end, including the rollback.\n\nArchitecture decides how much of this you own. In a cascaded pipeline you can swap one stage, while a native speech-to-speech model couples recognition, reasoning and voice in one vendor release; see [cascaded versus speech-to-speech architecture](/articles/voice-agent-architecture-cascaded-vs-speech-to-speech) for the trade.\n\n## What is the vendor-change checklist?\n\nThe checklist has seven steps, and most steps map to a section above.\n\n1. Classify the change: new generation, deprecation or silent shift.\n2. Read the vendor's current documentation for what changed and by when.\n3. Confirm the model identifier is on every trace.\n4. Replay the offline set on old and new, hard calls scored separately.\n5. Test the specific vendor claim on your own audio.\n6. Canary a small slice, split live panels by model identifier.\n7. Keep the rollback deployable, then record the outcome and add new failing calls to the set.\n\n## What does ChangeGamer know first-hand about vendor change?\n\nNothing about voice, since as of October 2026 there is no ChangeGamer voice agent and no call data behind any outcome above. What can be checked is the site's own build: after `npm run build`, `node scripts/verify-invariants.mjs` in `changegamer/` prints \"All invariants hold.\" when its checks pass. That is the replay-gate shape worth copying, a fixed check with a pass or fail result that runs in CI and at deploy. For the vendor landscape behind the timeline, see the [voice and realtime agents](/resources/voice-realtime-agents) reference, and for the metric definitions see [evaluating voice agents](/resources/evaluating-voice-agents).",
  "cluster": {
    "id": "voice-agents-in-production",
    "title": "Voice agents in production",
    "description": "How to build and run a live voice AI agent — architecture choice, turn detection and barge-in, latency budget, tool calls in a voice loop, transport, cost, human handoff, guardrails, monitoring and launch — covering live caller conversations only, not offline dubbing/localization (ai-dubbing-localization-and-subtitling) and not the WER/MOS/VoiceBench scoring methodology owned by the evaluating-voice-agents resource.",
    "status": "complete",
    "pillar": {
      "slug": "voice-ai-agent-in-production",
      "title": "Voice AI Agent in Production: Architecture, Latency, Handoff and Launch",
      "description": "How to build and run a voice AI agent in production: cascaded vs speech-to-speech architecture, turn detection and barge-in, the latency budget, tool calls in a voice loop, transport, cost, human handoff and launch sequencing.",
      "kind": "pillar",
      "order": 0,
      "html": "https://changegamer.ai/articles/voice-ai-agent-in-production",
      "markdown": "https://changegamer.ai/articles/voice-ai-agent-in-production.md",
      "json": "https://changegamer.ai/api/articles/voice-ai-agent-in-production.json"
    },
    "articles": [
      {
        "slug": "voice-agent-latency-budget",
        "title": "Voice Agent Latency Budget: Where the 600 ms Goes and How to Hold It",
        "description": "How to split a 600 ms voice agent latency budget across speech-to-text, the language model, speech synthesis and tool calls, how to measure each stage, and which levers hold the budget.",
        "kind": "sub",
        "order": 1,
        "html": "https://changegamer.ai/articles/voice-agent-latency-budget",
        "markdown": "https://changegamer.ai/articles/voice-agent-latency-budget.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-latency-budget.json"
      },
      {
        "slug": "voice-turn-detection-and-barge-in-testing",
        "title": "How to Test Voice Agent Turn Detection and Barge-In",
        "description": "How to test voice agent turn detection and barge-in: build a labelled clip set, count barge-in accuracy and false-interruption rate, separate cut-off from talk-over failures, and split offline gates from online monitors.",
        "kind": "sub",
        "order": 2,
        "html": "https://changegamer.ai/articles/voice-turn-detection-and-barge-in-testing",
        "markdown": "https://changegamer.ai/articles/voice-turn-detection-and-barge-in-testing.md",
        "json": "https://changegamer.ai/api/articles/voice-turn-detection-and-barge-in-testing.json"
      },
      {
        "slug": "voice-agent-architecture-cascaded-vs-speech-to-speech",
        "title": "What to Log and Filter in a Voice Agent, by Architecture",
        "description": "What to log and filter in a voice agent depending on architecture: where a cascaded pipeline gives you text seams for logging, redaction and output filters, what a native speech-to-speech model leaves you to do from outside, and what a model swap forces you to re-test.",
        "kind": "sub",
        "order": 3,
        "html": "https://changegamer.ai/articles/voice-agent-architecture-cascaded-vs-speech-to-speech",
        "markdown": "https://changegamer.ai/articles/voice-agent-architecture-cascaded-vs-speech-to-speech.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-architecture-cascaded-vs-speech-to-speech.json"
      },
      {
        "slug": "tools-in-a-voice-agent-loop",
        "title": "Function Calling in a Voice Agent: What a Tool May Be in a Spoken Loop",
        "description": "Function calling in a voice agent: which vendors and frameworks support tools as of the corpus's 2026-07-09 verification, how to classify tools as lookup, action or handoff, what barge-in does to a side effect, and a checklist for admitting a tool.",
        "kind": "sub",
        "order": 4,
        "html": "https://changegamer.ai/articles/tools-in-a-voice-agent-loop",
        "markdown": "https://changegamer.ai/articles/tools-in-a-voice-agent-loop.md",
        "json": "https://changegamer.ai/api/articles/tools-in-a-voice-agent-loop.json"
      },
      {
        "slug": "voice-agent-transport-webrtc-vs-websocket-vs-sip",
        "title": "Voice Agent Transport: WebRTC vs WebSocket, and Where SIP Fits",
        "description": "WebRTC vs WebSocket for voice AI agents: which transport each vendor documents as of the corpus's 2026-07-09 verification, how cascaded stacks use WebSocket components, a decision tree by client type, and a per-transport test checklist.",
        "kind": "sub",
        "order": 5,
        "html": "https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip",
        "markdown": "https://changegamer.ai/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-transport-webrtc-vs-websocket-vs-sip.json"
      },
      {
        "slug": "voice-agent-human-handoff",
        "title": "Voice Agent Human Handoff: What Happens on the Call When the Agent Lets Go",
        "description": "Voice agent human handoff mechanics: the handoff as a tool that ends the agent's session, barge-in during the transfer announcement, what the caller hears on hold and on failure, a context payload schema, and a real-call test checklist.",
        "kind": "sub",
        "order": 6,
        "html": "https://changegamer.ai/articles/voice-agent-human-handoff",
        "markdown": "https://changegamer.ai/articles/voice-agent-human-handoff.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-human-handoff.json"
      },
      {
        "slug": "voice-agent-cost-per-minute",
        "title": "How to Compute Your Voice Agent Cost per Minute",
        "description": "How to compute a voice agent cost per minute from your own pilot: symbolic formulas for native speech-to-speech and cascaded STT, LLM and TTS, the variables that move the result, idle audio, retries, tool-call turns, and a sensitivity check.",
        "kind": "sub",
        "order": 7,
        "html": "https://changegamer.ai/articles/voice-agent-cost-per-minute",
        "markdown": "https://changegamer.ai/articles/voice-agent-cost-per-minute.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-cost-per-minute.json"
      },
      {
        "slug": "guardrails-for-spoken-output-in-voice-agents",
        "title": "Voice Agent Guardrails: Checking What the Agent Says Before the Caller Hears It",
        "description": "Voice agent guardrails for spoken output: sentence-level gating before TTS, fail-closed judges, spoken numbers a text PII filter misses, readback before state changes, transcription-driven injection, refusal phrasing for the ear, and an adversarial test list.",
        "kind": "sub",
        "order": 8,
        "html": "https://changegamer.ai/articles/guardrails-for-spoken-output-in-voice-agents",
        "markdown": "https://changegamer.ai/articles/guardrails-for-spoken-output-in-voice-agents.md",
        "json": "https://changegamer.ai/api/articles/guardrails-for-spoken-output-in-voice-agents.json"
      },
      {
        "slug": "voice-agent-online-monitoring",
        "title": "How to Monitor a Voice Agent in Production: Dashboard, Alerts and Runbook",
        "description": "How to monitor a voice agent in production: per-stage latency percentiles, transcription confidence, containment paired with a resolution signal, live false-interruption rate, a handoff trigger review, and call-audio retention, each with what to chart, alert on and do.",
        "kind": "sub",
        "order": 9,
        "html": "https://changegamer.ai/articles/voice-agent-online-monitoring",
        "markdown": "https://changegamer.ai/articles/voice-agent-online-monitoring.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-online-monitoring.json"
      },
      {
        "slug": "voice-agent-vendor-change-management",
        "title": "How to Handle Voice AI Vendor Model Changes Without Regressing Callers",
        "description": "How to handle voice AI vendor model changes: classify the change, record the model id on every trace, replay an offline set with hard calls on old and new, canary before cutover, keep a rollback, and run a deprecation-readiness routine.",
        "kind": "sub",
        "order": 10,
        "html": "https://changegamer.ai/articles/voice-agent-vendor-change-management",
        "markdown": "https://changegamer.ai/articles/voice-agent-vendor-change-management.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-vendor-change-management.json"
      },
      {
        "slug": "voice-agent-launch-checklist",
        "title": "Voice Agent Launch Checklist: The Go/No-Go Gates Before Real Callers",
        "description": "A voice agent launch checklist as yes/no gates: scope, offline replay, per-stage latency, barge-in, tools, transport, handoff, cost, guardrails, monitoring and rollback, each with a pass signal and the article that owns the method.",
        "kind": "sub",
        "order": 11,
        "html": "https://changegamer.ai/articles/voice-agent-launch-checklist",
        "markdown": "https://changegamer.ai/articles/voice-agent-launch-checklist.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-launch-checklist.json"
      },
      {
        "slug": "voice-agent-multilingual-callers",
        "title": "How Does a Voice Agent Handle Callers Who Speak Another Language?",
        "description": "How a live voice agent handles callers who speak another language: detecting the language, choosing speech components per language, slicing evaluation by language and handing off when the language is unsupported, with the thin corpus evidence stated plainly.",
        "kind": "sub",
        "order": 12,
        "html": "https://changegamer.ai/articles/voice-agent-multilingual-callers",
        "markdown": "https://changegamer.ai/articles/voice-agent-multilingual-callers.md",
        "json": "https://changegamer.ai/api/articles/voice-agent-multilingual-callers.json"
      }
    ]
  },
  "navigation": {
    "pillar": {
      "slug": "voice-ai-agent-in-production",
      "title": "Voice AI Agent in Production: Architecture, Latency, Handoff and Launch",
      "description": "How to build and run a voice AI agent in production: cascaded vs speech-to-speech architecture, turn detection and barge-in, the latency budget, tool calls in a voice loop, transport, cost, human handoff and launch sequencing.",
      "kind": "pillar",
      "order": 0,
      "html": "https://changegamer.ai/articles/voice-ai-agent-in-production",
      "markdown": "https://changegamer.ai/articles/voice-ai-agent-in-production.md",
      "json": "https://changegamer.ai/api/articles/voice-ai-agent-in-production.json"
    },
    "previous": {
      "slug": "voice-agent-online-monitoring",
      "title": "How to Monitor a Voice Agent in Production: Dashboard, Alerts and Runbook",
      "description": "How to monitor a voice agent in production: per-stage latency percentiles, transcription confidence, containment paired with a resolution signal, live false-interruption rate, a handoff trigger review, and call-audio retention, each with what to chart, alert on and do.",
      "kind": "sub",
      "order": 9,
      "html": "https://changegamer.ai/articles/voice-agent-online-monitoring",
      "markdown": "https://changegamer.ai/articles/voice-agent-online-monitoring.md",
      "json": "https://changegamer.ai/api/articles/voice-agent-online-monitoring.json"
    },
    "next": {
      "slug": "voice-agent-launch-checklist",
      "title": "Voice Agent Launch Checklist: The Go/No-Go Gates Before Real Callers",
      "description": "A voice agent launch checklist as yes/no gates: scope, offline replay, per-stage latency, barge-in, tools, transport, handoff, cost, guardrails, monitoring and rollback, each with a pass signal and the article that owns the method.",
      "kind": "sub",
      "order": 11,
      "html": "https://changegamer.ai/articles/voice-agent-launch-checklist",
      "markdown": "https://changegamer.ai/articles/voice-agent-launch-checklist.md",
      "json": "https://changegamer.ai/api/articles/voice-agent-launch-checklist.json"
    }
  },
  "resources": [
    {
      "slug": "voice-realtime-agents",
      "html": "https://changegamer.ai/resources/voice-realtime-agents",
      "markdown": "https://changegamer.ai/resources/voice-realtime-agents.md",
      "json": "https://changegamer.ai/api/resources/voice-realtime-agents.json"
    },
    {
      "slug": "evaluating-voice-agents",
      "html": "https://changegamer.ai/resources/evaluating-voice-agents",
      "markdown": "https://changegamer.ai/resources/evaluating-voice-agents.md",
      "json": "https://changegamer.ai/api/resources/evaluating-voice-agents.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"
    }
  ]
}