重试、超时、成本预算、部署与运维

重试一次看似很小,但很多任务一起失败时,重试会迅速放大成本和负载。下面从单次任务的时间与调用预算开始,安排超时、取消和部署运行,让失败有可控的收尾方式。

1. 预算

每次 run 设置:

  • 最大模型 turn;
  • 最大工具调用;
  • token/金额;
  • wall-clock deadline;
  • 单工具超时;
  • 子 Agent 数和并发;
  • 最大重试;
  • 最大产物大小。

预算到达时保存 partial result 和 checkpoint,给出明确终止原因。

2. 重试

按 provider、tool、业务动作分别配置。指数退避加入 jitter,尊重限流响应。非幂等动作重试前查询状态。记录原请求、重试原因和最终结果。

3. 部署形态

  • CLI:开发/编码 Agent,便于本地工具与 Git;
  • Web App:交互、确认和产物展示;
  • Slack/Teams Bot:消息入口,需线程、身份和权限映射;
  • GitHub Action/App:issue/PR 触发,需最小仓库权限;
  • Background Worker:长任务、队列、checkpoint;
  • Desktop:Computer Use、本地文件与应用集成。

Harness 与入口分离,同一 run contract 可被不同渠道调用。

4. 生产组件

  • API/Gateway;
  • queue 与 worker;
  • session/checkpoint store;
  • object storage;
  • secrets manager;
  • sandbox;
  • tracing/metrics/logs;
  • eval runner;
  • rate limit;
  • feature flags;
  • artifact delivery。

5. 运维

  • 健康检查不只看进程,还测模型、关键工具和存储依赖;
  • Run 有租约/心跳,worker 崩溃后可接管;
  • 版本发布保留 prompt/tool/schema 兼容;
  • 模型切换做 shadow eval;
  • 外部服务降级时明确标记;
  • 成本异常和循环调用告警;
  • 数据备份与删除流程定期演练。

6. 发布检查

  • 固定 eval 通过;
  • 迁移可回滚;
  • 配置和密钥齐全;
  • 权限最小化;
  • 关键动作幂等;
  • trace 关联完整;
  • 取消和超时有效;
  • README 与 runbook 更新;
  • 生产 smoke test;
  • 回滚版本已保存。

补充:从“一问一答”走向事件驱动

用户提交一个十分钟的构建任务后,又问“现在做到哪里了”。如果整个会话一直等构建结束,体验就会很差。事件驱动的做法是先登记任务、返回任务 ID,构建进度和结束状态随后作为事件进入系统。会话可以继续响应用户,而不是反复让模型读取同一段日志。

这里有三个容易混在一起的词:异步表示发起操作后不必一直阻塞等待;并发表示多个任务的进度交错推进;并行表示在同一时刻实际执行多个操作。写了 async 并不保证并行,也不保证模型接口允许在一个尚未补齐工具结果的回合里继续生成。运行时需要适配具体 API 的消息协议。

一个可落地的顺序是:

  1. 收到任务后,保存 task_id、会话归属、请求参数和取消状态。
  2. 执行器启动工作;输出按序号分块保存,通知只带必要摘要与位置。
  3. 事件队列接收 progress、completed、failed 或 cancelled。同一个事件重复到达时按事件 ID 去重。
  4. 会话所有者决定立即通知、留待当前回合结束,还是中止旧任务。不要让每个后台线程直接改写聊天状态。
  5. 收到结束事件后核对退出码与产物,再告诉用户结果。进程重启时从持久化任务状态恢复,而不是凭最后一条自然语言消息猜测。

推送和轮询并不互斥。支持 webhook 的服务可以主动通知;只支持查询的服务仍需要有退避和超时的轮询。选择取决于上游能力,不宜把轮询一概视为错误设计。

语音和机器人为什么需要额外的一层

语音助手不仅要“识别文字再调用模型”,还要处理用户什么时候说完、助手说话时用户插话、已经播放到哪一句。取消生成和停止音频播放也是两件事:旧音频可能已进入播放缓冲。应记录哪些内容实际被用户听到,避免后续上下文误以为整段回答都已播完。

机器人还多了真实物理状态。上层 Agent 可以选择“去取杯子”这样的目标,但轨迹控制、碰撞限制和紧急停止需要满足自身实时要求的控制系统。模型生成一个动作计划,不代表环境会一直保持截图时的样子;动作执行期间仍要感知和检查。这个主题需要专门的仿真与硬件验证,网站中的文本示例不是可直接控制设备的实现。

主题依据:AI Agents in Depth 第 6 章,固定书稿。本节补充概念与设计检查,不宣称复现其中所有产品能力。