ELAI S.r.l.

AI 立刻回复客户,真的能减少工作吗?

快速草稿还不够:可复现算例比较检查、返工和案例选择,解释限制及不用 AI 的替代方案。

AI 立刻回复客户,真的能减少工作吗?

回复快了,事情却可能还没解决

客户询问订单为何未送达。助手立即写出流畅回复,但客服仍要核对物流、条款及向客户作出的承诺。消息更早发出,问题却明天又回来。负责人真正需要知道的,不是 AI 写得多快,而是在保持可接受质量时,解决请求所需的总工作量是否下降。本文把检查和返工纳入可核验算例,并推导何时只对部分请求使用 AI 更合适。

算例包含一百个虚构请求,分为普通与复杂两类。时间、类别及返工案例都是教学输入,不是观测频率。没有让模型处理真实对话,没有给客服计时,也未测量客户满意度。结果是选择条件分析,不是节省承诺。附带代码复现全部自有数值结果,同时明确真实企业试验还缺哪些条件。

计时之前,先选定结果

请求是一个工作事件,不一定只是一条消息。模型中的事件从检查案例开始,到解决结束,包括可能的后续处理。为简化,假设后续一次处理总能解决,且不再重开。这是假设很强的条件。把未解决问题算作完成,会人为美化生产率的分母。真实试验需要一致的解决定义及观察窗口。

还要区分主动工作与经过时间。客户找文件的十分钟,不一定占用客服十分钟专属工作,他可能同时处理其他案例;反之,几秒生成的草稿可能需要几分钟注意力。本算例相加的是分配给事件的时长,不模拟并发、队列或期限。真实试验应分别测量人员工作量、客户等待和生成延迟。

草稿必须通过的最基本计算

M 表示人工处理每案所需分钟。辅助模式中,d 是分配的生成时间,r 是初次检查,w 是需要后续纠正时增加的工作。q 是需要该处理的案例比例。时间单位均为分钟每案;q 无单位,介于零和一。辅助平均耗时 A 包括每次发生的 d、r,以及只在返工部分发生的 qw。

A = d + r + q*w assistance is faster in this time model when A < M

这是记账平均,不是模型效果估计。它假定同类返工案例具有相同 w,边界外没有漏算成本。若时长差异大,应直接加总实际事件,或使用以发生返工为条件的平均成本。不能未经核对,就把一组频率乘另一组时间。可接受质量仍是外部约束,不是公式保证的事实。

对八十个普通案例,设 M=4、d=0.2、r=2 分钟。四案各需额外八分钟,所以 q=4/80=0.05。草稿用十二秒生成,但完整平均耗时为 0.2+2+0.05×8=2.6 分钟。该组人工总计 320 分钟,辅助 208 分钟。辅助时间的大部分用于检查和后续工作,而非生成;这是不能只看文本速度衡量收益的首个原因。

初始速度相同,结果却可能更差

对二十个复杂案例,设 M=12、d=0.2、r=10 分钟。六案各需额外二十分钟:q=6/20=0.30。草稿仍同样快,但辅助平均耗时变为 16.2 分钟,人工只需十二分钟。组总量从 240 升到 324 分钟。这并未证明真实复杂案例必然如此,而是构造了生成速度相同、却因检查和返工而应作不同决策的情形。

routine: 0.2 + 2 + (4/80)*8 = 2.6 min/case complex: 0.2 + 10 + (6/20)*20 = 16.2 min/case

有用的门槛问题是:一类案例能承受多少返工,才不丧失时间优势?当 w 为正,从 d+r+qw< M 减去 d+r,再除以 w,得 q*=(M−d−r)/w。不等式严格;到门槛时两种时间相同。若 M−d−r 为负,即使不返工也无法在此计算中更快;若门槛超过一,时间就不是区分可行比例的限制。

q < q_star = (M-d-r)/w routine: q_star = (4-0.2-2)/8 = 0.225 complex: q_star = (12-0.2-10)/20 = 0.09

普通类门槛是 22.5%,高于假设的 5%;复杂类是 9%,低于假设的 30%。这既不是模型置信度,也不是市场测量比例,而取决于所分配分钟。增加检查时间可能降低 q,却不是免费的,二者可能联动。固定一个只改另一个,能做记账敏感性分析,但不能证明某产品能实现这种改变。

总平均值会掩盖 AI 不适用的部分

两组相加,人工为 560 分钟;全部辅助为 532,少二十八分钟,即 5%。只辅助八十个普通案例,二十个复杂案例仍人工,则为 208+240=448 分钟,较基线少 20%。比较针对完全相同的一百个请求,假定最终全解决,没有通过改变构成美化某策略。能选择类别,只因类别由作者构造且已知。

表中 M 为人工,A 为全部辅助,S0 为不计分派成本的理想选择。

模式普通(分钟)复杂(分钟)总计(分钟)
M320240560
A208324532
S0208240448
一百个事件的假设工作量:人工、全面辅助及理想选择辅助。包含检查和返工,理想分派免费。为构造数据,并非客服实测。
一百个事件的假设工作量:人工、全面辅助及理想选择辅助。包含检查和返工,理想分派免费。为构造数据,并非客服实测。

图中柱形单位是一百个事件的总分钟,不是模型速度,也不是企业实际节省工时。选择性辅助更低,是因为避开了复杂组较人工多出的八十四分钟。若识别类别耗时或出错,必须追加成本。因此它是假定分类免费且正确的理想比较,不是可直接启用的方案。

百分比也要看分母。从 560 到 448 分钟,是同一工作耗时减少 20%,不等于产能增加 20%。固定可用时间时,理论比为 560/448=1.25,即多 25%,且仅在负荷与约束不变时成立。代码检查二者。两种比例都不描述客户等待、工资、人员数或真实产能,后者取决于未模拟因素。

决定把案例交给谁,也要花时间

再算一个较不理想的选择情形,但不虚构已测分类器。c 为每个请求分派所需分钟;f 为二十个复杂案例中错交 AI 的比例,普通案例仍正确分派。总时间为 448+100c+84f。84f 来自复杂组辅助较人工多出的 324−240,乘错分比例。假设同类内部错误均匀;若恰好错分最昂贵案例,就应逐案重算。

T_routed = 448 + 100*c + 84*f f=0.5, c=0.5 min => T_routed=540 min f=0.5, c=0.8 min => T_routed=570 min

若一半复杂案例分错,每个请求分派三十秒,总计 540 分钟;四十八秒则为 570,超过人工 560。无需改变草稿时间,选择优势也能消失。代码检查了两值,没有测量真实系统。因此试验必须包括执行与分派,不能把理想比较说成案例区分已经免费可用。

已发表研究补充了什么

Brynjolfsson、Li、Raymond 的 Generative AI at Work(QJE,2025)用双重差分研究向 5172 位客服分期引入工具,报告每小时解决量约增 15%,效果存在异质性。这是作者在特定环境的证据,不是我们的复现,也不能自动迁移收益。

企业自身的前后比较,可能把工具作用与请求变化或客服经验增长混淆。因此本练习不用虚构数据冒充因果研究。算术验证假设组合的后果,不能证明采用工具会造成这些后果。即便实际观测到一组人的平均效果,也不能预测每类请求。迁移决策需要测量自己的流程,区分构成与效果。

有用的试验也记录回来的工作

试验前先定义正确回复:信息最新、指令符合案例、没有未经授权的承诺;再固定识别重开及后续处理的窗口。应允许无 AI 替代方案参与,如连接已验证流程的批准文本。若只改变表达,客服仍须从零查全部信息,测量的是写作帮助,不是自动诊断。

建议但未执行的方案,是按使用前定义的难度,对授权或合成案例分层比较。模式分配应避免 AI 只拿到简单请求。同一客服看同一问题两遍,第二次可能受益于记忆,因此应控制顺序与学习。保留检查时间、必需修改、结果及重开,才能追溯差异来源。只有总平均值不能解释该改哪里。

只统计接受的草稿会引入选择,拒绝、失败尝试和回退人工都会消失。辅助模式分析也应按事先规则纳入这些案例。质量评价应采用可重复标准,并尽可能不向评价者显示文本来自哪种模式。这里不声称有人工评审或读者测试,而是在说明从记账例子走向运行证据还缺什么。

简单方案可能在哪些地方胜出

对于答案稳定的重复问题,批准模板与文档检索可能无需自由生成就能减少工作。涉及订单数据或权限的案例,信息访问质量可能比措辞更重要。领域适配的垂直模型是待比较假设,不是已证实必要条件。应使用相同案例、标准和检查成本评价各方案。技术更复杂,不自动更好。

