Agent 一旦跑起来,问题往往不是模型答不出来,而是同时冒出来的待办太多:接口被限流、任务互相打架、人工审核队列堆成山。这篇不聊协议和框架选型,只讲工程上怎么把并发闸门和人工审核这两件事接顺:从任务分级、队列设计,到审核台该长什么样、卡住了按什么顺序排查。
Agent 跑起来之后,真正的麻烦往往不是模型答得对不对,而是同一时间涌进来的待办太多:接口被限流、任务互相抢资源、人工审核那一列越排越长。这时候再去调提示词基本没用,得先把并发这件事当成工程问题来处理。
这篇不讲框架选型,也不讲协议,只讲两件必须接顺的事:怎么控制并发节奏,怎么把人工审核塞进流水线还不堵住自动任务。核心思路是先分档、再设闸、最后给审核台和排查顺序定规矩。
先给任务分档,再谈并发数
很多人一上来就问并发开到多少合适,其实这个问题在没分档之前没有答案。先把任务按「可自动完成 / 需抽检 / 必须人审」打上标签,只有第一档才允许高并发放量。分不清归哪档的,默认降到抽检档,宁可慢一点也别把不可信的结果直接发出去。
- 可自动完成
- 输出格式稳定、错了也能改,抽检即可
- 需抽检
- 有一定风险,按比例抽查,抽到问题再回滚
- 必须人审
- 不可逆操作或对外发布,逐条过人工
并发上限不是拍一个数,而是取三者最小值:接口侧额度、你的下游写入能力、审核人力单位时间能处理多少。前两个可以到 /official-api 和 /official-api/providers 核对当前账号口径,第三个只能自己测。三个里哪个最小,就以哪个为准,别按最大那个设。
- 每档配独立队列和令牌桶,人审任务排队别把自动任务一起堵死
- 接口额度按账号口径走,不要按另一套账号的额度估算
- 审核人力上限拿真实数据估:单位时间处理量乘以可用人数
- 不清楚归哪档的任务,先按低一档处理,跑稳了再提档
- 探索阶段一次只跑几十条,直接串行更省事,不用提前上队列
队列、重试与降级怎么排
并发控制分两层:单机内用信号量或 worker 池限制同时在跑的请求数,跨进程跨机就要上集中式队列,Redis 或数据库任务表都行。千万别用 sleep 来拼节奏,那只是把问题往后推,流量一涨照样崩。
| 场景 | 推荐做法 | 注意点 |
|---|---|---|
| 单进程多任务 | 信号量 / worker 池 | 池大小别超过下游写入能力 |
| 多机同一账号 | 集中式队列 + 令牌桶 | 额度统一发,别各机各算 |
| 被上游限流 | 指数退避 + 抖动重试 | 重试次数和总耗时都要设上限 |
| 重试仍失败 | 按降级顺序往下一级走 | 每级打日志,方便复盘 |
重试一定要有上限,超限就落到降级分支,而不是一直挂着。降级顺序建议是:换备用模型、降并发继续排队、只做抽取不做生成、最后转人工。每一级都要有日志标记,否则出问题你不知道是哪一级兜住的。
- 并发数和 QPS 是两个量,前者是同时在跑,后者是单位时间发出,两个闸都要设
- 只压一个往往还会被限流,别以为设了并发数就万事大吉
- 上游抖动导致的失败,到 /ai-status 和 /benchmarks 看当时的记录,别当成自己代码的 bug 反复改
- 重试间隔要有抖动,避免所有任务同一秒一起重发
- 降级分支的日志里带上任务 ID 和降级原因,后面查起来省事
人工审核台要具备什么
审核台最容易犯的错是让人来回跳上下文。模型输入、模型输出、风险标记、一键通过/驳回/改写这四件事必须在同一屏上看完。审核员每多切一次页面,单位时间处理量就往下掉一截,积压会更快。
- 四件套同屏输入、输出、风险标记、操作按钮放一屏;验证方法:让审核员不问人就能完成一条
- 结构化回写通过、驳回、改成某段文本,都要以字段形式落库;验证方法:下游能直接消费,没人去手动改数据库
- 按风险排序高风险插队,低风险支持批量勾选;验证方法:高风险任务的等待时长明显短于低风险
- 操作留痕每条审核动作记录操作人、时间、结论;验证方法:能回溯到具体是谁在什么时候改的
审核积压时不要一边灌量一边等,动作要有顺序:先暂停新任务入队,再通知审核方并给出积压量,然后把抽检档临时降成全审或全放。顺序错了,积压只会继续涨。
上线后怎么观察和调参
上线不是结束,观察指标没设好,问题会以你想不到的方式冒出来。至少盯四个量:队列长度、平均等待时长、审核平均处理时长、自动通过率。这四个量的变化比单看错误率更早暴露问题,尤其是自动通过率突然掉下来的时候。
| 指标 | 看什么 | 异常时先查 |
|---|---|---|
| 队列长度 | 是否持续增长 | 入队速率 vs 处理速率 |
| 平均等待时长 | 是否突然拉长 | 下游写入或审核人力 |
| 审核处理时长 | 是否变慢 | 审核台操作步骤是否变多 |
| 自动通过率 | 是否骤降 | 提示词或阈值是否刚改过 |
- 并发上限先往小设,稳定观察一两天再加,每次只调一个参数
- 审核环节设超时,超时的任务要么降级要么标异常,别无限期挂中间状态
- 每次改提示词或阈值都记一笔,配一小批固定用例回归
- 自动通过率掉了先看最近改过什么,别急着重写逻辑
- 参数调整记录和站内 /guides 里的排查思路对照着看,少走弯路
常见问题
Agent 并发太高,人工审核完全跟不上,最直接的办法是什么?
先限流再谈优化:把必须人审的任务单独放进一条低并发队列,其余任务继续正常跑。然后给审核环节设积压阈值,超过就自动暂停入队。不要指望加人一次性解决,先让系统在过载时能自己刹住,再谈提高审核效率。
人工审核一定要放在 Agent 流程中间吗?
不一定。按任务性质分:不可逆动作(发送、扣款、删除)必须前置拦截;只是产出草稿或建议的,可以后置审核,让 Agent 全速跑完再统一过一遍。后置能显著提高吞吐,代价是错的成本由下游承担,所以要先确认错了能不能撤回。
并发数和 QPS 到底该限制哪个?
两个都要限制,但作用不同:并发数控制同时在跑的请求量,防止资源和连接被打满;QPS 控制单位时间的请求总量,防止触发接口侧限流。常见做法是并发用信号量、QPS 用令牌桶,任一个到顶就排队,别只压其中一个。