Skip to content

Proposal:Goal 拆分与排期 #14

Description

@znnnnnnn-wil

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. 本期范围

  1. 主 Agent 判断 Goal 规划参数是否完整。
  2. 参数不足时由主 Agent 追问。
  3. 主 Agent 读取显式 UserProfile、当前 GoalScopedProfile、空闲时间、已有 Schedule / Todo / Task 和最近 20 条对话。
  4. 长任务拆分 Agent 生成 Task 候选。
  5. 排期能力将 Task 候选安排到真实空闲时间。
  6. 空闲不足时生成延期、减范围、调整强度等取舍方案。
  7. 用户确认后批量创建 Task。
  8. 支持生成中、待确认、已确认、已取消和失败等结果状态;前端可轮询状态并在结果可用时提醒。

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。

Metadata

Metadata

Assignees

No one assigned

    Labels

    FullSpec完整规格提案:影响面较大,需要写清楚动机、范围、不做、备选方案、接口/数据结构、原型、验收标准Proposal-Acceptedproposal

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions