中央厨房一锅出五百份餐,靠的是计划周密;现点现做的馆子,靠的是反应快。智能体的任务也分这两类:批处理任务成批跑、论吞吐;交互任务实时答、论响应。两条路对时效、成本、架构的要求几乎是反着来的。
核心差异:等不等得起
批处理任务不在线等人,夜里跑两个小时也没人抱怨,追求的是单位时间处理量和整体成功率。交互任务盯着响应速度,用户等过八秒就会流失,宁可少算一点也要快答。先确认你的任务是哪种,再谈架构,方向错了怎么优化都不对劲。归属也常混淆:同一条链路,前半段取数是批,后半段答疑是交互,中间靠结果落库衔接。把整条链路硬归成一类,是很多架构别扭的根源,按环节拆开归类才算数。
时效要求不同,设计全不同
批处理可以排队、可以分批重跑、可以用便宜的大模型慢慢算,讯飞星火、Kimi 这类模型的长文本能力放在夜间批任务里很划算。交互任务要用快的模型、留好缓存、准备降级话术,高峰期宁可答得简单也不能让用户干等。同样的模型,在两种场景下的用法完全两样。监控口径也不同:批处理看完成率和总时长,一条失败不影响整体达标;交互任务看尾部长尾,百分之九十五分位的响应时间比平均值更值得盯,因为流失的用户往往集中在最慢的那一批。
成本结构两本账
批处理的钱花在总量上,每天十万次调用,单价压一分就是一大笔;交互任务的钱花在峰值上,系统要按最忙时刻的并发来配备,平时大部分能力在闲置。算容量时批处理看日均,交互任务看峰值,混着算必然一边浪费一边吃紧。调度方式也跟着不同:批处理可以挑低峰期跑,用错峰思路压成本;交互任务没法挑时间,只能在架构上留余量。同一个预算,两条路花钱的位置完全不一样。
失败处理也是两套思路,批任务失败可以整批重跑,交互任务失败只能当场兜底,恢复方式见 回滚和补偿有什么区别?分界点在哪;提示词方案上批任务更适合固定模板,理由在 固定提示词和动态拼装有什么区别?。
两条路的账,从时效一路算到失败兜底。
| 对比维度 | 批处理任务 | 交互任务 |
|---|---|---|
| 时效 | 不在线等人,夜里跑两个小时也没人抱怨 | 用户等过八秒就会流失,宁可少算一点 |
| 容量口径 | 钱花在总量上,算容量看日均 | 钱花在峰值上,按最忙时刻的并发配备 |
| 调度 | 挑低峰期跑,用错峰思路压成本 | 没法挑时间,只能在架构上留余量 |
| 失败处理 | 整批重跑 | 当场兜底 |
| 监控 | 看完成率和总时长,一条失败不影响整体达标 | 看百分之九十五分位响应时间,比平均值更值得盯 |
从批到交互的改造要点
把批流程改造成在线服务,最容易踩三个坑:一是同步等待整条链路跑完,响应慢到没法用,要改成异步加进度查询;二是把批任务的报错直接抛给用户,要换成用户能懂的话;三是没设并发上限,流量一冲就垮。反过来把交互流程搬去批跑就简单得多,砍掉实时要求,剩下的都是熟悉动作。反向搬也要留神一点:交互流程里为速度做的缓存和近似计算,搬到批处理场景可能变成正确性隐患,批任务要的是全量准确,能等就不能凑合,搬之前把这些捷径逐个排查掉。
场景速查表
- 夜里跑、量大、不看秒表:批处理
- 在线等、秒回、怕高峰:交互
- 两者都有的系统:链路拆开分别对待
先分清任务在等谁,再决定怎么设计。
批任务跑完发现问题靠复盘找原因,在线问题靠告警当场拦,两层机制见 实时告警和事后复盘有什么区别?;把批任务想成能无人看守全自动跑也是一种想当然,「Agent 能全自动搞定一切」错在哪? 有专门拆解。
换个问法再问批处理与交互任务三句
- 任务一半要快一半要全怎么办?:拆成两段,先交互给个快速结果,再批处理补一份完整版。
- 批任务也能用大参数模型吗?:能,前提是预算允许,通常关键环节用好模型、其余用便宜的分层调用。
- 交互任务怕高峰有什么土办法?:排队加预期管理,告诉用户前面还有多少人,比无限并发硬扛代价小得多。


