跳转到正文
分享一个业务流程。DRING 两分钟内给您回电,梳理具体需求。 两分钟内接到回电
2 分钟内接到回电 查看 Agent Factory
语音 AI 运营 · 延迟测量

AI 智能体为什么让来电客户干等

来电客户说完话后的那段停顿,是六个环节耗时的总和。逐轮测量,盯住最慢的轮次,先修最耗时的那个环节。

先说结论

来电客户说完话,听到的却是一片静音。这段停顿很少只是某一处慢了,而是六个环节耗时的总和:话轮结束、语音转写、模型回复、系统查询、语音起播和线路。系统查询只出现在查询轮次,也就是智能体需要查一下系统的那几轮,比如查订单状态。其余轮次都是普通轮次。

本文把这段停顿称为响应延迟:从来电客户停止说话,到客户听到智能体首次发声为止。响应延迟的平均值,会把客户真正记住的那几轮掩盖掉。所以要逐轮测量,把普通轮次和查询轮次分开,看中位数和 P90(第 90 百分位数)。

然后,在每个最慢轮次里找出最耗时环节。最常成为最耗时环节的那个,就是您要先修的。一次只改一个环节,同时盯住反向信号:智能体开口前等得短了,就可能开始抢话。实在省不掉的等待,可以加一句进度提示,把首次发声提前,但答复并不会因此提前。

目标值不要从别处照搬。找出响应延迟长到多少时,您自己的来电客户会开始对着静音问一声“喂?”,这就是您的阈值。

我们在客户在 AI 通话的哪一步挂断一文中,找的是客户离开的那个阶段。本文再往下深挖一层:静音为什么这么长,该修哪个环节。下文所有数字都是示例,既不是 DRING 的数据,也不是行业数据。

响应延迟的六个环节

从来电客户说完最后一个字,到智能体首次发声,这段时间分成六个环节。本文始终按以下顺序列出:

环节做什么常见的拖慢原因怎么测量
话轮结束系统判定来电客户已经说完。要等到一段很长的静音,才做出判定。从录音中客户的话音结束,到系统做出判定
语音转写语音识别的文字定稿。整句话处理完,最终文字才出来。从系统做出判定,到最终文字出来
模型回复模型决定下一步做什么,并生成回复。第一句话太长、提示词过长、开口前的推理链太长。从最终文字出来,到回复生成。查询轮次分两段:到发出系统查询请求为止,以及从系统查询返回结果到回复生成
系统查询查一下系统,比如订单状态。只出现在查询轮次。系统响应慢、多项查询依次排队执行、没有设置超时上限。从发出请求,到系统返回结果
语音起播语音合成输出回复的第一段音频。语音合成要等整段回复文字都出来,才开始发声。从回复文字送达语音合成,到第一段音频离开您的系统
线路电话线路和网络双向传送音频。通话路由过长、所在区域相隔太远、移动网络信号弱。用普通手机拨打测试电话,在来电方一侧录音

有两个环节分成两段。在查询轮次,模型在系统查询之前工作一次,决定要查什么;查询之后再工作一次,组织答复的措辞。两段都算模型回复。线路在每一轮都分两段:客户的声音传到您的系统,智能体的声音传到客户耳边。两段都算线路。

如何逐轮测量

要按轮次测,不要按通话测:按整通电话取平均,一个很慢的查询轮次,可能就淹没在七个很快的轮次里。每一轮记一行,字段都一样。示例值来自本文后面展示的那个慢轮次。示例,并非真实数据。

字段记录内容示例值
通话 ID通话录音和系统日志共用的同一个 IDC1047
轮次序号智能体的这次回复是通话中的第几轮4
轮次类型普通轮次或查询轮次查询轮次
响应延迟从客户说完最后一个字,到智能体首次发声,含线路耗时3.9 秒
话轮结束您的录音和系统时间戳0.7 秒
语音转写系统时间戳0.2 秒
模型回复系统时间戳,查询轮次记两段0.6 秒(系统查询前 0.3 秒,查询后 0.3 秒)
系统查询系统时间戳,普通轮次留空1.9 秒
语音起播系统时间戳0.3 秒
线路在客户使用的网络上拨打测试电话0.2 秒
未归因时间系统侧录音上的响应延迟,减去已记录的各环节耗时0.0 秒
客户在静音中开口响应延迟期间,客户问了“喂?”或把话重复了一遍,记为“是”是
抢话客户还在说话或只是停顿了一下,智能体就开始回复,记为“是”否
任务完成按通话记:客户要办的事办成了,记为“是”是

先在系统侧的通话录音上测量响应延迟。借助共用的通话 ID,录音里的每一轮都能对上相应的系统时间戳,由此得出话轮结束、语音转写、模型回复、系统查询和语音起播的耗时。线路耗时在下一步再加上。

您的录音里没有线路耗时。在您的系统上,计时从客户的音频到达时开始,到您的音频发出时停止。所以,要在客户使用的网络上用普通手机拨打测试电话,并在来电方一侧录音。同一轮对话,这份录音上的响应延迟减去系统侧录音上的响应延迟,就是线路耗时。把它加到真实通话的响应延迟上。

