{"asOf":"2026-10-03","doesNotChangeDepotPicks":true,"doesNotChangePriceSort":true,"doesNotChangeFreeIndex":true,"note":"Classification and failure modes are mechanisms. Case studies are included only when the source URL was fetched on 2026-10-03. A capability ceiling is not a company incident. Vendor figures are labeled as that vendor's report.","id":"voice","name":"Voice agent","definition":"Hears or speaks on a call or a realtime channel, and confirms account-changing actions before they run.","needs":{"jtbdIds":["voice-agents","voice-agent-platform","speech-to-text","speech-synthesis","realtime-tts","production-stt","agent-pstn-telephony","multilingual-stt"],"freeKinds":["free_speech"],"capabilityTags":["voice","speech","realtime"],"plain":["A transcript the caller can correct","Confirmation before an account change"]},"failureModeIds":["silent-truncation","identity-confusion","over-refusal","non-determinism","partial-tool-success","confirmation-skip","runaway-spend"],"exampleTasks":["Transcribe a caller and repeat the requested change before acting","Hand off when the transcript is cut off"],"failures":[{"id":"silent-truncation","name":"Silent truncation","whatGoesWrong":"Tool output or a document is cut off without a marker, and the agent answers as if it saw the whole thing.","howToDetect":"Tools must return whether the payload was truncated and how long the original was. Fail the task if the answer depends on the missing span.","classIds":["rag","coding","data-etl","voice","local-offline","research"],"sourceUrls":["https://arxiv.org/abs/2310.08560"]},{"id":"identity-confusion","name":"Identity confusion","whatGoesWrong":"The agent acts for the wrong user or tenant, or a principal treats the agent as a separate party that the operator does not have to answer for.","howToDetect":"Bind every tool call to a user or tenant id. Refuse the call if that id changed mid-task. For a public bot, the operator owns the words the bot shows.","classIds":["support","personal-assistant","sales-outreach","orchestrator","voice"],"sourceUrls":["https://decisions.civilresolutionbc.ca/crt/crtd/en/525448/1/document.do"]},{"id":"over-refusal","name":"Over-refusal","whatGoesWrong":"The agent declines a task the written policy allows, or declines so often that the job never finishes.","howToDetect":"Log refusals separately from successes. Review a sample against the written policy. Do not treat a refusal as a pass, and do not weaken a safety check to raise the pass rate.","classIds":["support","security-review","voice","browser"],"sourceUrls":["https://openai.com/index/introducing-operator/"]},{"id":"non-determinism","name":"Non-determinism","whatGoesWrong":"The same task produces a different tool sequence or a different end state on another trial, so one success does not mean the agent is reliable.","howToDetect":"Run the task more than once and compare the end state, not a single transcript. Record the trial count next to any success rate you cite.","classIds":["support","coding","browser","scheduled-ops","eval-judge","voice"],"sourceUrls":["https://arxiv.org/abs/2406.12045"]},{"id":"partial-tool-success","name":"Partial tool success","whatGoesWrong":"A tool completes only part of a batch and the agent treats the whole batch as done.","howToDetect":"Require a per-item status and a failure count. Success for the task requires the failed count to be zero or explicitly handed to a retry queue.","classIds":["coding","data-etl","browser","computer-use","voice","orchestrator","scheduled-ops"],"sourceUrls":[]},{"id":"confirmation-skip","name":"Confirmation skip","whatGoesWrong":"A consequential action, such as sending, paying, deleting, or submitting, runs without the confirmation the product policy requires.","howToDetect":"Gate those tool names on an approval id recorded before the call. A missing approval is a failure even if the downstream tool returns success.","classIds":["browser","sales-outreach","personal-assistant","support","computer-use","voice"],"sourceUrls":["https://openai.com/index/introducing-operator/"]},{"id":"runaway-spend","name":"Runaway spend","whatGoesWrong":"Retries, fan-out, or a loop keep calling paid models or tools after the task should have stopped.","howToDetect":"Set a budget and a tool-call cap per task. Alert when spend jumps. Stop the run at the cap instead of summarizing a partial trace as success.","classIds":["coding","research","orchestrator","scheduled-ops","sales-outreach","voice"],"sourceUrls":["https://www.anthropic.com/engineering/building-effective-agents"]}],"caseStudies":[{"id":"tau-bench-2024","title":"τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains","year":2024,"studyKind":"capability_ceiling","classIds":["support","voice"],"failureModeIds":["non-determinism","policy-conflict","weak-verification"],"lesson":"The abstract says τ-bench checks whether an agent follows domain rules while talking to a simulated user, and grades the database at the end. It reports that even a function-calling agent such as gpt-4o succeeded on under 50% of tasks and was inconsistent, with pass^8 under 25% in the retail domain. One green trial is not reliability.","sourceUrl":"https://arxiv.org/abs/2406.12045","asOf":"2026-10-03","notes":"Fetched the arXiv abstract (submitted 17 Jun 2024). Capability ceiling for policy-following tool use, not a named company's outage."}]}