5 Voice Agent Failure Modes You'll Hit in Week One — Venky B, Plivo

Venky B· Plivo26:46

Read the talk

Why Voice Agents Break in Production

Venky B of Plivo explains how response delays, unreliable transcripts, unstructured data collection and speech synthesis undermine voice agents—and where a more deliberate pipeline helps.

From a talk by Venky B

At a glance

Ideas worth remembering

  • Optimize the caller's time to first audio while measuring model time to first token separately. Fast throughput, acceptable median latency and reliable conversational response time are different properties.

  • Use call state to narrow what each component must interpret: boost the vocabulary expected now, define the field being collected, and provide context specific to the agent's current task.

  • Treat data collection as a validated interaction. Types expose invalid values; confirmation, repetition and letter-by-letter spelling provide recovery paths; field-level evaluations make failures easier to locate.

  • Own normalization on both sides of the language model. Consistent transcript representations protect downstream interpretation, while explicit speech formatting and pronunciation controls reduce dependence on a particular synthesis engine.

  • The reported latency and accuracy gains support concrete engineering choices, but lack enough evaluation detail to serve as universal guarantees. The closing also supports a pipeline approach to conversational control without explaining its implementation.

From a convincing demo to a working phone call

Selected presentation frame from 5 Voice Agent Failure Modes You'll Hit in Week One — Venky B, Plivo at 193 seconds
From a convincing demo to a working phone call

The talk opens by asking who has built voice agents and who has deployed them. Its central problem is the gap between those two experiences: an agent can sound convincing in development, then fail as soon as real callers encounter it. Venky introduces the presentation as a tour of recurring production failures rather than a recipe for assembling a demo.

His context is a business that began with voice and SMS APIs in 2011 and now offers an AI agent stack. He reports more than a billion voice calls each month across the globe, providing exposure to customer deployment patterns. He also describes a 90-member team and 50 million in accumulated cash from profitability rather than external venture investment. These figures establish the operating context of his observations; the call volume is not presented as a count of AI agent calls.

The offering has three parts: a programmable speech pipeline, a no-code visual agent studio, and the underlying telephony infrastructure. Venky explicitly distinguishes the programmable pipeline from a native speech-to-speech product. SIP trunking and audio streaming sit underneath the agent platform, drawing on the company's existing carrier and telephony work.

0:160:20
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:01 · section reference included

The pipeline that gets the demo working

The familiar starting point is an orchestration framework connecting speech-to-text, a language model and text-to-speech, with turn detection coordinating the exchange. Speech becomes text, the model produces a response, and synthesis turns that response back into audio. Venky says these frameworks do a good job of assembling the layers, which makes it easy to mistake a working proof of concept for a production-ready agent.

Teams may measure latency at each layer and decide the result meets their needs. The production failures appear afterward, when the assembled system encounters conditions that the initial demonstration did not expose. The rest of the talk examines those failures at the boundaries between components as well as inside the models themselves.

3:473:54
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

3:32 · section reference included

Latency limits how much thinking the conversation can afford

Selected presentation frame from 5 Voice Agent Failure Modes You'll Hit in Week One — Venky B, Plivo at 494 seconds
Latency limits how much thinking the conversation can afford

The first failure mode is latency, measured as time to first audio: the interval between the user finishing speech and the agent beginning to speak. This is the delay the caller experiences, rather than the time required to generate the complete answer. Venky reports that teams commonly aim below 550 milliseconds, while many deployments land between 750 and 1,200 milliseconds. Above roughly 1.2 seconds, he says, users begin hanging up. These are reported production observations, without a benchmark method or a measured abandonment curve supplied in the talk.

Model selection therefore balances cost, intelligence and latency. Venky argues that much of the recent improvement in model intelligence has depended on additional thinking, but the model handling live conversation generally has to disable that thinking to respond quickly enough. Better instruction following and tool calling still help; the difficulty concerns intelligence that requires extra time before the model can answer.

He focuses on the language model because it is the largest latency contributor in the pipeline he describes. For frontier models, he reports median time to first token of roughly 450–500 milliseconds on a good day, with the 90th and 95th percentiles potentially exceeding 1.2–1.3 seconds. A median that looks acceptable can therefore conceal slow turns that damage the conversation, especially once the other pipeline stages add their delays.

Fast token generation is another option, but Venky separates throughput from predictable time to first token. In his account, obtaining dependable latency from specialized inference infrastructure requires expensive dedicated capacity. He describes a 12-month advance booking horizon, which also creates a model-selection risk: a team commits substantial resources without knowing whether the chosen model will remain suitable a year later. That availability claim belongs to his experience in the talk, rather than establishing a general purchasing rule.

4:575:03
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

4:57 · section reference included

Choose models for words, instructions and tool calls

The approach that has worked for his team is to host open source models on their own GPUs. This adds responsibility for model serving, but gives them an option for consistently targeting less than 300 milliseconds at the language-model layer while balancing cost and capability. The target should be distinguished from the caller's complete time to first audio, which includes the rest of the pipeline.

For multilingual agents, tokens per second are an incomplete measure of useful speed. Venky introduces token fertility as the number of tokens required to generate one word in a language. A model that needs fewer tokens per word can reach usable words faster, all else equal. He reports a 2.5–3× advantage in this comparison for one of the models his team evaluated. The particular model versions and evaluation details are not established clearly enough to make that result a reproducible model recommendation, but the selection criterion is concrete: measure tokenization efficiency in the languages callers actually use.

For general use, he says mixture-of-experts models in the three- or four-billion range often work well without customization. He describes them as getting roughly 90% of the way toward the desired behavior out of the box, rather than reporting a defined 90% accuracy score. Their drawback is fine-tuning: he warns that it is difficult and can break the model. For domain-specific fine-tuning, such as healthcare, his team's recommendation at the time of the talk is to begin with an eight- or twelve-billion model. He explicitly allows that this size recommendation could change as smaller models improve.

