一通电话背后有多少角色?我拆了 Voicelen 的调度台给你看

一通电话背后有多少角色?我拆了 Voicelen 的调度台给你看

做 Voicelen 这半年,被问最多的一句是:"你这个所谓的智能呼叫中心,到底跟一个普通的座席系统有什么区别?"

老实说,如果只看外壳,区别不大。都是接电话、打电话、看录音、出报表。但如果把上盖打开,里面的分工完全变了 --- 以前一个人从头干到尾,现在被拆成了七八个角色,每个角色只做一件事,靠一条流水线串起来。

这篇文章我想把这条流水线摊开讲一遍。不涉及具体技术选型,只讲角色和职责,让不写代码的人也能看懂一通电话是怎么被处理的。

先给一个总览

一通电话从进来到落库,Voicelen 里大概经过这样一条链路:

markdown 复制代码
号码接入 → 分流台 → 接线员(AI 或人)→ 实时监督位 → 挂断
                                              ↓
                                        通话后处理流水线
                                              ↓
                              录音 / 质检 / 打标 / 跟进 / 计费

每一环都是独立的角色。上一环把处理完的信息交给下一环,中间通过一个"事件广播"通知所有人 --- 你可以理解成办公室里的对讲机,谁需要谁听。

我按这个顺序,一个个讲。

角色一:号码接入

这是最外层的一道门。所有电话号码 --- 无论是客户打进来的,还是我们要打出去的 --- 都要在这里登记。

Voicelen 里的号码不是死绑在某一条线路上的。管理员可以配置多条线路(可以理解成多个"接线员总机"),每个号码挂在哪条线路下、能承担多少并发、白天走哪条、夜里走哪条,都是灵活的。

这一层做的事情很朴素:知道电话从哪儿来,知道电话该往哪儿去

举个例子。如果一个号码配了三条备用线路,主线路突发故障,系统会自动把新的通话切到备线,不需要人工介入。这在传统呼叫中心里通常需要专人盯着,现在是自动完成的。

角色二:分流台

电话通过号码接入层进来之后,不会直接找到接线员。它先要经过一个"分流台"。

分流台做三件事:

第一件是校验身份。 打进来的这个号码,有没有在黑名单里?这家企业当前账户还有没有余额?如果任何一条不通,通话直接被拒绝,不占用后面的资源。这一层过滤下来,能挡掉相当一部分骚扰和坏账。

第二件是选择接待方式。 每一个号码都可以绑定一个"接待方案":直接进 AI 客服、走一个语音菜单让客户按键选择、还是转到人工队列。同一个号码在不同时间段可以选不同方案 --- 白天走人工、下班走 AI。

第三件是负载分配。 如果选择转人工,分流台还要决定:呼谁?不能一直呼同一个人,也不能让新员工承担 VIP 客户的第一通电话。这里有一套规则引擎,按队列、按技能组、按最长空闲时间来分。

分流台是整个系统的"大脑前庭"。它不做业务,只做决策。决策做完了,把通话交给下一环。

角色三:接线员

这是真正说话的角色。Voicelen 支持两种接线员 --- AI Agent 和真人客服 --- 它们在系统里的地位是完全平等的。

先说 AI Agent。

一个 AI Agent 本质上就是一段"人设"配置:说话的音色、开场白、遇到什么问题怎么答、什么时候要转人工、什么时候要挂断。管理员在后台像捏泥人一样把这些属性拼起来,通话打过来的时候,它就活了。

活起来的 AI Agent 大致这么工作:

  1. 听。 客户说了一句话,系统实时把声音转成文字。这中间有个叫"沉默检测"的小东西,判断客户是真说完了还是只是喘口气。
  2. 想。 转出来的文字丢给大模型,让模型基于人设生成回复。
  3. 说。 模型生成的文字再合成成语音,放给客户听。
  4. 打断。 客户如果中途插话,AI 立刻闭嘴,回到步骤 1。

听上去简单,做起来一堆坑。比如"打断"这一步,不能太灵敏 --- 客户咳嗽两声就闭嘴不太礼貌;也不能太迟钝 --- 客户已经说了半句你还在自顾自播报,那就是灾难。Voicelen 里有一套两路联合判定的机制,一路看声音能量,一路看识别出的文字,两路都确认才算真打断。

再说真人客服。真人客服在系统里就是一部软话机 --- 可以是网页端,也可以是手机端。分流台把电话接过来,话机响铃,客服点接听,通话开始。

但真人客服的"辅助模式"是 Voicelen 特别在意的。通话过程中,系统会在旁边实时:

  • 把对话转成文字滚动显示
  • 识别到客户情绪波动、提出敏感关键词时高亮提示
  • 自动检索知识库,把相关话术推给客服

客服不再是"一个人对着话筒硬扛",而是"有 AI 副驾陪着开车"。

角色四:实时监督位

这个角色不参与通话,但它一直在。

任何一通正在进行的通话,主管都可以在监督位上看到 --- 有多少人在通话、每一通聊了多久、AI 说了什么、客户说了什么。看到问题,主管可以:

  • 窃听 --- 只听不说,客户和座席都感知不到
  • 耳语 --- 只对座席说话,客户听不到,可以做实时指导
  • 强插 --- 直接三方通话,把客户和座席都拉在一起,主管介入

除此之外,还有一个 Voicelen 特有的"接管"功能:如果一通 AI 通话正在处理一个复杂问题,主管觉得应该让真人来接手,他可以一键把这通电话从 AI 那里"抢"过来,转到一个空闲的真人座席上。客户几乎无感 --- 电话没有中断,只是对面说话的换了个人。