接着核对总和。未归因时间等于系统侧录音上的响应延迟,减去已记录的各环节耗时。如果这个数很大,说明漏了某个时间戳。在示例轮次中,系统侧录音显示 3.7 秒,已记录的各环节加起来也是 3.7 秒,所以未归因时间为零。再加上 0.2 秒的线路耗时,客户听到的就是 3.9 秒。

平均值为什么会掩盖问题

示例,并非真实数据:同一条线路上 50 通录音通话,共 400 个智能体轮次,其中普通轮次 300 个,查询轮次 100 个。每个响应延迟都含线路耗时,即测试电话测得的 0.2 秒。

轮次类型轮次数中位数平均值P90
普通轮次3001.1 秒1.2 秒1.8 秒
查询轮次1002.9 秒3.2 秒4.6 秒
全部轮次4001.3 秒1.7 秒3.4 秒

全部轮次的平均值是 1.7 秒,高于 1.3 秒的中位数,因为慢轮次把它拉高了。但这两个数都看不出客户记住的那几轮。P90(第 90 百分位数)看得出:每十轮中有一轮的响应延迟达到或超过这个值,这里是 3.4 秒。达到或超过 P90 的轮次,就是最慢轮次。

还要按轮次类型拆开看。普通轮次的中位数是 1.1 秒,查询轮次是 2.9 秒。某一周查询轮次多了,全部轮次的数字就会上升,哪怕没有任何环节变慢。

再把这 400 轮按响应延迟分成四档:1.0 秒以下 130 轮,1.0 至 2.0 秒 180 轮,2.0 至 3.4 秒 50 轮,3.4 秒及以上 40 轮。然后标出客户在静音中开口的轮次,也就是客户问了“喂?”或把话重复了一遍。最慢的 40 轮里有 31 轮出现这种情况,其余 360 轮里有 7 轮:2.0 秒以下的 310 轮中有 3 轮,2.0 至 3.4 秒的 50 轮中有 4 轮。

400 轮按响应延迟分档。每根柱子的深色部分,是客户在静音中开口的轮次,分别为 0、3、4 和 31 轮。示例,并非真实数据。

所以在这条线路上,响应延迟在 2.0 秒以下时,客户很少在静音中开口;2.0 至 3.4 秒时仍不多见;到了 3.4 秒及以上就很常见。这条线路的阈值在 3.4 秒附近,并不是通用目标。您的阈值也用同样的方法找:把自己的轮次分档,看客户在静音中开口从少见变成常见,发生在哪一档。在这个位置附近把档位分得更细,就能定得更准。

在最慢轮次中找出最耗时环节

P90 告诉您最慢轮次有多慢,却不告诉您为什么慢。要找原因,就逐个打开慢轮次,找出它的最耗时环节,也就是这一轮中用时最长的那个环节。

示例,并非真实数据:最慢的 40 轮之一。客户询问订单状态,所以这是一个查询轮次。计时从客户停止说话的那一刻开始,以来电方一侧听到的为准。

一个很慢的查询轮次,逐环节拆解:响应延迟 3.9 秒,最耗时环节是系统查询。示例,并非真实数据。

各环节耗时:话轮结束 0.7 秒,语音转写 0.2 秒,模型回复 0.6 秒,系统查询 1.9 秒,语音起播 0.3 秒,线路 0.2 秒。模型回复分两段,各 0.3 秒:一段决定去查订单,一段组织答复。线路每个方向各 0.1 秒。各环节加起来,响应延迟是 3.9 秒。系统查询是最耗时环节,几乎占了响应延迟的一半。

只有在同一轮之内,各环节耗时才能这样相加。中位数和 P90 不能这样加:六个环节的中位数加在一起,并不等于响应延迟的中位数。所以要逐轮找出最耗时环节,再做统计。

示例,并非真实数据:最慢的 40 轮中,每一轮的最耗时环节。

最耗时环节最慢轮次
话轮结束8
语音转写0
模型回复5
系统查询27
语音起播0
线路0
合计40

系统查询最常成为最耗时环节,40 轮中占 27 轮。这和轮次类型对得上:最慢轮次中,36 个是查询轮次,4 个是普通轮次。话轮结束是 8 轮的最耗时环节,其中大多数是客户在报号码时停顿了一下,系统多等了一会儿,才判定客户已经说完。模型回复是 5 轮的最耗时环节。

在这个示例里,线路从来不是最耗时环节,因为这条线路稳定在 0.2 秒。换一条线路,就可能不一样。我们在演示顺利、真实通话出错一文中给过一个快速判断方法:每一轮都有停顿,指向线路;只有查询轮次才停顿,指向工具。

一次只修一个环节,同时盯住反向信号

从最慢轮次中最常成为最耗时环节的那个环节开始,这里是系统查询。只改一处,然后对同样的轮次类型重新测量。同时改两处,就分不清是哪一处让 P90 变了。

每项修复都有代价,所以每一行也写明了要盯住的信号:

