Issue:Goal 拆分与排期
1. 功能描述
Goal 拆分与排期模块负责把用户的长期 Goal 生成可确认的 GoalPlanDraft:先补齐规划所需信息,再由长任务拆分 Agent 生成 Task 候选,并将候选 Task 安排到真实空闲时间。架构基准中的“长任务 / 子任务”在本产品中分别对应 Goal / Task。
GoalPlanDraft 是拆分排期完成后产出的 Plan,不是 Goal 完成后的总结。该过程可以作为耗时任务执行;结果可用后提醒用户查看,正式 Task 只有在用户确认 GoalPlanDraft 后才批量创建。
2. 用户 / 用户故事
目标用户:有长期 Goal、但难以自行拆分和安排到真实空闲时间的核心用户。
用户说“两周完成 AI 时间管理 App 产品需求报告”。主 Agent 追问必要信息,例如截止、当前基础、每天可投入时间、偏好任务粒度。信息完整后,长任务拆分 Agent 生成按时间排列的 Task 候选;用户确认后进入目标 Tab 和日程 Tab。
3. 现有做法及不足
长期目标如果只停留在文字层,用户很难把它推进到真实时间安排里。
本模块负责把 Goal 拆成可确认的 GoalPlanDraft,并把候选任务放入真实空闲时间;Goal 和 Task 的基础 CRUD 由独立模块负责。
4. 本期范围
- 主 Agent 判断 Goal 规划参数是否完整。
- 参数不足时由主 Agent 追问。
- 主 Agent 读取显式 UserProfile、当前
GoalScopedProfile、空闲时间、已有 Schedule / Todo / Task 和最近 20 条对话。
- 长任务拆分 Agent 生成 Task 候选。
- 排期能力将 Task 候选安排到真实空闲时间。
- 空闲不足时生成延期、减范围、调整强度等取舍方案。
- 用户确认后批量创建 Task。
- 支持生成中、待确认、已确认、已取消和失败等结果状态;前端可轮询状态并在结果可用时提醒。
5. 明确不做
- 不做 Subtask。
- 不做多 Goal 自动统筹。
- 不做子 Agent 追问。
- 不做子 Agent 直接读取数据库。
- 不做子 Agent 直接创建 Task。
- 不做没有完整时间的正式 Task。
6. 关键决策
| 决策点 |
备选方案 |
选择 |
理由 |
| 参数补全 |
子 Agent 追问 / 主 Agent 补全 |
主 Agent 负责 |
子 Agent 只处理完整输入 |
| 输出对象 |
直接创建 Task / 先生成 Plan |
GoalPlanDraft |
确认前不污染正式 Task |
| 排期目标 |
只拆清单 / 放入真实空闲时间 |
真实空闲时间 |
Goal 必须落到可执行安排 |
| 容量不足 |
强行排满 / 展示取舍 |
展示取舍方案 |
不制造不可执行假计划 |
| 画像输入 |
仅全局画像 / 全局 + 当前 Goal |
显式画像 + 当前 Goal 画像 |
个性化但保持边界 |
| 耗时结果 |
阻塞等待 / 轮询后提醒 |
轮询状态 + 结果提醒 |
生成完成不等于 Task 已创建 |
7. 边界与异常
- 缺少截止、可投入时间、当前基础等关键参数时,先追问。
- 空闲时间不足时,不强行创建 Task。
- 需要移动既有 Schedule 时,必须作为候选动作明确列出。
- 用户删除或修改部分 Task 候选后,需要重新校验时间冲突。
- GoalPlanDraft 过期或上下文变化较大时,应提示重新生成。
- 生成失败时保留 Goal 和用户输入,允许重试;不得创建不完整 Task。
- 结果提醒只打开确认内容,不执行
db_action。
8. 基本概念与信息结构
Goal
└─ GoalPlanDraft
├─ task_candidates
├─ schedule_adjustment_candidates
├─ capacity_warning
├─ tradeoff_options
└─ status: generating / pending / confirmed / cancelled / failed
9. Agent 输入输出约束
长任务拆分 Agent 输入由主 Agent 封装:
- Goal 信息。
- 用户显式画像。
- 当前 Goal 的
GoalScopedProfile。
- 空闲时间和已占用时间。
- 最近 20 条对话。
- 用户本次明确约束。
输出:
GoalPlanDraft 候选。
- 必要解释和容量风险。
db_action 只作为建议,必须 isNeedUser = true。
10. 验收标准
- 参数不足时,系统先追问,不生成草稿。
- 生成的 Task 候选全部属于当前 Goal。
- 生成的正式 Task 候选全部有完整开始 / 结束时间。
- Task 候选不与未纳入候选动作的既有 Schedule 冲突。
- 容量不足时展示原因和至少一种调整方案。
- 用户确认前不创建正式 Task。
- 用户确认后 Task 批量创建并同步到目标 Tab 和日程 Tab。
- 耗时生成期间可查询状态;结果可用后提醒只打开
GoalPlanDraft,不会自动创建 Task。
Issue:Goal 拆分与排期
1. 功能描述
Goal 拆分与排期模块负责把用户的长期 Goal 生成可确认的
GoalPlanDraft:先补齐规划所需信息,再由长任务拆分 Agent 生成 Task 候选,并将候选 Task 安排到真实空闲时间。架构基准中的“长任务 / 子任务”在本产品中分别对应 Goal / Task。GoalPlanDraft是拆分排期完成后产出的 Plan,不是 Goal 完成后的总结。该过程可以作为耗时任务执行;结果可用后提醒用户查看,正式 Task 只有在用户确认GoalPlanDraft后才批量创建。2. 用户 / 用户故事
目标用户:有长期 Goal、但难以自行拆分和安排到真实空闲时间的核心用户。
用户说“两周完成 AI 时间管理 App 产品需求报告”。主 Agent 追问必要信息,例如截止、当前基础、每天可投入时间、偏好任务粒度。信息完整后,长任务拆分 Agent 生成按时间排列的 Task 候选;用户确认后进入目标 Tab 和日程 Tab。
3. 现有做法及不足
长期目标如果只停留在文字层,用户很难把它推进到真实时间安排里。
本模块负责把 Goal 拆成可确认的
GoalPlanDraft,并把候选任务放入真实空闲时间;Goal 和 Task 的基础 CRUD 由独立模块负责。4. 本期范围
GoalScopedProfile、空闲时间、已有 Schedule / Todo / Task 和最近 20 条对话。5. 明确不做
6. 关键决策
GoalPlanDraft7. 边界与异常
db_action。8. 基本概念与信息结构
9. Agent 输入输出约束
长任务拆分 Agent 输入由主 Agent 封装:
GoalScopedProfile。输出:
GoalPlanDraft候选。db_action只作为建议,必须isNeedUser = true。10. 验收标准
GoalPlanDraft,不会自动创建 Task。