① 问题:无限循环是 Agent 头号故障
模型可能一直预测 tool_call 停不下来——它没有「任务完成」的概念。
Step 1: think → tool_call(read_file)
Step 2: think → tool_call(read_file) // 参数微调
Step 3: think → tool_call(read_file)
... 循环 50 次,token 烧完,账单爆炸
没有预算 = 无限循环 12% 的会话失控。停是工程强制,不是模型自觉。
② 五维预算仪表盘(自动播放演示实时监控)
每次 LLM 决策前检查预算,任一超限强制终止。自动播放会看到计数逐步增长、触发预警与终止。
⏱ 时间预算(上限 180s)
已用 0s · 预警阈值 80%
🔁 步数预算(上限 25 步)
已用 0 步 · 预警阈值 85%
🧠 模型调用预算(上限 30 次)
已用 0 次 · 预警阈值 90%
🛠 工具调用预算(上限 20 次)
已用 0 次 · 预警阈值 95%
📦 Token 预算(上限 15000)
已用 0 · 预警阈值 80%
③ 监控流程
1. 初始化:每个任务开始时创建五维预算
2. 检查:每次 LLM 决策前查预算(是否超限)
3. 更新:每步执行后更新计数(时间/步数/token/调用)
4. 终止:任一维度超限 → 强制终止 + 记录原因
5. 恢复:从 Checkpoint 恢复,重置预算继续
预警阈值:time 80% / step 85% / model 90% / tool 95% / token 80%。不同维度不同阈值——有的维度一逼近就停(time/token),有的允许更高水位(tool)。
④ 场景化预算:不同业务不同笼头
| 场景 | 时间 | 步数 | Token | 为什么 |
| 客服 Agent | 30s | 8 步 | 3000 | 用户在等,快最重要 |
| 分析 Agent | 180s | 25 步 | 15000 | 深度任务,允许长跑 |
| 批处理 Agent | 600s | 50 步 | 50000 | 后台任务,不受限 |
核心:预算按业务场景配置,不统一——「统一预算」要么卡死复杂任务,要么放行简单任务浪费。
⑤ 效果与收束
无预算
- 成本波动 ±300%
- 无限循环 12%
- 失控靠事后人工介入
五重预算
- 成本波动 ±20%
- 可控收敛 100%
- 超限自动强制终止 + 记录
与 A03 联动:五重预算和上下文管理是「成本线」的两只手——预算管「不能花超」,压缩管「别浪费」。预算超限时自动触发上下文压缩降级,不是直接终止。