
McDonald's Dumps IBM Voice AI from Drive-Thrus. The Robot Lane Lives On.
Nina Falco · draft · 5 min read
Teams burn weeks tweaking system prompts while their agents choke on conflicting documents. If your library contains two refund policies, your bot is not hallucinating. It is flipping a coin.

By Nina Falco, Front-desk beat reporter · Reported off AI Weekly
Sold answering services to dentists. Now she reports on them.

Around the five-week mark of deploying a conversational speech stack, the engineering playbook hits a brick wall. The initial deployment went live with a standard system prompt, basic tool calls, and high expectations. Then the edge cases started trickling into the logs. The bot promised an appointment on a day the clinic was closed, quoted an expired promotional rate, or offered a full cash refund on a non-refundable digital purchase. The instinctive reaction from the product team was predictable: open the prompt editor and write more rules.
The system prompt swelled from four hundred words to twelve hundred. It gained numbered guardrails, negative constraints instructing the model on what never to mention, and whole paragraphs typed in capital letters to force obedience. Quality jumped for two days, flatlined, and then degraded across previously stable caller paths. Every new sentence added to patch a weird customer exchange broke three mundane customer exchanges that had been running smoothly since launch.
The engineering team diagnosed this as stochastic drift or prompt fatigue. They were looking at the wrong end of the wire. The prompt was not failing to steer the engine. The engine was choking on the raw material being shoved into its context window by the retrieval pipeline.
A routine audit of what the vector database actually passes to the audio generation layer reveals an archaeological dig of corporate neglect. A search for cancellation terms retrieves both the 2022 policy allowing thirty-day grace periods and the 2024 policy cutting that window down to seventy-two hours. Both files carry high similarity scores. Both sit active in the vector store. The model does not know your legal department updated the terms eighteen months ago because nobody deleted the old PDF from the shared bucket.
Alongside the duplicate policies sits an abandoned pricing document from a spring discount campaign that concluded six months earlier. Next to that is an exported spreadsheet where the layout engine stripped the column headers, leaving twenty rows of naked integers that the model has to interpret on the fly while maintaining conversational latency under eight hundred milliseconds. When an incoming caller asks what a Saturday service slot costs, the agent searches, retrieves two conflicting records, and is forced to pick one at random.
``` Retrieved Context A: Saturday service tier standard ($120) Retrieved Context B: Weekend operations suspended as of Q1 Generated Output: "We can book you this Saturday for $120." Reality: Shop doors are locked. ```
When the agent quotes the wrong price on Monday and denies the service exists on Wednesday, the internal team flags the incident as hallucination. It is not hallucination. The model read two official corporate files, found equal authority in both, and took an unguided bet during token generation.
Text-based customer service chatbots masked this structural decay for over a decade. In a visual messaging window, the human interface absorbs enormous amounts of data friction. A customer reads a wall of text, skips past the irrelevant clauses, spots a broken link, and simply asks a clarifying follow-up question. The interaction happens asynchronously, giving the user time to parse ambiguities and correct the software through conversational trial and error.
Voice strips away that defensive buffer entirely. Speech is linear, immediate, and unforgiving. When a synthetic voice speaks a wrong calendar date or an outdated deductible amount, that information hangs in the air as an undisputed commitment. The caller does not get a visual scrollback to cross-reference previous statements, and they rarely ask for a paragraph breakdown. They take the spoken sentence as official word, hang up the phone, and show up at an empty office.
The technical design of retrieval-augmented generation systems actively exacerbates this problem when left unattended. Vector similarity metrics evaluate semantic closeness, not chronological truth or corporate authority. A well-written, highly detailed policy explainer from four years ago will routinely score a higher cosine similarity against a caller query than a terse, two-sentence bulletin published by management last Friday.
A voice agent operates as an acoustic mirror held up to your internal records. Most executives despise the reflection because it exposes years of deferred housekeeping.
Because language models are fundamentally pattern-completion engines, they will attempt to reconcile contradictory retrieval inputs into a single coherent narrative unless explicitly blocked. When fed two divergent operational guidelines, the model attempts to synthesize them, inventing hybrid rules that satisfy neither policy. Lengthening the system prompt to forbid this synthesis simply increases context load, degrades instruction-following performance, and spikes the total time-to-first-token beyond acceptable acoustic thresholds.
Every token spent in the prompt explaining how to resolve internal contradictions is a token stolen from latency budgets and conversational fidelity. The moment you ask a prompt to serve as an air-traffic controller for dirty data, your voice agent loses the fluid cadence necessary to pass as a competent telephone representative.
The software industry has developed a chorus of excuses to avoid confronting the data layer.
Engineering leadership routinely attributes erratic customer calls to base model updates pushed by foundation model providers. When an agent starts botching schedule confirmations, the immediate internal hypothesis is that the vendor modified the underlying weights or changed the temperature profile behind the API. The conversation shifts toward moving to an open-weights model or purchasing dedicated capacity, spending capital to avoid cleaning a directory of outdated files.
Prompt engineers treat every behavioral failure as a syntax puzzle. When an agent misquotes warranty coverage, the proposed fix is an elaborate chain-of-thought template, an expanded system role description, or an aggressive set of few-shot examples hardcoded into the setup message. This reaction treats the agent like an actor who forgot their lines, rather than an employee being handed contradictory briefing binders five seconds before walking onto the stage.
Quality assurance teams file these incidents under the broad label of model inconsistency. The standard bug ticket notes that the agent provides different answers to identical inputs across testing runs. The suggested remediation is usually to lower temperature to zero, which kills the natural linguistic variation essential for convincing real-time audio interaction while failing to solve the underlying collision between two live database records.
Operations managers point the finger back at the technical implementation, asserting that artificial intelligence was promised to handle messy human business logic without requiring bespoke structural adjustments. They treat the knowledge base as a static digital landfill where marketing decks, internal memos, and outdated operational runbooks can be dumped without taxonomy, expecting the neural network to magically intuit current business reality.
Stopping the degradation cycle requires abandoning prompt iteration entirely until the information architecture is rebuilt to support real-time audio retrieval.
The first step is throwing out hypothetical evaluation benchmarks and replacing them with an operational scorecard built directly from real customer calls. Teams must pull fifty actual recordings, focusing exclusively on the calls that ended in customer frustration, escalations, or inaccurate advice. For every audio file in that set, the product owner must write out the single correct factual outcome: the exact dollar amount, the true schedule availability, or the precise transfer destination required by the situation.
This fifty-call test harness serves as an unyielding regression barrier. Before any engineer changes a system prompt, adjusts a vector chunking parameter, or swaps an embedding model, the entire update must be tested against this audio baseline. If an adjustment fixes two edge cases but causes three previously accurate answers to fail, the change is abandoned immediately. Engineering stops relying on vibes and Slack screenshots.
``` Test Corpus: 50 Verified Failure Transcripts Requirement: Deterministic validation against ground truth Condition: Zero regressions allowed on core operational facts ```
The second step requires removing organizational anonymity from the knowledge base. Shared drives, corporate wikis, and collective support inboxes are where data goes to decay. A knowledge repository that feeds a production voice agent demands a single named human owner with unilateral authority over the corpus.
That individual's daily responsibilities must follow non-negotiable operational rules:
Unmanaged company documentation does not remain neutral over time. It accumulates conflicting mandates, abandoned experiments, and contradictory operational rules that slowly poison the vector index. When your voice agent speaks bad information into the ear of a paying customer, stop editing the prompt. Go clean your room.
The enterprise voice AI market is learning that model scale cannot compensate for rotten underlying records. Companies that treat conversational audio as a prompt engineering exercise will keep deploying expensive agents that quote obsolete prices and miss appointments. The teams winning production telephone deployments are those treating internal knowledge bases like transactional databases, with strict governance, continuous pruning, and zero tolerance for duplicate scripture.
Reported off AI Weekly. Original reporting and analysis by Nina Falco for Vox Roboti.
Prompts only guide reasoning. When the vector store feeds two contradictory corporate documents into context, the model is forced to gamble between them regardless of prompt length.
Text chat users skim and ask follow-ups. Spoken answers happen once in real time, turning outdated information or wrong times into immediate service failures.
It is usually document collisions in the knowledge base, such as old pricing sheets sitting alongside current policies with similar vector similarity scores.
Pull fifty real recorded calls that failed. Define the exact factual outcome for each one, and test every prospective system update against that scoreboard.
Zero temperature stops randomness, but if the top-retrieved document contains obsolete information, the model deterministically outputs the wrong answer every time.
A single named person who prunes outdated files, translates raw tabular data into readable text, and audits the top caller queries weekly.

Nina Falco · draft · 5 min read

Devon Achebe · 14h ago · 5 min read
