第三阶段 · 上下文与长期任务第 14 / 30 章
本章目录

第 14 章 · 计划、任务状态与预算

本章目标:理解计划不是为了让回答显得有条理,而是为了管理依赖、进度、风险和停止条件。

1. 什么任务需要计划

回答一个函数含义可能只需读取一次,不必先列十步计划。跨模块功能、迁移、长时间测试和需要用户决策的任务适合显式计划。计划的价值在于把大目标分成可以验证的中间状态。

好的计划项是动作与完成条件,例如“定位认证入口并确认相关测试”,而不是“分析问题”。它还应标出依赖:没有确定接口前,不要让两个 Agent 同时实现前后端。

2. 计划是动态状态

模型在探索前不可能知道全部步骤。Runtime 可以允许 pending、in_progress、completed,并要求同一时间只有一个主步骤 in_progress。新证据出现时,Agent 可以解释原因后调整计划。

计划更新应成为事件,便于人类看到为什么路线改变。静态地展示最初计划,却不反映实际执行,会让界面产生虚假确定性。

3. 多种预算

Agent 至少有四种预算:

预算耗尽是一个终态,不等于业务失败。最终报告应说明完成到哪里、哪些证据已有、继续需要什么资源。

4. 模型路由

并非每一步都需要最强模型。仓库快速搜索、日志摘要和格式转换可以使用更快模型;架构取舍、复杂调试和最终审查使用更强推理。Runtime 根据任务类型、风险和剩余预算选择模型。

模型切换后,上下文格式与能力可能不同,因此 Provider adapter 和统一事件协议非常重要。路由还要避免频繁切换导致风格和计划不一致。

5. 完成标准进入计划

每个阶段应附验证:

探索完成:
- 找到入口、测试和项目规则

实现完成:
- diff 只包含目标范围

验证完成:
- 相关测试、类型检查通过

交付完成:
- 汇报变化、证据和剩余风险

模型不应仅因为所有代码已写就把计划标为完成。验证步骤必须独立存在。

6. 人类负责的逻辑

人类最重要的角色是定义目标优先级、不可接受风险和验收标准,而不是替 Agent 决定每条 shell 命令。计划界面应该让你容易修改这些高层决定,并把低层执行交给系统。

计划陷阱

过细计划会把 Agent 退化为机械脚本,过粗计划又无法追踪。合适粒度是每一步能独立检查是否完成,同时允许模型在步骤内部动态选择工具。