第十六节 计划与待办状态
[!ref] 详解见用户手册「计划与待办」节。
16.1 计划(Plan)状态机
| 状态 | 触发 | 下一态 |
|---|---|---|
| 起草中 | 助手开始写计划 | 草稿就绪 |
| 草稿就绪 | 助手发出完整计划 | 已接受 / 已修改 / 已拒绝 |
| 已修改 | 用户编辑后回交 | 起草中(再补完善) |
| 已接受 | 用户点击「接受」 | 进入执行 |
| 已拒绝 | 用户点击「拒绝」 | 助手重写 |
16.2 待办(Todo)状态
| 状态 | 图标 | 说明 |
|---|---|---|
| 待办 | 尚未开始 | |
| 进行中 | 助手当前正在做 | |
| 完成 | 已完成 | |
| 失败 | 已失败或被跳过 |
16.2.1 待办核对与自报暂停
| 项 | 取值 |
|---|---|
| 触发点 | 一轮收尾、待办清单仍有未完成项,且最后一次更新清单之后又调用过其他工具(提问、工具加载、记忆检索等辅助工具不算;读取与分析类算) |
| 手段 | 补一条隐藏 user 消息(source = auto_todo_nudge),要求只核对清单(标完成 / 改写 / 删除),本轮不执行未完成项、不追问是否继续 |
| 搭车 | 本轮已有其他自动续跑消息时,核对只作为附言并入该消息,不额外多跑一轮 |
| 收手 | 核对这一轮结束后不再核对;核对轮内的读取核实不算新工作;用户手动停止的那一轮不补核对 |
| 自报暂停 | 模型输出 <todo-status>paused</todo-status> 即视为"按用户要求暂缓",核对随即抑制,直到待办清单发生变化。该标签不入正文;在轨迹面板中以「自报暂停」步与「暂停待办」计数呈现 |
| 以提问收尾 | 干活的一轮以向用户提问收尾同样抑制核对;核对轮自己的提问不算 |
| 跨压缩 | 暂停意图随上下文压缩保留,压缩后不会重新开始核对 |
| 持久化 | 暂停意图随会话落盘,重启后继承 |
| 子代理 | 询问求助不下放给子代理;无人值守场景不派发等待用户的表单 |
16.2.2 会话目标(Goal)状态
| 状态 | 含义 |
|---|---|
active(进行中) |
正在推进 |
paused(已暂停) |
用户手动暂停 |
idle(暂停中) |
目标存在但当前无 Agent 在执行;浮窗给出「继续推进」按钮 |
complete(已完成) |
已标记完成 |
budget_limited(预算耗尽) |
Token 预算用尽,Agent 进入收尾模式;可点「继续」放行或调大预算 |
| 项 | 取值 |
|---|---|
| 面板内编辑 | 可就地改 objective 与 Token 预算;改 objective 把状态拉回 active 并在下一轮注入更新引导,只改预算不影响进度 |
| 预算留空 | 即不限 |
| 自动续转 | 带停滞感知:连续空转 4–5 轮即拦截,不再烧满轮次上限 |
| 子任务在跑 | 停滞感知冻结;该类续转轮次不计入 cap |
| 与待办核对 | 两者搭同一条注入通道并行:核对作为附言并入续转消息,不互相饿死 |
| 用量计数显示 | 点击循环切换:原始 / 千分位 / 紧凑 / 百分比;有子代理时可展开「自身 / 子代理 / 工具调用」构成 |
| 斜杠命令 | /goal <目标>、/goal budget <N>、/goal pause、/goal resume、/goal complete、/goal clear |
16.3 跨折叠保留
历史折叠发生时,下列字段始终原样保留在新摘要中:
- 计划当前状态(起草中 / 草稿就绪 / …)
- 计划的最新版本号与差异概要
- 待办列表的全部条目与其状态
- 用户已确认的关键决策("接受了 v3 计划")
- 上下文必需事实(路径、版本号)