环节可以尝试要盯住的信号
话轮结束等待时长随客户说的内容而变:客户只答“是”“不是”或报个名字时,等得短一些;客户在报号码,或者在说明某个字怎么写时,等得长一些。抢话
语音转写改用流式语音转文字,话轮结束时,大部分文字已经出来了。听错的字词和数字
模型回复第一句话说短一点。常见问题用简单的回复方案。答复的质量和完整性
系统查询互不依赖的查询同时执行。设置超时上限并准备兜底:转人工,或者提出回电。查询之前先给一句进度提示。答复过时或不完整。每一轮都重复进度提示。
语音起播第一句话写好就开始发声,其余部分边生成边播放。回复说到一半出现不自然的停顿
线路从客户使用的网络拨打测试电话。和您的电话线路服务商一起检查通话路由。音质,而不只是延迟

每一行列出的都是备选做法。先试一个,测量后再决定下一步。

缩短话轮结束的代价:抢话

抢话是和响应延迟过长相反的失误:客户还在说话,或者只是停顿了一下,智能体就开始回复。示例,并非真实数据:同样这 400 轮中出现了 6 次抢话,其中 5 次发生在客户报订单号或手机号的时候。两种失误都和报号码有关:最慢轮次中有 8 轮的最耗时环节是话轮结束,其中大多数也是客户在报号码。如果每一轮都缩短等待,抢话就会变多。所以上表中话轮结束那一行给了长短两种等待。不过,报号码时等得再久,也不会让这 8 个慢轮次变快。真正有用的是一个“号码已报完”的信号:系统如果知道订单号是五位数,客户报完第五位数字时就能判定话轮结束,不必再等静音。

等待省不掉时,给一句进度提示

有些查询就是慢,背后的系统也不一定由您说了算。这时,就把首次发声提前到系统查询之前,用的是进度提示:在耗时的步骤之前说一句简短的话。在上面那个慢轮次中,这句话会紧接在模型回复的第一段之后:

  • 客户:“订单号是 4 8 1 7 2。”
  • 智能体(系统查询前):“好的,我帮您查一下这个订单,您稍等。”
  • 智能体(系统查询后):“您的订单已经在路上了,周四能送到。”

响应延迟缩短了,因为首次发声提前到了系统查询之前。答复等待时间是从客户停止说话,到真正开始答复为止的时间。它基本不变,因为答复仍然要等系统查询结束。在这类轮次上,也要记录答复等待时间,免得进度提示掩盖了越来越慢的系统查询。

进度提示要简短,只用在耗时的步骤之前,绝不放在道歉、数字或结束语中。每一轮都说也有代价:客户会一遍又一遍地听到同一句话。

每周要跟踪什么

每周把普通轮次和查询轮次分开,看三个信号:

  • 响应延迟:中位数和 P90;有进度提示的轮次,还要看答复等待时间。
  • 客户在静音中开口:出现这种情况的轮次占比。
  • 抢话:次数,以及抢话时客户正在说什么。

第四个信号按通话看:任务有没有完成。如果完成任务的通话变少了,响应延迟缩短也没多大意义。如果您在做试点,就按试点评估卡对已解决通话的定义,来判断任务是否完成。

每次改动前后,都要拿同样的轮次类型做比较。在几百轮上测得的占比,可能只是偶然波动。比率的误差范围怎么算,请看我们关于语音 AI 试点成功标准的文章。

DRING 能帮上什么

精选的语音转文字、文字转语音和推理模型,以及电话线路、测试和监控,都属于每个 DRING 套餐共用的基础能力。在 DRING 上,六个环节中的三个,以及进度提示,是这样运作的:

  • 话轮结束:由一个专门的模型负责插话处理和话轮结束检测,让智能体既不在停顿时抢话,也不在对方说完后干等。
  • 语音转写:采用流式语音转文字,通话被实时转写。
  • 线路:按号码跟踪音质和延迟信号,线路一变差就能尽早发现。
  • 进度提示:工具或模型耗时较长时,一句取自 DRING 审批集合的简短自然的过渡语,让对话继续推进。过渡语就是 DRING 实现进度提示的方式,绝不出现在道歉、数字或结束语中。

我们的语音核心页面介绍了语音转文字、话轮管理和文字转语音如何作为一条链路运行,电话系统页面则讲解线路健康。

每个 DRING 智能体在接第一通真实电话之前,都会跑 1,000 至 10,000 次专为您企业生成的模拟对话。模拟对话在上线前测试话轮管理和进度提示,但测不出真实通话的线路耗时。线路耗时要靠在客户所用网络上拨打的测试电话来测。

如果您线路上有客户对着静音问“喂?”,可以申请 AI 回电。提前准备几通这样的通话,在公司规定允许的前提下附上录音。我们的团队可以和您一起,逐个环节梳理最慢的轮次。

找到让客户干等的那个环节

留下您的号码,DRING 两分钟内给您回电。电话里说说哪条线路静音时间长,我们的团队随后会和您一起分析最慢的轮次。