先给结论:例外情况不要写成一句“其他情况按经验处理”,而要拆成可判定的条件、触发后的动作和兜底去向。脚本需求里最危险的不是漏写主流程,而是把人工判断中“看情况”的部分留给执行者自由发挥,导致同一类危机在不同班次得到不同回应。
写脚本需求前,先把人工处理危机时的判断分成三类:可枚举的、需要权衡的、必须由人承担的。可枚举的例外适合写入脚本,例如“同一账号在十分钟内重复发布相同投诉内容”“负面信息附带可验证的订单号”“发布者明确要求删除并留下联系方式”。这些条件能用字段和阈值描述,脚本可以自动分流。
需要权衡的例外不适合直接写死。比如一条负面内容既涉及产品质量又涉及服务态度,人工可能根据当前舆论走向决定先回应哪一层。脚本能做的不是替人决定,而是把“需要权衡”标记出来,推给指定角色,并附上判断所需的信息:原文、发布时间、传播范围、已有回应记录。
必须由人承担的例外包括涉及法律威胁、人身安全、监管问询、媒体采访请求。这类情况一旦被脚本自动回复或自动关闭,代价往往高于延迟处理。需求里应写明:命中这些条件时,脚本只做记录和通知,不执行对外动作。
面对人工经验中的例外描述,写需求时通常有三种取舍。
保留原描述。适用前提是例外本身低频、后果可控,且执行者具备同等判断力。例如“遇到明显恶意刷屏可先隐藏再上报”。保留的代价是脚本无法自动验证,执行结果依赖个人理解,后续复盘时难以区分是规则问题还是执行问题。如果保留,至少要在需求里注明:谁有权判断、判断后记录什么、多久复核一次。
改写成可判定条件。适用前提是例外能被拆成字段、阈值和动作的组合。例如把“影响比较大的负面”改写成“同一链接在多个账号下被重复提交,且提交内容包含品牌词”。改写的代价是可能漏掉阈值之外的真正危机,因此需要设置一条兜底规则:未命中任何条件的异常内容进入人工队列,而不是默认忽略。
退出脚本、交回人工。适用前提是该例外的处理代价高、误判后果重,或当前数据不足以支撑自动判断。退出的代价是响应速度下降、人力占用上升。适合退出的典型是首次出现的危机类型:没有历史样本,也没有稳定特征,脚本强行分类只会制造假阳性。
假设一个团队用脚本处理社交平台上的负面提及,人工经验里有一句“如果对方情绪激烈就先安抚”。这句话直接写进需求,执行者无法判断什么叫情绪激烈。可以改写成一组可观察条件,并注明假设:
命中任意两条时,脚本不自动回复,而是生成待办并通知值班人;命中一条时,进入普通队列。这个例子的数字只是说明比较方法,不是固定阈值。真正上线前,应先用历史记录回放,看这些条件会把多少正常内容误判为危机,再决定收紧还是放宽。
动作与下一步的关系在这里很直接:如果回放显示误判集中在某一条条件上,就先修改该条件的描述,而不是直接放弃整个例外规则。如果误判分散且无法归因,说明这类例外还不适合脚本化,应退回人工处理。
无论保留、改写还是退出,例外描述都应包含四个字段,否则执行者只能猜。
这四个字段写完后,让没有参与编写的人读一遍,看能否在不询问作者的情况下判断一条内容该走哪条路径。如果读的人需要追问,说明例外描述仍然停留在人工经验层面,还没有变成脚本需求。
例外规则调整后,不要只看“处理量下降”或“自动分流变多”。这些变化可能来自搜索需求、平台流量或采集方式的波动,不能单独证明规则正确。更稳妥的做法是固定一个观察窗口,比较调整前后同一类内容的去向分布:进入人工队列的比例、被误判后撤回的比例、以及人工接手后的处理时长。
如果误判撤回比例上升,说明条件写得太宽;如果人工队列里反复出现同一类未命中内容,说明还缺一条例外条件。此时优先补条件,而不是提高自动处理比例。危机公关里的脚本需求,目标不是让机器替人做所有判断,而是让人只在真正需要判断的地方出现。