Background
Deep Research / Agent 属于长链路任务,单次任务可能持续进行模型调用、搜索、检索和工具调用。如果缺少统一的运行预算与循环检测,错误规划、provider 异常或重复搜索可能造成任务长时间不结束、成本失控、重复请求和不可解释的卡死。
当前需要把“Agent 最多可以做多少事”变成明确的 runtime contract,而不是依赖每个 workflow 自己约束。
Requirements
建立统一的 Run Budget,至少支持:
- wall-clock duration;
- model call count;
- tool call count;
- search / retrieval iteration count;
- input/output token budget(provider 可提供时);
- estimated / actual cost budget(provider 可提供时)。
同时提供 runaway detection:
- 连续重复相同 tool call;
- 相同或近似相同 search query 循环;
- 无新增 evidence / progress 的连续迭代;
- retry storm。
运行达到预算或命中 runaway 条件时:
- 不能直接把任务表现为普通 success;
- 返回稳定、machine-readable 的
stop_reason;
- 尽可能保存已有 evidence、partial report、trace 和运行状态;
- 用户可以看见任务为何停止,以及已完成到哪里;
- 支持合理的默认预算,并允许显式 per-run override;
- override 仍应有系统级 hard ceiling,避免无限运行。
与 #14 对接:Langfuse trace / evaluation 中应能记录 budget、consumption、stop_reason 和 loop-detection event。
Acceptance Criteria
Non-goals
- 不是简单给单个 HTTP request 加 timeout。
- 不是仅在 UI 增加“停止”按钮;重点是 runtime 自身具备可验证的硬约束。
Background
Deep Research / Agent 属于长链路任务,单次任务可能持续进行模型调用、搜索、检索和工具调用。如果缺少统一的运行预算与循环检测,错误规划、provider 异常或重复搜索可能造成任务长时间不结束、成本失控、重复请求和不可解释的卡死。
当前需要把“Agent 最多可以做多少事”变成明确的 runtime contract,而不是依赖每个 workflow 自己约束。
Requirements
建立统一的 Run Budget,至少支持:
同时提供 runaway detection:
运行达到预算或命中 runaway 条件时:
stop_reason;与 #14 对接:Langfuse trace / evaluation 中应能记录 budget、consumption、stop_reason 和 loop-detection event。
Acceptance Criteria
stop_reason=budget_exhausted或等价状态。Non-goals