跳至内容

为语音智能体设计安全的来电者身份验证

发布时间
最近更新

收听收听本文

语音智能体正从简单的 FAQ 应答工具,快速发展为可修改账户、处理交易和访问敏感客户数据的行动型系统。这一转变带来了关键挑战:在对话式 AI系统中,传统的视觉验证方式并不存在,如何验证来电者身份?

语音智能体可以更新订阅、查询账户余额或发起退款时,必须以与人工呼叫中心同样严格的标准验证来电者身份,但整个过程完全通过语音交互完成。与遵循公司政策的人工客服不同,AI 智能体需要不依赖 LLM 判断、具有确定性的工具式身份验证。

本文总结了我们作为前线部署工程师在企业部署中的成熟身份验证模式。我们将介绍 5 种核心方法,包括嵌入式组件的基于会话验证、电话专用方法和 OTP 验证,并说明如何在 ElevenLabs 平台中通过确定性 workflow 控制实现这些方法。

更重要的是,我们将说明为何不能将身份验证交给对话推断处理。它应通过隔离的子智能体、基于工具的验证和条件式 workflow 路由来构建,确保只有已验证用户才能访问特权操作。

摘要

  • 语音智能体的来电者身份验证必须具有确定性并基于工具;不能交由 LLM 通过对话推断完成。
  • 宿主应用身份验证会将现有会话数据传入智能体,因此已登录用户无需再次验证。
  • 基于知识的身份验证通过服务端工具调用,将来电者提供的账户号码或出生日期等信息与后端系统进行核验。
  • 电话部署可使用来电显示等系统动态变量静默验证身份,但由于来电显示可被伪造或共享,应结合第二重验证。
  • 一次性代码验证会通过短信或电子邮件发送代码,并通过后端服务进行核验。

确定性身份验证的架构基础

为确保只有已验证用户能访问账户相关信息,建议通过 ElevenLabs 的 workflow 严格隔离环境和访问权限。身份验证应始终通过返回布尔成功或失败结果的工具调用实现,并在 ElevenLabs workflow 构建器中配置为调度工具。

将转移条件直接关联至工具调用结果后,只有身份验证成功才能访问具备账户数据权限的子智能体,且该子智能体与未验证用户完全隔离。这可确保身份验证具有确定性,而非由 LLM 决定,并阻止未验证身份进入下游节点。

也可使用转移表达式作为可靠的转移方式。这些表达式引用由工具调用结果更新的动态变量。

实现示例

在 Salesforce 中验证用户(工具调用)。验证成功后,从 Salesforce 获取客户交易数据(另一次工具调用),再将用户转至负责使用这些数据与客户沟通、并在需要时执行其他操作的子智能体。

auth-flow

用户身份验证方法

ElevenLabs 平台原生不支持这些身份验证方法。可通过与存储身份验证数据的 CRM 或后端/数据库集成的服务端工具实现。

宿主应用身份验证

对于嵌入网站的语音智能体,宿主应用可在初始化智能体/组件时,通过动态变量传递用户会话数据(如登录状态、账户 ID 或会话令牌)。这些变量会通过相同的动态变量自动注入工具调用,使智能体无需单独验证即可从集成系统获取个性化数据。

由于用户已由宿主应用验证,这可实现无缝支持流程。可通过自定义配置完成设置,或使用 ElevenLabs 组件,在运行时通过组件配置传递变量(例如 <elevenlabs-convai dynamic-variables='{"user_id": "123", "account_tier": "premium"}'>)。

完整设置请参阅动态变量文档

基于知识的身份验证(KBA)

语音智能体要求来电者提供账户号码、邮政编码、出生日期或安全问题答案等身份验证数据。服务端工具(webhook 或后端调用)会将这些值与数据库(如 CRM 或身份信息库)进行核验。工具会返回成功/失败结果,其中包括布尔状态(is_error)和说明文本。

可通过确定性 workflow 控制实现:请求相关信息后,配置工具调度,并使用根据工具成功/失败状态分支的 workflow 条件转移边,将已验证用户路由至“特权”智能体节点。