The useful capabilities are fast generation, good instruction following and a high tool-calling success rate. His team runs both industry-specific fine-tuned models and general mixture-of-experts models. He also describes a different architecture used by some builders: a small conversational model, perhaps three billion, handles talking while a larger model handles tool calls. This assigns the fast conversational work and the more demanding tool-selection work to different models, although the talk does not specify how they coordinate or quantify the added orchestration cost.

9:339:37
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

9:33 · section reference included

Assume the transcript will contain errors

Selected presentation frame from 5 Voice Agent Failure Modes You'll Hit in Week One — Venky B, Plivo at 956 seconds
Assume the transcript will contain errors

The second failure mode begins with a design assumption: transcription is brittle even when the engine is good. Venky reports word error rates of 4–6% on known evaluation sets, rising into double digits on real calls with noise, accents and domain vocabulary. The recurring problems include proper nouns, missing phone-number digits, incorrect substitutions and omitted parts of long addresses. Aggregate transcription quality can therefore look strong while the particular value the agent needs is wrong.

Mixed-language speech introduces a representation problem as well as a recognition problem. Venky describes English words written in the script used for Hindi, and the reverse case of Hindi represented in Latin characters. The language model may follow the transcript's script in its answer, after which the speech synthesizer mishandles the output. The error propagates across the pipeline because each component receives a representation it may interpret differently. His proposed boundary is a normalization layer that gives the agent consistent input independently of the transcription engine.

13:3513:39
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

13:35 · section reference included

Use the current call state to improve recognition

Selected presentation frame from 5 Voice Agent Failure Modes You'll Hit in Week One — Venky B, Plivo at 1062 seconds
Use the current call state to improve recognition

For proper nouns, Venky recommends dynamic keyword boosting. Instead of supplying the transcription engine with every relevant keyword for the whole call, change the boosted words according to the answer expected at the current stage. Different call states receive different vocabulary hints. This narrows the recognition context; he warns that a large, persistent list can instead encourage hallucinated words.

He then recommends LLM post-processing because the model can have domain context that the transcription engine lacks. His phone-number example contains an E where he says the intended value is three, illustrating how knowledge of the expected value can help interpret an otherwise nonsensical transcript. The example supports contextual correction, but it does not establish that every stray letter has a unique recoverable digit or that a model can always infer the caller's intent.

For inconsistent scripts, he proposes transliteration using a language model or a neural transliteration engine. The goal is to deliver cleaned, consistently represented transcripts to the conversational model regardless of which speech-to-text provider produced them. This makes the representation boundary an application responsibility rather than an accidental consequence of a vendor's output format.

16:0416:07
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

16:04 · section reference included

Collect typed fields and evaluate them separately

Selected presentation frame from 5 Voice Agent Failure Modes You'll Hit in Week One — Venky B, Plivo at 1261 seconds
Collect typed fields and evaluate them separately

The third failure mode is data collection, which Venky estimates causes serious problems for 50–60% of agents. He treats it as a voice UX problem informed by data models and form fields: decide the shape of the answer before asking for it. He reports collection accuracy improving from roughly 30% to 95% after adopting this approach. The supplied discussion does not define the dataset or scoring procedure, so the figures describe his team's experience rather than a guaranteed improvement.

A phone-number field supplies constraints that an open-ended transcript does not: expected digit count, allowed values and validation rules. If an E appears inside the number, the system can identify an invalid value. It can propose three and confirm that correction with the caller, or reject the value and ask for repetition. The mechanism is a collection loop with explicit acceptance conditions; the model's plausible guess does not by itself complete the field.

Names need a different collection strategy. Venky uses a difficult-to-pronounce name to argue that repeating the same spoken input may not solve the recognition problem, even for a human listener. Treating the name as a field allows rules and confirmation steps that collect its spelling letter by letter. The field type determines how the agent asks for clarification rather than leaving every failure to a generic request to repeat.

Relative dates expose another kind of ambiguity. Next week Wednesday at eight requires both a calendar date and a decision between 8:00 a.m. and 8:00 p.m. Knowing that the destination is a datetime field constrains the task, and providing the current date supplies an anchor for resolving the relative expression. Venky recommends combining the LLM with tool calls that perform much of the field-specific work. A calendar calculation can resolve a date relative to an anchor, but the example's missing a.m./p.m. information remains an ambiguity rather than something the field type alone answers.

Evaluation should follow the same decomposition. Test each field's collection behavior as a unit, so a broken field can be identified directly instead of emerging somewhere inside hundreds of end-to-end agent tests. Venky connects reliability and repeatability to these field-level checks and to limiting context to the agent's current state. He reports reaching 95–97% accuracy without fine-tuning, attributing the gain to structure and state-specific context rather than repeated small prompt edits. Passing field tests supports the collection behavior they cover; it does not establish that every part of a complete conversation works.

18:0018:01
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

18:00 · section reference included

Prepare model output for speech

Selected presentation frame from 5 Voice Agent Failure Modes You'll Hit in Week One — Venky B, Plivo at 1450 seconds
Prepare model output for speech

The fourth failure mode comes from sending raw language-model output directly into text-to-speech. Venky recommends inserting a normalization layer even when the synthesizer already handles many formatting cases. The basic step is to remove emojis and Markdown before synthesis, so visual formatting does not become unwanted spoken content. He notes that orchestration frameworks may provide this through configuration, while a custom pipeline must implement or enable it explicitly.

Pronunciation dictionaries provide explicit treatment of proper nouns, brands and acronyms. Speech speed is another control: Venky recommends slowing down when reading an important entity, such as an email address, phone number or a name spelled letter by letter. These controls address distinct problems. A dictionary tells the engine how a term should sound, while slower delivery helps the caller distinguish the pieces of a value.

Emails, currency and dates also need an explicit normalization policy. Venky argues for owning that policy in the application instead of relying entirely on the synthesizer's native behavior. This gives the team more control when changing providers or using another engine during an outage: the application still prepares the intended spoken representation before handing it to synthesis. It reduces dependence on provider-specific interpretation, without claiming that different engines will produce identical audio.