这个能力很有用。它让 AI 不必"独立作战" --- AI 能处理 80% 的通话,剩下 20% 由真人兜底,不需要客户重新拨号、不需要重新报一遍问题。

角色五:通话后处理流水线

电话挂了。屏幕上通话消失了。但系统里的事情才刚开始。

一通电话挂断后,Voicelen 会往"事件总线"上广播一条"通话结束"消息。所有对这条消息感兴趣的角色都会各自动手,互不阻塞。

订阅这条消息的角色目前有四个:

计费员。 拿到通话时长,按企业配置的呼入/呼出单价扣费。不到一分钟按一分钟算。扣完之后,如果发现企业余额低于预警阈值,发一封邮件给企业负责人。

质检员。 只处理 AI 通话。它把整通对话丢给大模型,让模型给出一个综合评分、判断客户情绪、识别是否触发了违规词、生成一段摘要、判断客户意向。这些结果落到通话记录上,主管在报表里可以按评分排序找出低分通话。

打标员。 拿到质检员输出的意向标签,和企业已经建好的自定义标签库对比,把命中的标签自动打到客户身上。人工再也不需要每通电话之后手动标"意向客户"了。

跟进员。 把这通电话的关键信息 --- 客户说了什么、AI 判断的下一步动作 --- 落到客户的跟进记录里,标记为"由 AI 自动生成"。下次客服打开这个客户,能看到完整的历史脉络。

这四个角色在四个独立的进程里工作。哪个慢了不影响其他人,哪个挂了不影响主通话。这是 Voicelen 架构里我最满意的一部分 --- 主链路只管把电话打通,附加价值全部异步产出

角色六:知识库

上面几个角色都会用到一个共用的资源 --- 知识库。

Voicelen 里的知识库是企业自建的,可以传 PDF、Word、Excel、Markdown、也可以手工录入问答对。传上去之后,系统在后台把文档切成一段一段的小块,给每一块生成一个"语义指纹"存起来。

之后 AI 通话过程中,只要模型认为"我需要查资料",它会主动发起一次检索。检索走的是语义相似度 --- 不是关键词匹配,而是"意思相近"。找到最相关的几段内容,拼进对话上下文,让模型据此回答。

这套机制的好处是,企业不需要写死一堆问答对。文档更新了,重新上传就行,不用重新训练什么。

角色七:导出员

最后是一个不太起眼但很有用的角色。

呼叫中心里有太多"我要一份 Excel"的需求 --- 客户列表要导出、通话记录要导出、跟进历史要导出、质检结果要导出。这些导出如果在页面上同步等,几万行的时候浏览器就崩了。

Voicelen 把导出做成了一个通用的异步任务。你在页面上点"导出",后端立刻返回一个任务号,导出员在后台慢慢生成文件。生成好了会推送通知,你去"我的导出"页面下载就行。单个任务硬上限 5 万行,再多要求你缩小筛选条件 --- 这不是技术限制,是产品刻意划的红线,避免你导出一份自己也看不完的表。

这套架构解决了什么

回到开头那个问题:Voicelen 跟一个普通的座席系统有什么区别?

区别在于分工

传统的座席系统,是"人在中间,系统在两边":系统把电话接过来,人处理,人处理完把结果录进系统。人是瓶颈,人的注意力是瓶颈,人的技能是瓶颈。

Voicelen 的分工是:每一环都可以由 AI 独立完成,人只在必要时介入。AI Agent 接电话,AI 打标签,AI 生成跟进,AI 做质检。真人客服的角色从"接电话的"变成了"处理复杂问题的"和"AI 犯错时兜底的"。

这不是说人不重要。恰恰相反 --- 因为繁琐的部分被机器接管,人才能腾出手做更有价值的判断。一个真人客服过去一天能处理 60 通电话,现在可以让 AI 处理其中 50 通,他专注剩下 10 通里客户情绪激动、需求复杂的那部分。这才是"智能"两个字应该带来的东西。

写在最后

架构讲完了,下一篇我想讲讲客户 --- 一通电话背后连着的那个人,是怎么被系统认识、跟进、分配、回收的。因为其实做呼叫中心做到最后,大家发现:通话只是手段,客户才是资产。

如果你也在做类似的事情,或者对 Voicelen 感兴趣,欢迎交流。

相关推荐
水深火乐9 分钟前
安全地生成验证码、密码和 Token
后端
小强198821 分钟前
SQL Server 慢查询怎么定位?一套从“卡”到“快”的完整排查流程
后端
水深火乐22 分钟前
interface和any
后端
步行cgn24 分钟前
MyBatis Error evaluating expression ‘ids‘. Return value (3) was not iterable 错误详
java·后端
神奇小汤圆26 分钟前
Spring Boot + LangChain4j实现RAG——从零搭建企业级知识库问答系统
后端
H_Peak31 分钟前
Python运算符与流程控制:if条件判断
后端
H_Peak33 分钟前
Python字符串操作:从基础到正则入门
后端
自进化Agent智能体34 分钟前
Hermes 子代理委派 —— 并行工作的艺术
后端
步行cgn36 分钟前
MyBatis 动态 SQL 中的 <foreach> 标签完全解析
后端
SomeB1oody2 小时前
【RustyML入门】5.0. 模型评估
开发语言·后端·机器学习·rust·教程