跳转到主内容

JEV AI 与 Asterisk:用 Qwen 升级 IVR 语音智能体

在 Asterisk 语音智能体中把 JEV AI 放在 Qwen 前面:通过三个图解说明结构化决策、经过验证的路由、人工转接和更顺畅的语音循环。

AI 生成的编辑插图:佩戴耳麦的语音智能体,以及 JEV、Qwen 和 Asterisk 标识。
TechKili · AI 生成编辑插图;品牌标识不代表背书。
分享这篇文章:
本文目录

JEV AI 可以为 Asterisk 语音智能体增加专门的决策层:先判断来电者这一轮表达的含义,让简单回答走经过验证的简短路径,再把困难情况交给 Qwen。 应用可以执行哪些操作,仍由状态机决定。

构建自己的 AI IVR 智能体中,我们连接了电话系统、语音识别、受限的 LLM 解释器和确定性的对话流程。本文继续设计下一步改进:先咨询 Jev,减少普通轮次调用较大语言模型的次数。

例如,“请重复”、选择已知类别或要求人工服务,都需要范围明确的判断和适当回应。包含多个字段及更正的句子则需要更复杂的理解。让两条路径各负其责,是这次改进的出发点。

本文是计划中改进的实现蓝图,使用虚构、与具体行业无关的事件示例。它不是 Jev 已完成生产部署的报告,也不是 Jev 延迟基准测试。

JEV AI 是什么,为什么放在 LLM 前面?

TypeSafe 于 2026 年 9 月 15 日推出 Jev,将其定位为面向结构化决策的 System One 模型。它接收上下文和带类型的问题,而非生成开放式对话回复,因此适合参与 AI 智能体内部的路径选择。TypeSafe 公告

在这个 IVR 中,“位于 LLM 上层”是指 Jev 帮助选择解释路径。它不管理权限、不执行后台业务操作,也不编写随意播报的内容。应用代码把模型结果与当前对话状态结合起来。

三种问题原语对应不同任务:choice 从预先声明的选项中选择,noul 估计命题为真的概率,score 按已定义的量表评估。本方案主要使用前两种。TypeSafe 简介

带类型的输出限制了答案形式,但模型依然可能选错类别。因此,应用必须保留验证、歧义选项、澄清和人工服务。

从 LLM 解释器升级为混合式 Asterisk 语音智能体

原设计把识别后的文本和上下文交给受限解释器。新设计增加一次决策,并把原解释器保留为回退路径。

组件 在拟议集成中的职责
Asterisk 呼叫信令、媒体传输、播放和转接机制
语音活动检测与 ASR 划定发言片段并生成转写文本
Jev 根据当前上下文回答范围明确的判断问题
策略与状态机 验证结果、选择下一问题并强制确认
Pi 与 Qwen LLM 解释混合字段、复杂指代和复杂更正
预生成音频与 TTS 播放已审核的固定提示或已验证的动态文本
后台适配器 执行明确获准的读取,或准备测试请求

拟议的 JEV AI 与 Asterisk IVR 架构:ASR、Jev 决策、策略与状态机、Qwen 回退、音频与后台。标签为英语。
TechKili · 原创架构图

图 1:拟议架构。两条决策路径都进入同一验证层。按键由代码按照当前菜单解释。图中标签为英语。

明确要求人工服务时,可以不等待大模型,直接进入转接流程。简单的类别选择可以推进到下一个缺失字段。如果用户说“事件涉及设备 A,其实是设备 B,从昨天开始”,Qwen 仍有价值。

潜在收益是普通轮次减少大模型调用。不过,新增决策请求本身也有成本,尤其在需要回退时。是否改善整体体验,必须结合两条路径测量。

把来电者真正听到的问题交给 Jev

只有转写文本并不够。“二”可能选择菜单的第二项,也可能是编号的一部分。“是”可能确认摘要,也可能表示还要办理另一件事。

构造紧凑的状态对象,包含原始转写、当前状态(INTENTCOLLECTCONFIRMMOREHELP)、实际开始播放的问题、提供的选项、待填写字段和相关已验证数据。对话版本号和尝试次数由代码维护。如果查询使用年份,应在通话开始时按应用配置的时区固定。

还应记录播放进度:摘要开始播放,并不能证明用户已经听到足够内容来确认。更正或打断必须使过时的确认机会失效。

TypeSafe 支持文本状态,包括结构化 JSON;本设计不会把原始电话音频交给 Jev。文档也提醒,非英语准确率需要特别关注。必须评估来电者的实际语言,包括西班牙语,而不能假设英语结果自动适用。State 文档