His practical pronunciation check is whether an agent can say his surname and his company's name correctly. Failure on those terms signals a problem with words that need deliberate pronunciation handling. For a customer-facing agent product, he recommends exposing pronunciation controls to customers, allowing them to define the names and vocabulary that matter in their own conversations.

22:1922:21
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

22:05 · section reference included

Turn detection and interruptions remain separate concerns

Selected presentation frame from 5 Voice Agent Failure Modes You'll Hit in Week One — Venky B, Plivo at 1552 seconds
Turn detection and interruptions remain separate concerns

The ending identifies turn detection as a substantial topic in its own right, followed by barge-in and backchanneling. Venky is over time and gives these concerns only brief spoken coverage. He does not explain the detection rules, interruption thresholds or treatment of backchannels, so the recording does not establish an implementation recipe for this final part of conversation control.

He does make a consequential architectural claim: a native speech-to-speech model is not required to support these conversational behaviors. His team has seen them handled through a pipeline approach, despite the attention given to speech-to-speech models. That establishes his position on the choice of architecture, but supplies neither comparative results nor the mechanics of the pipeline solution. The talk closes without an onstage Q&A, offering further discussion offline.

25:2625:28
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

25:26 · section reference included

Read the complete timestamped transcript
  1. 0:01

    [music]

  2. 0:13

    Let's just do a couple of quick

  3. 0:14

    questions and then we'll jump right in.

  4. 0:16

    Uh, how many of us in the room here have

  5. 0:20

    built voice AI agents?

  6. 0:24

    Okay, that's a that's a pretty good

  7. 0:27

    audience here. And how many of you guys

  8. 0:28

    have built AI agents that have been

  9. 0:30

    deployed in production?

  10. 0:34

    Not bad. Okay, cool. So, uh we'll talk

  11. 0:38

    about what typically happens, right?

  12. 0:40

    Like everyone's talking about wise AI

  13. 0:42

    agents. Uh the

  14. 0:47

    you know, one pill solution to pretty

  15. 0:48

    much everything in the world today uh is

  16. 0:50

    is wise agents. So, everyone's building

  17. 0:52

    one and trying to deploy that. They

  18. 0:54

    sound great when you're sort of building

  19. 0:56

    that in your dev sort of landscape and

  20. 0:59

    then the moment you take this to from a

  21. 1:02

    proof of concept to production things

  22. 1:04

    start failing. Uh so we'll walk through

  23. 1:06

    these five different angles of like how

  24. 1:09

    uh or what we have seen uh at PO with

  25. 1:13

    VIA agents but just before that a quick

  26. 1:16

    uh intro from from my side uh I am Wenke

  27. 1:19

    the founder and CEO uh she used the

  28. 1:23

    title agent engineering manager u I'm

  29. 1:25

    calling myself chief agent officer uh

  30. 1:28

    from a from a title standpoint u okay so

  31. 1:32

    what is what is uh you know why why are

  32. 1:34

    even qualified for this this discussion

  33. 1:37

    and and like uh what what are we seeing

  34. 1:39

    that a lot of companies don't get to

  35. 1:41

    see? I I'll talk a bit about our journey

  36. 1:43

    in terms of like how we've uh come along

  37. 1:46

    so far and then jump right in. Uh you

  38. 1:49

    know we were we've been around for about

  39. 1:51

    14 years. Our journey has been a

  40. 1:53

    developer API platform and then now an

  41. 1:56

    uh you know an AI agent business. We

  42. 1:58

    started with voice and SMS APIs back in

  43. 2:00

    the day uh 2011 and then uh you know now

  44. 2:04

    we are primarily focused on our AI agent

  45. 2:07

    offering uh the the full stack on our

  46. 2:10

    platform. We we see over a billion voice

  47. 2:14

    calls each month across the globe. Uh

  48. 2:16

    and which is where we've seen a lot of

  49. 2:18

    these uh you know patterns emerge in

  50. 2:20

    terms of like how when we work with our

  51. 2:21

    customers what happens on their voice

  52. 2:24

    agents in in production. Uh we're a uh

  53. 2:27

    90 member team and uh we've we have uh

  54. 2:31

    50 million funding in the bank. Fun

  55. 2:33

    fact, this is not from external VC

  56. 2:36

    investors. This is all from being a

  57. 2:38

    profitable company having put that cash

  58. 2:39

    in the bank over over these years. Uh

  59. 2:44

    some customers we we power across the

  60. 2:46

    globe. Uh you know, we've just left some

  61. 2:48

    some logos in there. But primarily from

  62. 2:50

    an offering standpoint, u I would sort

  63. 2:53

    of cohort this into three different

  64. 2:54

    buckets. One is a programmable AI agent

  65. 2:58

    offering. We call it uh I mean it's a

  66. 3:00

    speech pipeline, not a true

  67. 3:01

    speech-to-pech product yet, but that's a

  68. 3:04

    that's a programmable offering. We also

  69. 3:05

    have an AI agent studio. It's a no code

  70. 3:08

    visual uh builder. And then we like I

  71. 3:11

    said, we started with voice APIs. So we

  72. 3:14

    obviously have built this out over the

  73. 3:16

    last 14 years, the SIP trunking and the

  74. 3:18

    audio streaming layers. So we don't rely

  75. 3:20

    on other folks for the telefony or the

  76. 3:22

    carrier layer. Like that's the

  77. 3:24

    breadandbut business we've built over

  78. 3:25

    all these years and and that's on top of

  79. 3:28

    which our AI uh agent platform sits.

  80. 3:32

    Okay, with that uh let's get into this,

  81. 3:36

    right, which I'm I'm sure since you guys

  82. 3:38

    have all built AI agents, you've all

  83. 3:40

    seen this or you know built this in in

  84. 3:43

    one manner or another and we'll spend

  85. 3:44

    more time on this in terms of like how

  86. 3:47

    uh the entire pipeline looks, right? Uh

  87. 3:50

    what we see with customers is and and

  88. 3:52

    I'm sure you guys can all relate to this

  89. 3:54

    is you know anyone thinking about AI

  90. 3:56

    agents what they do is they pick a bunch

  91. 3:58

    of these orchestration frameworks and

  92. 4:01

    they do a pretty good job live kit or a

  93. 4:02

    pipecat you know build their AI oen on

  94. 4:05

    top of that uh they think they can just

  95. 4:07

    sort of orchestrate these different four

  96. 4:09

    layers speechtoext lm uh and and TTS

  97. 4:13

    with turn detection in between and we're

  98. 4:16

    off to the races like my AI engine agent

  99. 4:17

    works in a in a P and it's good to work

  100. 4:20

    in production. Uh typically that's what

  101. 4:22

    happens. They sort of measure their

  102. 4:24

    latencies and you can see some

  103. 4:26

    indicative latencies on on this slide at

  104. 4:28

    at each layer and they're like yeah this

  105. 4:30

    this uh seems good for me for what I

  106. 4:33

    need. So let let's position production

  107. 4:36

    and then the the production w uh sort of

  108. 4:39

    start to kick in and and you see all

  109. 4:41

    sort of failure modes which we are going

  110. 4:42

    to spend you know most of the time on on

  111. 4:45

    in this talk at least. Uh I've kept some

  112. 4:48

    time at the end for Q&A if you guys want

  113. 4:50

    to have uh you know questions but we'll

  114. 4:52

    jump right in from from this to uh you

  115. 4:55

    know different failure modes we see.

  116. 4:57

    Let's start with

  117. 5:00

    you know the first one which everyone

  118. 5:01

    talks about like this is the most spoken

  119. 5:03

    about failure mode which is latency. U I

  120. 5:06

    think we have a few AI agent talks today

  121. 5:09

    or AI agent talks today. Um I'm pretty

  122. 5:11

    sure like everyone everyone's going to

  123. 5:12

    touch upon this specific failure mode

  124. 5:15

    which is why I'm bringing this right up

  125. 5:17

    uh in in terms of uh you know some like

  126. 5:21

    how this entire experience is for uh

  127. 5:24

    users right uh typically most folks

  128. 5:27

    measure this by time to first audio so

  129. 5:30

    the time when you user stop speaking to

  130. 5:34

    your agent starts speaking right and I

  131. 5:37

    think you've you've probably seen this

  132. 5:38

    if you guys have built voice agents on,

  133. 5:40

    you know, what uh good or natural feels

  134. 5:43

    like, what uh sort of annoying feels

  135. 5:47

    like or noticeable feels like, and then

  136. 5:48

    what annoying feels like, which is, you

  137. 5:51

    know, different tiered steps. Uh we

  138. 5:53

    notice, you know, most people want to be

  139. 5:57

    under 550 cuz that's what's advertised

  140. 6:00

    by, you know, platforms or uh you know,

  141. 6:03

    solutions or or or or layers. But I

  142. 6:06

    think most end up between 750 to 1.2. uh

  143. 6:08

    that's where most of the folks end up

  144. 6:10

    at. Uh the really bad performing ones

  145. 6:12

    end up you know more than 1.2 and then

  146. 6:15

    you start to see users uh hang up. Uh

  147. 6:18

    now I I'll share with you like what

  148. 6:20

    we've seen practically in in uh

  149. 6:23

    production with uh customers using this

  150. 6:26

    with at at different layers and then you

  151. 6:29

    know solutions to uh some of these. The

  152. 6:32

    way we want to think about this layer is

  153. 6:35

    sort of a balance between these three

  154. 6:37

    which is cost, intelligence and latency,

  155. 6:42

    right? And and and why do I bring these

  156. 6:45

    three up? Because they're sort of

  157. 6:47

    interrelated. I think one of the things

  158. 6:48

    I was just chatting with uh you know a

  159. 6:50

    couple of folks outside one of the

  160. 6:51

    things last one year we've seen lot of

  161. 6:53

    innovations lot of intelligence spike on

  162. 6:56

    the LLM side of uh things right and most

  163. 7:00

    of the you know intelligence has come in

  164. 7:02

    in terms of thinking or uh you know

  165. 7:05

    reinforcement learning and and so on and

  166. 7:07

    so forth the irony with voice agents is

  167. 7:10

    like almost always your the the LLM or

  168. 7:13

    the agent that's talking has to have

  169. 7:16

    thinking turned

  170. 7:17

    Right. So all the advancements we've had

  171. 7:20

    in the LLM layer in the last one year

  172. 7:23

    like none of that even apply here now.

  173. 7:25

    Right? You obviously you have you know

  174. 7:27

    better models that can do you know

  175. 7:29

    better instruction following or tool

  176. 7:30

    calling but pretty much all of your

  177. 7:32

    intelligence that's been built in on the

  178. 7:34

    thinking layer is all off by default if

  179. 7:36

    you want it to be fast enough. So so

  180. 7:38

    that's one of the ironies that we come

  181. 7:40

    up with. So then how do you sort of

  182. 7:41

    balance intelligent cost and latency?

  183. 7:44

    Let's let's look at some of these uh you

  184. 7:46

    know options uh that are out there in

  185. 7:48

    the market right so and I'm specifically

  186. 7:50

    picking LLM because if you looked at the

  187. 7:52

    previous chart LLM is u you know sort of

  188. 7:57

    your highest latency bucket that adds to

  189. 8:00

    this right and uh if you look at you

  190. 8:02

    know frontier models which I think most

  191. 8:05

    folks start by default your your openi

  192. 8:09

    your clouds your geminis u you know p50

  193. 8:11

    ttfftd is roughly around 450 to 500 on

  194. 8:15

    on a good day and it can get spiky,

  195. 8:18

    right? It can it can uh you know P90 P95

  196. 8:21

    can go easily upwards of 1.2 1.3 seconds

  197. 8:24

    even uh and and that's not good for the

  198. 8:27

    overall agent experience.

  199. 8:30

    So so that so that's your frontier

  200. 8:31

    model. Now there's another options which

  201. 8:34

    is your your cerebrus or or the gro that

  202. 8:37

    is famous and popular for spitting out a

  203. 8:39

    lot of tokens or or tokens very fast,

  204. 8:42

    right? uh these work but for you to get

  205. 8:45

    dedicated latency or time to first token

  206. 8:48

    on these you need dedicated capacity and

  207. 8:50

    that is really expensive that's where I

  208. 8:52

    spoke about the cost uh as as being one

  209. 8:54

    of the things to balance right it's

  210. 8:56

    really expensive and then like you talk

  211. 8:58

    to anyone from the gro team or the

  212. 8:59

    cerebrus team they'll tell you you need

  213. 9:01

    to book 12 months in advance for

  214. 9:03

    dedicated capacity they're booked out

  215. 9:04

    for the next 12 months so so that's

  216. 9:07

    that's a pretty expensive option and

  217. 9:08

    then you really need to be sure that the

  218. 9:11

    model you're deploying on some of these

  219. 9:12

    infra layers uh will be here 12 months

  220. 9:17

    from now and and it's a it's a big

  221. 9:18

    investment and a big unknown. So, so

  222. 9:21

    what's a realistic option for production

  223. 9:23

    grade uh

  224. 9:27

    agents that are that are good quality

  225. 9:29

    and end up balancing uh three of these u

  226. 9:33

    this is what has worked for us u which

  227. 9:37

    is the open source models u there are

  228. 9:40

    obviously a lot of them in terms of like

  229. 9:42

    the variety and and variations you can

  230. 9:44

    pick I'm specifically talking about the

  231. 9:46

    two we work with u quen 3.5 and gemma

  232. 9:50

    four. These are uh you know kind of

  233. 9:53

    cutting edge open source models right uh

  234. 9:56

    out in the market right now and we've

  235. 9:59

    done a lot of benchmarking around this

  236. 10:01

    in how they work. It it can be scary to

  237. 10:04

    think like okay I have the models now I

  238. 10:08

    have to host them you know run them on

  239. 10:10

    my own GPUs and so on and so forth but

  240. 10:12

    if you are consistently targeting under

  241. 10:15

    300 ms u this we've seen this to be a a

  242. 10:19

    great option to balance between latency

  243. 10:21

    cost and intelligence now some more deep

  244. 10:24

    dive here if you're doing only English

  245. 10:27

    uh quen 3.5 or GMA both work fine but if

  246. 10:30

    you're doing multilingual uh right

  247. 10:32

    international audiences different

  248. 10:33

    languages uh Gemma 4 is a much better

  249. 10:36

    model for that uh we've seen uh token

  250. 10:42

    fertility evals essentially what that

  251. 10:43

    means is if if I were to dejargonize

  252. 10:45

    that is like how many tokens does it

  253. 10:47

    take to generate one word in that

  254. 10:49

    language okay so Gemma is much much

  255. 10:52

    better at least 2.5 to 3x better than

  256. 10:55

    quen 3.5 from that perspective so your

  257. 10:58

    time to words is much faster on Gemma or

  258. 11:02

    everything else equal right on a on a

  259. 11:04

    multilingual basis. Now what sizes do

  260. 11:07

    you pick at the LLM layer? Uh the

  261. 11:10

    mixture of expert usually works fine. Uh

  262. 11:13

    the three or four billion mixture of

  263. 11:15

    expert usually works fine. The the

  264. 11:17

    problem with mixture of expert is like

  265. 11:18

    if anyone goes down wants to go down the

  266. 11:21

    direction of fine-tuning that can be a

  267. 11:23

    challenge uh because fine-tuning mixture

  268. 11:24

    of experts models are not easy. Uh you

  269. 11:27

    can end up breaking the model uh a a lot

  270. 11:30

    of times. So, so that's one challenge we

  271. 11:32

    see with Make sure experts, but usually

  272. 11:33

    out of the box, it gets you 90% closer

  273. 11:37

    to where you want to be like even

  274. 11:39

    without any fine-tuning or or or custom

  275. 11:42

    work done on the model. Uh so that's the

  276. 11:44

    advantage of mixer experts. Uh now, if

  277. 11:47

    you want to fine-tune and and you you

  278. 11:49

    want to go deeper and say like look, I'm

  279. 11:51

    working for a specific domain,

  280. 11:52

    healthcare, what have you, right? uh and

  281. 11:55

    I want to make sure I I'm able to

  282. 11:56

    fine-tune my model. You want to start at

  283. 11:58

    least with uh the 8 billion 12 billion

  284. 12:00

    at least uh from where we are today.

  285. 12:02

    Maybe maybe six months from now a 4

  286. 12:04

    billion 4 billion model beats the 8

  287. 12:07

    billion model uh hands down. But for

  288. 12:09

    today uh what we've seen is you minimum

  289. 12:13

    need a 8 billion or 12 billion model. Uh

  290. 12:15

    cuz you're looking for two things in

  291. 12:17

    these models. One obviously fast tokens

  292. 12:19

    but uh good instruction following. Okay.

  293. 12:23

    And the second thing is like very high

  294. 12:25

    uh success ratio in tool calling because

  295. 12:28

    if you can do these two things well then

  296. 12:30

    you are on to like 70 80% there from not

  297. 12:33

    even having to fine-tune it fine-tune

  298. 12:35

    any model like models will work out of

  299. 12:37

    the box right u so so that's uh been our

  300. 12:40

    recipe we've actually uh we run two

  301. 12:43

    flavors one a fine tune model

  302. 12:45

    for specific industries and then for uh

  303. 12:49

    you know most generic use cases uh MOE

  304. 12:53

    model just works out of the box. Uh

  305. 12:55

    there are a few more tips and tricks

  306. 12:56

    we'll talk about in the upcoming slides

  307. 12:58

    where we see failure models, but but

  308. 13:00

    that's where we stand from a from a

  309. 13:02

    latency LLM standpoint. Um all right,

  310. 13:06

    I'm running tight on time, so I'm going

  311. 13:08

    to fast track this. U now there are a

  312. 13:11

    couple of other flavors in this. Uh

  313. 13:12

    people build agents with a a mixture of

  314. 13:15

    models. What they do is you know for u

  315. 13:18

    the the talking part of it they have a

  316. 13:20

    conversational model which is a much

  317. 13:21

    lower smaller model and then you know

  318. 13:24

    maybe even a three billion model and

  319. 13:26

    then for tool calling they have a much

  320. 13:27

    larger model so that they have a

  321. 13:29

    improved tool calling success ratio

  322. 13:31

    there. Uh

  323. 13:35

    sorry the second one is uh assume your

  324. 13:39

    transcriptions are going to be brittle

  325. 13:41

    like that's that's uh something you want

  326. 13:44

    to sort of uh live by when you're

  327. 13:47

    building AI agents even if you have the

  328. 13:49

    best transcription engine out there and

  329. 13:51

    I I I'll show you why right like the the

  330. 13:54

    the state-of-the-art transcription

  331. 13:56

    engines out out in the market u you know

  332. 13:59

    sort of get you to four to 6% word error

  333. 14:03

    rate right and this is on known eval

  334. 14:05

    sets on real world noisy calls with you

  335. 14:10

    know sort of uh accents like people

  336. 14:12

    having different sort of accents uh

  337. 14:14

    domain vocabulary and so on and so forth

  338. 14:17

    like those usually end up in the double

  339. 14:18

    digits from a word erate perspective

  340. 14:21

    right uh now you obviously you can

  341. 14:22

    fine-tune you know pick up an open

  342. 14:24

    source model and fine-tune uh but we see

  343. 14:27

    typically like what breaks here often

  344. 14:29

    and there are patterns s here in terms

  345. 14:31

    of what breaks. So, proper nouns,

  346. 14:33

    jarens, uh phone numbers like random

  347. 14:37

    missing digits with phone numbers, uh

  348. 14:39

    wrong substitutions. I I'll walk through

  349. 14:40

    some examples of like how you solve for

  350. 14:42

    these addresses when you're trying to

  351. 14:44

    collect a long address. Uh you know, the

  352. 14:47

    the transcription engine could just end

  353. 14:49

    up missing some parts of it.

  354. 14:52

    Code switch languages. I I'll just take

  355. 14:54

    a example of a language I speak because

  356. 14:56

    that's was easy for me to put on the

  357. 14:58

    slide. uh where you know like if you

  358. 15:01

    were to sort of take English but written

  359. 15:04

    in a different script uh that's what's

  360. 15:05

    used for Hindi right like this is

  361. 15:08

    English written in that script right

  362. 15:10

    whereas like the actual English version

  363. 15:11

    of this is hello how are you so if if

  364. 15:14

    I'm addressing an audience in a

  365. 15:15

    different country where I have code

  366. 15:17

    switched languages and I start getting

  367. 15:19

    my English in a different uh sort of

  368. 15:21

    script everything starts breaking from

  369. 15:24

    the transcription engine to the LLM

  370. 15:26

    layer and then beyond because your LLM

  371. 15:28

    starts then producing output in that

  372. 15:29

    sort of script a lot of times and then

  373. 15:32

    your TTS messes up. Okay. So, so this is

  374. 15:35

    uh very important to be careful about

  375. 15:37

    and if you want to build your agent

  376. 15:39

    independent of the transcription engine,

  377. 15:41

    you need to build a layer that

  378. 15:43

    normalizes all of this, right? We'll

  379. 15:44

    talk about solutions in a minute. And

  380. 15:46

    there is the other case which is Hindi

  381. 15:48

    in Latin or or or you know Roman, right?

  382. 15:51

    Which is like this is Hindi but it reads

  383. 15:54

    English which again messes up everything

  384. 15:56

    uh you know downstream. Those are just

  385. 15:58

    examples. This applies to, you know,

  386. 15:59

    Arabic, Mandarin, uh, Japanese, what

  387. 16:02

    have you. Uh, pretty much any language.

  388. 16:04

    So, what actually moves the needle with

  389. 16:07

    a at the transcription layer? Uh, for

  390. 16:10

    prop proper nouns, we recommend uh you

  391. 16:13

    using not just keyword boosting. I think

  392. 16:15

    a lot of transcription engine engines

  393. 16:17

    provide you keyword boosting where you

  394. 16:18

    can put in specific words into their

  395. 16:20

    engine, but doing dynamic keyword

  396. 16:22

    boosting. What that means is don't keep

  397. 16:24

    the keyword for the entire state of the

  398. 16:26

    call. just add that dynamically when you

  399. 16:29

    think you need that as an answer so that

  400. 16:32

    you get the highest accuracy. Meaning at

  401. 16:34

    different states of the call, the

  402. 16:35

    transcription engine will have different

  403. 16:38

    uh keywords boosted during different

  404. 16:40

    phases, right? Uh and that's what we've

  405. 16:42

    seen works best because if you just

  406. 16:44

    pollute your context of the

  407. 16:45

    transcription engine with tons of

  408. 16:47

    keywords, it'll start hallucinating

  409. 16:49

    again, right? So, so that's what we see

  410. 16:50

    typically working best. Uh

  411. 16:54

    yeah, post-process post-process your

  412. 16:56

    transcripts with an LLM, right? Cuz your

  413. 16:58

    LLM has domain context. Your

  414. 17:00

    transcription engine does not. So a lot

  415. 17:02

    of words that it would say uh I'll give

  416. 17:04

    you some examples may not make sense.

  417. 17:06

    This is transcription like a phone

  418. 17:08

    number from a transcription engine.

  419. 17:10

    Right? Like what do you think that E is?

  420. 17:13

    Right? If you give it to an LM, it knows

  421. 17:15

    that's a three. Similarly, like what

  422. 17:17

    that one is, it's a digit one. So, so

  423. 17:20

    your transcription engine a lot of times

  424. 17:21

    could mess that up, but when you

  425. 17:23

    postprocess it with the LLM layer, it'll

  426. 17:26

    instantly correct that from a collection

  427. 17:28

    standpoint. I mean, uh, and and the last

  428. 17:30

    one, like I said, uh, transliteration is

  429. 17:33

    your ST output that's sort of u, you

  430. 17:36

    know, multilingual also gets normalized

  431. 17:39

    using either an NLM you first

  432. 17:42

    transliterated or, you know, use some

  433. 17:44

    kind of a neural uh, transliteration

  434. 17:47

    engine. There are a lot of them open

  435. 17:48

    source. You can just pick one of them,

  436. 17:50

    right? Uh that would do all of that work

  437. 17:52

    for you. Send cleaned transcripts

  438. 17:54

    consistently independent of the

  439. 17:56

    transcription engine to your LLM.

  440. 18:00

    All right. The third one we typically

  441. 18:01

    see is collecting data. This is where I

  442. 18:04

    think 50 to 60% of AI agents mess up

  443. 18:06

    pretty badly. Uh and like we like to

  444. 18:10

    think of it as

  445. 18:12

    a UX problem. Uh but just for voice. So

  446. 18:16

    think data models uh and not a

  447. 18:19

    transcript coming into an LLM and and

  448. 18:21

    trying to figure out what the transcript

  449. 18:22

    said. So let's take some inspiration

  450. 18:24

    from uh I'm assuming most of us are

  451. 18:28

    developers here um you know take

  452. 18:29

    inspiration from Python's data classes

  453. 18:31

    pantic zod from Typescript or form

  454. 18:35

    fields in the UI right like if you start

  455. 18:37

    thinking of it from that problem

  456. 18:39

    statement we have seen accuracy grow up

  457. 18:41

    from grow from 30% to like 95% from a

  458. 18:45

    data collection standpoint when you

  459. 18:47

    start thinking in that manner. So like

  460. 18:49

    decide your shape before you ask, right?

  461. 18:52

    Like instead of keeping it open-ended,

  462. 18:54

    can you keep it constrained? So can can

  463. 18:57

    a phone number be a phone number type

  464. 18:59

    field? The moment you do that, right,

  465. 19:01

    you know like how many digits it needs

  466. 19:04

    to have. You can do validation on on top

  467. 19:06

    of that, right? And then what sort of

  468. 19:08

    allowed values can even be there. So in

  469. 19:11

    the previous example we saw if an E

  470. 19:13

    comes in in middle of a phone number and

  471. 19:15

    you know it's a phone number you

  472. 19:17

    instantly know like either you smart

  473. 19:19

    guess that to three and confirm that

  474. 19:20

    with a user or you know that's an error

  475. 19:23

    and then you validated that and asked

  476. 19:24

    the user to repeat again right so so

  477. 19:27

    that's I think one of the common

  478. 19:28

    patterns we've seen here from from a a

  479. 19:32

    collection pattern name I think is the

  480. 19:34

    is the interesting one I've just picked

  481. 19:36

    a you know a a hard to pronounce name

  482. 19:40

    like There's no way a human is going to

  483. 19:41

    get this right and and no way a

  484. 19:43

    transcription engine will get this

  485. 19:44

    right. How many ever times you do this

  486. 19:46

    right? So the moment you start thinking

  487. 19:48

    of this as fields and then have rules

  488. 19:50

    and then confirmation mechanisms on on

  489. 19:53

    spelling this uh you know sort of uh

  490. 19:55

    letter by letter only then you kind of

  491. 19:58

    get it right otherwise it's going to

  492. 19:59

    mess up pretty badly in terms of how you

  493. 20:00

    collect this on a voice call and and

  494. 20:03

    that's just an example of you know what

  495. 20:06

    u I'm talking about in terms of the the

  496. 20:08

    data collection piece of it.

  497. 20:11

    Another place where it goes badly

  498. 20:14

    dramatically is relative uh values. Date

  499. 20:17

    being one of the examples. If somebody

  500. 20:19

    says next week uh Wednesday 8, 8 could

  501. 20:23

    mean 8:00 a.m. 8:00 p.m. and then

  502. 20:25

    figuring out what that date actually is.

  503. 20:27

    Again, now becomes a very constrained

  504. 20:29

    problem. If you knew this was a datetime

  505. 20:31

    field and I I'm collecting a datetime

  506. 20:33

    field and then you take the current date

  507. 20:35

    and then figure out what this value

  508. 20:36

    would be bases that, right? So, so

  509. 20:38

    that's how you want to make sure like uh

  510. 20:40

    you do this with a combination of the

  511. 20:42

    LLM with the tool calling and the tool

  512. 20:44

    calling is doing a lot of this heavy

  513. 20:45

    lifting for you from a from a field

  514. 20:48

    standpoint.

  515. 20:51

    Yeah. And then you make you you run like

  516. 20:53

    this from a unit test perspective. So

  517. 20:56

    all of your u evals need to start

  518. 20:59

    treating these fields as unit tests. And

  519. 21:02

    as long as your unit tests uh sort of

  520. 21:05

    validate and pass, you know, your agent

  521. 21:07

    is going to be uh sort of reliable and

  522. 21:09

    repeatable. You don't, you know, run uh

  523. 21:11

    hundreds of end to end agent test cases

  524. 21:13

    just to find out, you know, one field

  525. 21:15

    collection is broken. You do your eval

  526. 21:18

    at a field level and a unit test uh

  527. 21:20

    level.

  528. 21:25

    And then yeah, like I said, I think u

  529. 21:27

    you this this mindset makes everything

  530. 21:29

    more structured instead of hoping I'll

  531. 21:32

    put a ton of prompt, keep changing, you

  532. 21:34

    know, the prompt by a few uh characters

  533. 21:37

    every time and somehow my prompt

  534. 21:38

    engineering is going to make LLM much

  535. 21:41

    more instruction tuned and sort of

  536. 21:43

    magically start following some of these

  537. 21:44

    things. So in fact u like I said right

  538. 21:47

    like we have seen us get to 95 97%

  539. 21:50

    accuracy without having to fine-tune a

  540. 21:52

    model right and then and the trick is

  541. 21:54

    basically like just breaking down your

  542. 21:56

    context of what the agent is doing at

  543. 21:58

    that point with specific u states of

  544. 22:01

    what the agent is going through.

  545. 22:05

    All right u I'm just going to quickly u

  546. 22:07

    skip through this from a

  547. 22:10

    time standpoint. I just see I got three

  548. 22:12

    more minutes. Um hopefully that's a bug

  549. 22:15

    but but we'll leave it at that. Okay. Um

  550. 22:19

    so so this is the fourth area where we

  551. 22:21

    see issues coming in. Most folks take

  552. 22:24

    the LLM output and then we send it to a

  553. 22:27

    TTS. Obviously I think there are a lot

  554. 22:29

    of good TTS's in the market that take

  555. 22:30

    care of a lot of heavy lifting but a lot

  556. 22:33

    of times it it messes up. Uh what we

  557. 22:36

    recommend and what we've seen is you

  558. 22:38

    usually want to have a normalization

  559. 22:40

    layer between your LLM and what is fed

  560. 22:43

    to a TTS. You don't send your LLM output

  561. 22:47

    directly to a TTS, right? And and we'll

  562. 22:49

    just walk through some examples. The

  563. 22:52

    basics which is strip emojis uh markdown

  564. 22:56

    before before any synthesis into the

  565. 22:58

    TTS. Most orchestration pipelines do

  566. 23:00

    this like you know a live kit or a

  567. 23:02

    pipecat would do that for you if you

  568. 23:03

    just set a few flags. So I but but just

  569. 23:06

    make sure if you're not using them or

  570. 23:08

    buildings from scratch that you've set

  571. 23:10

    this explicitly because you don't want

  572. 23:11

    an emoji showing up on on on something

  573. 23:14

    read out or you know markdown showing up

  574. 23:16

    there.

  575. 23:18

    Okay. I think I think some more common

  576. 23:19

    ones uh custom uh dictionaries most TTS

  577. 23:23

    engines provide this to you like how to

  578. 23:25

    pronounce custom words whether it's you

  579. 23:28

    know proper nouns brands uh acronyms and

  580. 23:32

    so on and so forth. So set those in uh

  581. 23:34

    when you go from your LLM to your TTS

  582. 23:36

    output because if you don't, you're

  583. 23:37

    going to mess that up. And I I'll I'll

  584. 23:39

    show you an example of like how we test

  585. 23:40

    that. Uh the the other one is like most

  586. 23:44

    engines also give you speed. So if you

  587. 23:46

    know you're pronouncing an entity, slow

  588. 23:48

    down. Have your agent slow down. So at

  589. 23:51

    point 8x or 7x so that it it's able to

  590. 23:54

    like inunciate on that specific entity

  591. 23:57

    and and doesn't mess up how it's

  592. 23:59

    pronouncing an email or a phone number

  593. 24:01

    or a name letter by letter

  594. 24:05

    and yeah just normalize all the messy

  595. 24:08

    stuff right like emails currency dates

  596. 24:10

    don't leave it to the TTS to do it uh

  597. 24:13

    most of them do it but don't leave it to

  598. 24:15

    the TTS to do it like build your

  599. 24:17

    normalization layer at your end so that

  600. 24:20

    tomorrow you think you need to switch

  601. 24:21

    TTS or you know for whatever reason the

  602. 24:24

    first one's down and you want to use

  603. 24:25

    another TTS you're able to sort of not

  604. 24:28

    rely natively on the TTS's engine but

  605. 24:31

    you are building this in-house uh for

  606. 24:34

    for this to be managed

  607. 24:36

    and then yeah u I think I don't have my

  608. 24:39

    batch here but I I don't have my last

  609. 24:41

    name on that so my first test is if it

  610. 24:43

    cannot pronounce my last name or my

  611. 24:45

    company's name it's already dropping the

  612. 24:47

    ball so my last name is uh Balas

  613. 24:49

    Subramanion and if you cannot pronounce

  614. 24:51

    that using a voice AI agent uh like

  615. 24:55

    that's a check for me. I I know like uh

  616. 24:58

    you know the agent will mess up a lot of

  617. 25:00

    words that uh you know need to be

  618. 25:03

    spelled out day by day. The second one

  619. 25:06

    is our company name Po. So a lot of

  620. 25:08

    engines pronounce pronounce it pivo or

  621. 25:11

    uh pleo and and so on and so forth. But

  622. 25:13

    but I think specifically being able to

  623. 25:15

    control this in your pipeline is super

  624. 25:17

    critical. And then if you're building a

  625. 25:20

    if you're building a customerf facing

  626. 25:22

    product then then um you know sort of

  627. 25:25

    give this option to your customers. All

  628. 25:26

    right I'm just going to skim through the

  629. 25:28

    the the last two slides. U I'm I'm

  630. 25:31

    running badly over time. Uturn

  631. 25:33

    detection. I think this is it own

  632. 25:35

    separate topic but I'm just going to

  633. 25:36

    quickly pull up all the points so you

  634. 25:38

    guys can skim through that and if if you

  635. 25:40

    need a chat u after this we can we can

  636. 25:43

    talk about this. Right. Uh

  637. 25:47

    I'm just going to leave that for like

  638. 25:48

    five seconds and then and then we can

  639. 25:50

    chat about this offline. I'm quite over

  640. 25:52

    time. And then the the the last one is

  641. 25:55

    uh bargin and and back channeling. I

  642. 25:57

    think there's a lot of talk around

  643. 25:58

    speech to speech models that do some of

  644. 26:00

    this, but we've been able to see how we

  645. 26:02

    could do all of this in speech to speech

  646. 26:04

    pipelines. You really don't need a

  647. 26:05

    speech to speech model to do all of this

  648. 26:07

    up. Uh again, I'll just I just put put

  649. 26:09

    this up on the slide and and sort of

  650. 26:12

    close at that. Um

  651. 26:15

    all right I don't think we have time for

  652. 26:17

    questions we can take them offline if

  653. 26:18

    you have any time but uh hopefully this

  654. 26:20

    was helpful and gave you some insights

  655. 26:22

    on uh what we are seeing in productions

  656. 26:24

    uh with billions of calls at scale. All

  657. 26:26

    right thanks