一通正在被自动应答的来电旁并列着两条分岔的处置路径

一、难点不在会说话,在认错对象

海外有个小团队做了这么一件事:部署能对话的模型去接打给受害者的诈骗电话、回复钓鱼短信,用对话把对方的时间消耗掉。据公开报道,这个团队人数很少、已完成融资,并与骗子进行了大量对话。这些数字与说法都不构成本篇的判断依据,我们只关心它作为一种系统形态的问题:这类系统的技术难度从来不在”会说话”,而在”认错了人怎么办”。

传统风控的直觉是漏报比误报危险——放过一个攻击者损失大。对抗型系统刚好把它反过来:主动去接、主动去回,意味着系统会对外拨出、会主动接触未知号码。一旦判定错,代价不是”这条被误杀了”这种可以申诉恢复的后果,而是对着一个真实的人——可能是刚换号的普通用户、可能是银行或运营商的客服外线、可能是一位老人的家人——打过去说了一段冒充身份的话。

所以这类系统的评估指标必须非对称设计。误伤一个正常用户的成本,远高于漏掉一个攻击者;而工程上表达”非对称”的方式不是把阈值调高一点,是把不同置信度下允许做的动作彻底分开。

二、先把判定问题写成能被核查的形式

大部分争论来自没把”对方是攻击者”这句话定义清楚。要写成三项可核查的东西:

  • 输入到底是什么。是这通电话的语音转写文本,还是包含主叫号码特征、通话时长、开场话术、对方是否索要敏感信息在内的多路信号。只靠开场话术判定,会被换剧本轻松绕过;只看号码特征,会把大量正常号码牵连进来。
  • 证据分几种强度。话术模式、要求屏幕共享或转账、索要验证码,属于强证据;口音、语速、通话时段属于弱证据;号码来源与归属属于辅助证据。弱证据可以参与打分,但不能单独支撑主动动作。
  • 退出线在哪里。低于某条置信度就不做任何对抗动作,转为静默记录;命中”可能是正常用户”的任何一条排除项(号码在受保护名单内、通话中出现明确的机构身份、对方提及正在办理的业务)立即结束并标记待复核。这条线的具体数值不是关键,关键是它必须存在于配置里、可审计、可回滚,而不是写在模型提示词里靠自觉。

还要额外留一项:把”系统判断错了”当成一类必需要被观测的输出来采集,而不是当成不会发生的意外。不记录误判的系统,永远不知道自己错在哪里。

三、非对称代价落到动作权限上

有了分级,接下来要规定每一级能动什么。原则很简单:置信度不足时,只允许被动动作;主动动作只在最高档、且满足全部前置条件时才开放。

判定档位 系统当前能确认什么 允许的动作 明确禁止的动作
仅可疑 只命中弱证据或号码来源特征 静默记录元数据,不接听、不回复 任何主动外呼、任何自动回复
倾向攻击 命中若干话术特征,但未达确认条件 被动应答或让来电正常振铃,标记人工复核队列 主动拨出、伪装身份表述
已确认 强证据齐备且经人工或双通道校验 在授权范围内继续会话,保持全程留痕 涉及任何账户、资金、系统权限的操作
命中排除项 出现疑似真实用户或机构身份 立即中止并转入人工处置 继续对话、任何形式的试探

主动外呼这一档,即便置信度足够,还要有第二重闸门:允许接触的号码来源要来自事先约定的名单,且频次上限由平台侧统一控制,不由单个会话自行决定。这不是效率问题,是责任问题——一次误拨出去的电话,暴露的是运营主体的身份,而对方完全可以按骚扰来处理,此时系统好不好用不重要,谁能证明它不是骚扰才重要。

这也是为什么洹拓不建议任何客户把它当成”可以批量外呼”的能力来规划:一旦动作变成批量,误伤数量随规模线性上涨,而单个会话里再好的判定也兜不住总量层面的失控。

四、对话系统自身的安全边界

愿意把自己的模型接到电话线上,就要接受一个事实:它现在面对的是会主动诱导它的对手。这跟做客服机器人的威胁模型完全不同。

第一条,不给它任何权限。系统不能连到邮件、通讯录、账户、内部工单或任何可执行动作的接口。诈骗剧本的核心就是引导对方”装个软件””点个链接””报个验证码”,一个具备执行能力的对抗系统,等于把攻击者最想拿到的东西放在它伸手可及的位置。

第二条,不给它真实个人信息。为了让对话”像受害者”而把真实姓名、住址、亲属关系塞进上下文,本质上是把用户数据交付给一个正在与攻击者通话的通道,这些信息会被原样带走。脚本里需要的身份表述要有授权依据:要么是虚构的、且与任何真实自然人不重合的设定,要么是当事人在明确知情下授权使用的范围,并且这份授权要能查到人、查到时间、查到边界。

第三条,对话内容按可能被回传来设计。攻击者会录音、会拼接、会把系统的话术反过来用于别人。所以脚本里不能出现”我是某某机构的””你的账户不安全”这类可被挪用来威慑他人的句式,也不能给出可被复制的行动指引。

五、合规红线要由法务事先定义,而不是事后追认

这类系统的启用条件不应该由工程师判断。至少要提前书面确认四件事:

  1. 通信内容的采集与保存边界——是否录音、保存多久、谁能访问、当事人在什么时点被告知;记录本身也是敏感数据,留存越久风险越大。
  2. 跨地域号码如何处理——不同地区对通话录音的同意要求、对外呼行为的限制差别很大,同一套策略不能全球通用。
  3. 身份伪装的适用场景限制——在哪些情形下允许使用虚构身份,哪些情形一律不允许,这条线要写成可判定条件,而不是”合理范围内”。
  4. 什么情况下可以开启——由法务给出启用与停用条件,包括出现投诉后的强制暂停机制。

把这四件事交给法务事先定义,不是因为工程做不了,而是因为一旦出事,能保护团队的不是”我们判断它确实是骗子”,而是”我们在开启前拿到了书面授权、按边界执行、并且有留痕”。

六、复核与度量:别让好看的指标替真相说话

人工复核不能是形式。做法上有两条:一是按档位设抽样复核比例,高置信档也要抽,因为人只复核低置信样本的话,模型的自信错误永远看不见;二是复核发现的误判必须回流到判定标准——改证据权重、改排除项、改退出线,而不是只把那一条记录标注为”判错”。只改单条记录的系统,会在同一个坑里反复出错。

效果度量要设得诚实。”消耗了对方多少时间””进行了多少轮对话”这类指标很容易做成好看的数字,因为它们对误伤完全无感:跟一个真实用户聊得越久,指标反而越漂亮。真正该盯的是三个数——误伤率(被判为攻击者但经复核确认是正常用户的比例)、被识破率(对手判断出这是机器,这个指标同时是安全性信号)、以及定义清楚之后的真实拦截量(”拦截”到底指对方主动挂断、指未造成受害人损失、还是指成功拖延时间?口径不统一,任何对比都没有意义)。

企业如果要自建同类能力,我们的建议是先做一个只被动记录、不主动交互的版本:不接听、不回复、不外呼,只在受控条件下采集与标注,跑一个季度左右的误报基线。这一步看起来什么都没做,但它回答了这个系统最难的那个问题——在没有对抗动作的前提下,你的判定有多准。这个数拿不到,后面所有主动动作的成本都无法估计,而它一旦要付,付的是别人的电话和公司的身份。