每轮只选择与当前状态有关的问题:

问题 建议原语 代码如何使用
继续、重复、要求人工还是结束? choice 选择对话控制路径
新事件、状态查询还是其他请求? choice 选择支持的业务流程
选择了哪个已提供类别? choice 按当前菜单验证
是否更正了之前的字段? noul 撤销确认并检查更改
是否混合了多个字段? noul 考虑交给 Qwen 提取
是否明确需要立即人工处理? noul 应用升级策略

类别问题要包含明确的未知或歧义结果。各问题独立评估同一输入,不应依赖同一请求中另一个问题的答案。随后由代码组合结果。Choice 文档

“是或否”的答案不能提取任意文本。对于单一、直接的描述,代码可以在确认其回答待填字段后保留原始转写。拆分多个字段或解释复杂更正,则交给较大的解释器。

为每轮选择路径,同时保留应用控制权

轮次策略:优先处理人工帮助、取消及重复,然后验证简单输入或调用一次 Qwen。标签为英语。
TechKili · 原创架构图

图 2:拟议的路由策略。证据矛盾时澄清或回退;所有路径都必须符合当前对话版本。图中标签为英语。

拟议优先级是人工请求或明确风险信号、取消、重复,然后才是字段收集和更正。歧义或矛盾结果不得悄悄填入字段。

初始调优候选值为:普通类别选择的首选概率至少 0.90,且比第二选项高至少 0.25;明确判为超出服务范围时使用 0.95;通过 noul 标记明确风险、送交人工复核时使用 0.80。这些是初始策略,不是 Jev 的实测保证。较低的风险阈值优先推动人工复核,并不诊断紧急情况或替代应急流程。

Choice 的概率与 confidence 是不同字段。TypeSafe 将 confidence 描述为由概率分布计算的统计量,而不是独立测得的正确率。Noul 返回 noul 概率,没有单独的 confidence 字段。ConfidenceNoul

故障路径也需要限制:建议 Jev 请求最多等待一秒,本轮内不重试,最多执行一次回退解释。超时、服务错误或无效响应时,回到原解释器。其初始 20 秒上限是需要评估的最大等待限制,不是自然对话的目标延迟。

两条路径应输出相同的内部意图与字段契约。必须验证后才能推进状态机。Jev 客户端应与 Pi 的对话接口分离,并核实实际供应商协议;本地兼容网关的聊天接口并不自动等于 Jev 原生 API。

对话体验会怎样改变?

以下是通用事件服务的虚构示例,不是录音或真实请求。

来电者说 预期行为
“我要报告一个设备事件。” 选择支持的报告流程,询问缺失信息
在设备菜单后说“设备 B” 验证已提供的选项,进入下一字段
“请重复。” 重播当前问题,不记为字段回答错误
“是,但应该是设备 C。” 更正使确认失效,重新读出摘要
“能让我和工作人员通话吗?” 播放提示,启动配置好的人工路径
噪声或无关回答 澄清待填字段;三次失败后提供人工帮助

提供帮助后,等待用户请求或有效按键。只有对应菜单生效时,数字才选择菜单项。明确要求人工服务的用户,无须先耗尽澄清次数。

在确认阶段,“是”只对当前摘要有效,且不能存在待处理更正,并须有足够播放证据。在 MORE 状态,同一个词表示还想办理其他任务,应询问具体事项,并使用全新的任务数据。

原型的完成提示仍需准确:“测试请求已准备好,尚未提交。”真实集成必须核实后台结果后才能宣告成功。查询状态同样需要授权;知道一个编号并不能独立证明访问权限。

同时改善语音循环,而不只优化模型路由

概念性语音流程:ASR、Jev 路由、预生成提示、TTS、800 毫秒等待提示触发及打断处理。标签为英语。
TechKili · 原创架构图

图 3:概念性语音生命周期,并非实测时间轴。800 ms 表示从开始处理算起的拟议等待提示触发点。图中标签为英语。

提前生成问候、菜单、澄清问题和转接提示。使用经过验证的数据构造动态摘要,在通话期间合成。包含来电者数据的动态音频应保留在该通话隔离的内存里,而非共享提示目录。

从开始处理起,安排在 800 毫秒时播放简短等待提示。如果回答提前就绪,取消提示;如果最终音频在提示播放期间就绪,停止提示,开始有用的回答。提示不得延迟已经获准的查询。等待音乐只用于真实后台查询,不应覆盖每次模型推理。