为让机制清晰,本例未计启动成本。真实决策还涉及集成、流程更新、培训、许可和服务监督。释放时间不一定节省现金,也可能用于清理积压或改善被忽视案例。没有数据量化这些收益。因此应声明包含哪些工作及企业关心何种结果,避免重复计算描述同一现象的收益。

计算真正支持什么决策

构造的负荷中,全面辅助耗时少 5%,却恶化复杂案例;理想选择性使用少 20%。数字用于引出分类检查,并纳入审查及返工,不允许向客户承诺这些百分比。质量不足时,分钟账目有利也不够。若不能以可承受成本识别类别,选择性策略就尚未实现。

完整代码用十进制算术及断言检查总量和门槛,求和时间随类别数线性增长,不生成回复,也不拟合神经网络。结果保留假设及限制。这是 AI 辅助编辑分析,不是 EL-AI 对客户或客服的实验。没有归因任何新产品、成果或安装;价值在于可复现比较及为试验提出更好的问题。

Brynjolfsson, Li & Raymond (2025) — QJE, doi:10.1093/qje/qjae044.

from decimal import Decimal as D
from pathlib import Path
import json,sys
# Hypothetical workload only: no customers, operators, models or timings measured.
groups=[dict(key='routine',count=80,manual=D(4),draft=D('.2'),review=D(2),reworkCases=4,reworkMinutes=D(8)),dict(key='complex',count=20,manual=D(12),draft=D('.2'),review=D(10),reworkCases=6,reworkMinutes=D(20))]
rows=[]
for g in groups:
 q=D(g['reworkCases'])/g['count'];mean=g['draft']+g['review']+q*g['reworkMinutes'];limit=(g['manual']-g['draft']-g['review'])/g['reworkMinutes']
 rows.append(dict(group=g['key'],count=g['count'],hypotheticalReworkFraction=str(q),manualMinutes=str(g['manual']),assistedMeanMinutes=str(mean),breakEvenReworkFraction=str(limit),manualTotalMinutes=str(g['count']*g['manual']),assistedTotalMinutes=str(g['count']*(g['draft']+g['review'])+g['reworkCases']*g['reworkMinutes'])))
manual=sum(D(x['manualTotalMinutes']) for x in rows);allAI=sum(D(x['assistedTotalMinutes']) for x in rows);selective=D(rows[0]['assistedTotalMinutes'])+D(rows[1]['manualTotalMinutes'])
assert (manual,allAI,selective)==(D(560),D(532),D(448))
assert D(rows[0]['breakEvenReworkFraction'])==D('.225') and D(rows[1]['breakEvenReworkFraction'])==D('.09')
assert D(rows[0]['assistedMeanMinutes'])==D('2.6') and D(rows[1]['assistedMeanMinutes'])==D('16.2')
assert D('.2')*60==12 and manual-allAI==28 and D(rows[1]['assistedTotalMinutes'])-D(rows[1]['manualTotalMinutes'])==84
assert manual/selective==D('1.25')
routeLow=selective+100*D('.5')+84*D('.5')
routeHigh=selective+100*D('.8')+84*D('.5')
assert routeLow==540 and routeHigh==570
result=dict(routingSensitivity=dict(complexMisrouteFraction='.5',halfMinuteRoutingTotal=str(routeLow),pointEightMinuteRoutingTotal=str(routeHigh)),python=sys.version.split()[0],seed=None,scope='Synthetic deterministic workload arithmetic. No model, staff, customer, causal trial, rework frequency or quality measured. Assumes every episode becomes resolved after one specified rework; no queue or service-level model.',rows=rows,totalsMinutes=dict(manual=str(manual),allAssisted=str(allAI),routineOnlyAssisted=str(selective)),timeReductionFractions=dict(allAssisted=str((manual-allAI)/manual),routineOnlyAssisted=str((manual-selective)/manual)),warning='Time reduction differs from throughput increase; cannot infer observed savings or wage reductions. Draft latency and active staff time must be separated in real measurement.')
Path(__file__).with_name('results.json').write_text(json.dumps(result,indent=2),encoding='utf8')
print(json.dumps(result))

代码、数据与说明 · JSON. 教学计算使用 Python 3.14.0,图使用 Matplotlib 3.11.2。分析由 AI 辅助,不声称经过同行评审或人工审核。原创 ImageGen 封面仅作示意,不记录 EL-AI 人员、场所或实际安装。来源查阅于 2026 年 11 月 3 日。