此方法可根据欺诈风险要求,支持静态安全问题和动态“钱包外”验证。

更多详情请参阅服务端工具智能体 workflow 调度工具节点文档。

系统动态变量(仅限电话)

对于基于电话的对话(通过 Twilio 或 SIP 中继),智能体可自动访问电话专用系统变量,包括 system__caller_id(来电者电话号码)。对话开始时,该变量会自动填充。

可通过两种方式引用:

  1. 在提示词/消息中:使用双花括号引用,例如 {{system__caller_id}},系统会替换为实际值。
  2. 在工具参数中:将工具参数配置为使用这些变量,即可无需在提示词中提及它们,静默验证身份。

例如,可配置工具自动将来电显示传递至 CRM 查询端点,让智能体静默核验来电号码是否与客户登记号码匹配,以验证用户身份。除了工具调用外,也可将身份验证配置为在对话开始前执行的对话初始化 webhook。

安全提示:来电者可能使用与登记号码不同的号码,或已存储号码可能被未授权人员使用。因此,基于来电显示的身份验证应要求客户事先选择加入,或结合其他身份验证方法(如基于知识的问题)。

更多信息请参阅系统动态变量初始化 webhook文档。

高级基于知识/安全问题身份验证

智能体可通过询问一组安全问题验证用户身份,只有来电者答对预设数量的问题才授予访问权限。可提示智能体从预定义列表(如出生日期、邮政编码、宠物名字)中随机选择问题,并通过工具调用数据库验证来电者答案。

身份验证工具会返回包含当前成功次数的 JSON 响应。通过工具赋值,该次数会被自动提取并存储/更新至动态变量(如 auth_success_count)。每次验证成功后,该变量都会递增。

达到所需验证次数(如 3 次)后,workflow 表达式条件会检查动态变量值,并转至特权子智能体节点。表达式使用比较运算符(如 auth_success_count >= 3),根据身份验证状态以确定性方式控制访问权限。

Expressions

可参阅我们的边与流程控制文档了解更多信息。

一次性代码

这是一种通用方法:通过短信或电子邮件将一次性代码发送至用户设备,用户随后必须将代码告知智能体以供验证,才能获得访问权限。

具体实现流程如下:

  1. 生成代码:智能体通过服务端工具调用专用端点来启动流程。该操作会生成安全的一次性代码,并通过用户偏好的渠道(短信或电子邮件)发送。
  2. 提示用户:智能体随后要求用户提供收到的代码。在语音模式下,用户说出代码,系统通过语音转文本捕获。
  3. 验证代码:智能体通过第二次工具调用,将用户提供的代码发送给后端验证服务。后端会验证代码是否匹配、是否过期,以及是否已被使用。
  4. workflow 路由:智能体根据验证响应处理结果:成功:若代码正确,则通过成功条件将用户引导至 workflow 中身份验证后的部分。失败:若代码错误,智能体可提示用户再次输入代码,或启动备用流程(如发送新代码)。

安全注意事项:应实施速率限制以防止暴力破解;代码应设置较短有效期(3–5 分钟);还应跟踪并限制重试次数。对于语音交互,可使用确认提示,确保捕获代码时语音转文本的准确性。

使用 ElevenAgents 开始实现安全语音身份验证

这些身份验证方法是灵活的构建模块,而非规定性方案。应根据具体风险状况、监管要求和用户体验目标进行选择。客服机器人所需的安全级别不同于处理交易的银行助手。平台的灵活性可让安全策略随威胁变化和需求增长不断演进,始终兼顾保护与用户体验。

ElevenAgents 提供上述确定性 workflow 控制、调度工具和电话专用变量,因此可构建完全不依赖 LLM 判断的来电者身份验证。

探索ElevenAgents 平台,查看完整的 workflow 构建器;或联系销售,立即开始构建首个已验证身份的语音智能体 workflow。

安全来电者身份验证流程常见问题

相关内容

用高质量 AI 音频创作