语音打断必须停止排队音频,并使旧工作失效。Asterisk 的 FLUSH_MEDIA 可以清除排队媒体,但应用仍要为模型回复和生成音频维护取消信号与版本检查。Asterisk WebSocket 文档

挂断时取消任务与计时器;字段改变时拒绝旧版本结果。转接时,应区分目的端应答、桥接完成与真人接听:自动队列欢迎语并不证明有人接听。

如何引入改进并测量结果

定义三个明确模式:off 保留原解释器;shadow 收集决策用于评估,但原路径继续控制对话;enforce 允许经过验证的决策选择简短路径,同时保留回退。问题、阈值和音频目录应与代码一起版本化,只在需要时创建较重的解释器。

测试更正、歧义菜单选择、混合请求、模型不可用、无效结果、静音、打断、迟到回复和挂断。加入来电语言中的口述数字、按键,以及“是,但……”之类表达。功能完成与转写质量要分别报告。

在宣称 AI 电话智能体更快前,测量以下项目:

测量 意义
发言结束到第一段有用回答真正可听见 捕捉来电者实际等待
ASR、决策、回退、后台和 TTS 耗时 定位瓶颈,而非归咎于某个模型
简短路径覆盖率和错误率 判断何时能安全跳过大模型
回退频率和回退总耗时 暴露新增决策步骤的成本
更正、无效确认和转接结果 检查对话是否正确
取消、超时和负载下的分布 检查成功单轮演示之外的行为

上一篇文章分别测量了语音识别与解释,这些数据不能证明 Jev 架构的速度。我们也不会把其他决策模型的测量重新命名为 Jev 结果。应固定 Jev 版本,使用相同语料并记录服务条件,然后再通过真实电话重复测试。失败和取消的工作也必须报告。

实现 JEV 集成的实用任务说明

下面的任务说明适合已有可用 ASR、Qwen 和 TTS 服务的智能体:

在现有受限解释器之前增加 Jev 决策客户端。
保留当前状态机对对话和操作的控制权。
示例与测试使用虚构的通用事件。

用转写、当前状态、已播放问题、选项、待填字段、已验证数据
以及对话版本构造状态。根据状态选择独立的 Choice/Noul 问题。
核实供应商 API,不假定兼容 chat completions。

验证全部结果,提供明确的未知结果及按类别可调阈值。
概率不等于授权。复杂或不确定输入最多进行一次回退解释。
决策期限为 1 秒,同一轮内不重试决策请求。

保留更正、当前摘要确认、依上下文解释 DTMF、取消、挂断清理
和人工服务。固定提示用预生成音频,动态回复使用验证后的文本
和 TTS。800 ms 等待提示必须可取消,且不能阻塞流程。

增加 off、shadow、enforce 模式。记录路径和耗时元数据,默认
不记录来电者文本或音频。测试两条路径、故障和旧版本结果,
准确报告执行过的测试。测试准备与获准的真实后台写入应分开。

有价值的交付物是适配器与可测试的路由策略,而不是用更长的提示把电话控制权交给模型。

决策层能否本地运行?KEV 与 Qwen

如果希望自行部署,Kev 是独立的开源类 Jev 决策模型家族,基于 Qwen3.5。仓库提供模型、训练代码和服务说明,包括 0.8B、4B 和 9B 版本。Kev 不是换了名字的 Jev,API 相似也不证明准确率、校准或延迟相同。

本设计可迁移的部分是应用契约:结构化决策经过相同的验证与状态机边界。本地替代方案仍需独立进行多语言评估、硬件规划和供应商适配,并核实许可证及所选模型的部署条款。

JEV AI 与 Asterisk 常见问题

Jev 会替代 AI IVR 中的 Qwen 吗?

本设计让 Jev 处理范围明确的路由判断,Qwen 继续解释复杂表达,应用决定使用哪条路径。

Jev 会直接听电话或生成语音吗?

本集成在 ASR 之后把文本交给 Jev。预生成提示及独立 TTS 服务生成语音,Asterisk 负责传输和播放。

每个电话都会更快吗?

目前没有证据。简单轮次可能避免大模型请求,但回退路径会增加决策步骤。ASR、后台和音频的延迟仍然重要。

哪些控制必须留在模型之外?

授权、当前摘要确认、后台执行、通话隔离,以及取消和转接规则。新版本应让这些边界更容易测试,同时让常见对话更顺畅。