9.2 KiB
Task Center PRD
文档信息
| 项目 | 内容 |
|---|---|
| 状态 | Scheduled Task 与项目范围跟随已实现;Goal/Event Task 与完整操作待实施 |
| 版本 | 0.5 |
| 日期 | 2026-09-17 |
| 依赖 | Task 与 Job 统一领域模型 |
| 界面归属 | 通用助手工作栏与执行空间 |
1. 产品定义
Task Center 是工作栏中的单实例 Task 索引,范围固定为当前项目。顶部显示当前会话统计, 下方管理本项目全部会话的任务。点击条目打开其关联 Conversation,并定位或展开对应 Task。
每个 Task 只关联一条 Conversation;一条 Conversation 可以关联零个、一个或多个 Task。 Conversation 不因为关联 Task 而改变对象类型。
应用内只有一个 Task Center Tab,不提供全局或所有项目入口,也不为每个项目创建独立实例。
2. 收录边界
收录:
- 用户明确创建或确认的 Task。
- Scheduled Task、Event Task 和 Goal Task。
- 未来由用户确认创建的其他顶层 Task。
不收录:
- 没有显式 Task 关联的普通 Conversation。
- 普通模型请求或工具调用产生的内部执行记录。
- Job、Subjob、Run、工具步骤或 Subagent。
- Smart Heartbeat 配置、报告和建议。
- 仅用于审计的活动记录。
当前产品 UI 的对象层级止于 Task。Task Center、左侧会话列表和 Conversation 任务区都不显示 Job/Subjob/Run 树、独立详情或路由。
3. 列表信息
每条 Task 至少显示:
- 名称和所属项目。
- 关联 Conversation 标题。
- Task 类型和触发来源。
- Ask / Execute 模式。
- 当前聚合状态。
- 最近一次面向用户的进展。
- 最近活动时间。
- 等待审批、失败或需要关注状态。
- 下次计划时间(如适用)。
- 累计执行时间:汇总该任务历次执行请求的有效区间,不使用父 Task 从创建到结束的生命周期。
Task 行只显示聚合后的用户状态,不要求用户理解内部 Job/Run。
4. 范围
FR-TC1:当前项目是唯一范围,列表只显示 projectId 匹配的 Task。切换项目刷新列表;
同一项目内切换会话只更新顶部统计,不按当前会话筛掉项目任务。没有活动项目时提示选择项目。
历史范围偏好不恢复全局或所有项目视图;范围收窄不删除历史任务或修改其项目绑定。
4.1 当前会话统计
FR-TC2:顶部紧凑展示当前会话消息总数与 Agent 累计回复时间。累计时间按每轮请求的有效 执行区间相加,包含轮内工具执行和审批等待,不计轮间空闲;不重复累加子专家用时。 缺失历史或时间证据不完整时提示“部分历史用时不可用”,已知用时不能表示为完整总量。 远程执行缺少可靠时间证据时显示不可用或不完整,不用事件接收时间虚构远程用时。 没有当前会话时提示选择会话,项目任务列表仍保留。 项目名称放在当前会话统计卡片内部的顶部。
FR-TC3:任务累计执行时间按其历次执行请求汇总,周期触发仍显示在同一任务内。 未执行与缺失执行证据必须区分;具体关联和统计边界见技术设计。
5. 交互
- 点击条目打开关联 Conversation,并定位到该 Task。
- FR-TC4:项目任务标题右侧放置“+”新建按钮,不再提供独立筛选图标。
项目任务列表默认收起,标题与数量、新建入口保持可见;点击标题切换展开状态。
标题旁同时显示当前项目顶层任务中处于
running状态的数量(如“2 运行中”),不受筛选或收起影响;为零时省略。 展开后直接显示全部、进行中、暂停、已结束状态选项,初始选中进行中;收起不清除已选条件。 - 进行中包含
idle、queued、running、waiting_approval、failed和interrupted; 暂停对应paused,已结束包含completed和cancelled。分类只影响列表筛选, 不改变任务状态语义;任务行保留具体状态、错误信息和原有操作。 - 关联当前范围内顶层任务的审批直接显示在任务卡内,可拒绝或仅此次允许;有待审批的任务 归入“进行中”,审批随任务卡参与状态筛选,不再重复显示独立审批分类或区域。
- 普通会话或无法关联到当前范围内任务的审批保留独立处理区域,不受任务状态筛选影响; 该区域仅在存在此类审批时显示。没有审批时不显示审批标题、空提示或徽标。
- 审批徽标统计当前项目范围内全部待审批请求,不受状态筛选影响。
- 支持立即运行、暂停、恢复、取消、编辑和删除。
- 后台变化更新状态和徽标,不自动抢占当前页面。
- FR-TC5:创建默认立即执行并关联当前会话,也可选择本项目其他可用会话或新建会话, 改用单次定时、每日或每周计划。内容必填,名称可留空并从内容生成,详见创建规则。
- 立即运行、重试和恢复在 UI 上都是 Task 操作,内部 Job/Run 不单独显示。
- 完整消息留在 Conversation;工具、审批和错误可以在活动或 Runtime 中按 Task 查看; 独立交付物在成果中查看。
6. 左侧 Conversation Task 列表
左侧最近会话列表承担轻量 Task 发现,不替代 Task Center:
▾ 产品发布讨论 10:24
每周进度总结 每周 · Execute · 等待中 ●
发布前检查 单次 · Execute ✓
- 无 Task 的 Conversation 保持现有单行样式。
- 有 Task 时在行最左侧显示独立展开按钮;父会话行不重复显示任务标签或数量。
- 更新时间默认靠近行右侧,更多操作按钮不常驻占位;悬停会话行时,按钮替换右侧时间显示。 键盘焦点进入会话行或操作菜单展开时,按钮仍保持可见。会话标题溢出时保持右侧区域固定, 并在自身裁切区域内横向滑动展示完整名称。未溢出标题不滑动,减少动态效果偏好下使用完整 标题提示而不产生位移。
- 展开后每个 Task 子项左侧显示名称,右侧显示本地化的模式、计划和状态标记,与父会话 更新时间对齐;已完成使用带勾成功点并将文案保留给辅助技术。列表不显示 Job、Subjob、 Run 或工具步骤。
- 点击 Conversation 标题打开聊天;点击 Task 打开同一 Conversation 并定位该 Task。
- 新建 Task 后首次自动展开;用户手动折叠后保持选择。
- 后台状态变化不强制展开;Task 状态持续显示在展开后的子项和 Task Center 中。
- 默认最多显示 3 个 Task;“查看全部 N 个任务”打开该 Conversation 的完整任务区。
7. Conversation 任务区
包含 Task 的 Conversation 顶部显示可折叠任务区:
本会话有 2 个任务
[每周进度总结] [发布前检查] [管理任务]
选择 Task 后显示名称、模式、聚合状态、计划、下次执行、最近结果和 Task 级操作。工具、审批、 错误和成果通过 Task 关联显示,但不暴露 Job/Run 层级。
模式来源遵循Scheduled Task 的执行时配置: 未运行计划跟随会话当前有效模式,已执行 Task 保留实际模式;计划旧值不得覆盖展示。
8. 删除关系
- 删除 Schedule 只停止后续触发,不删除 Task、Conversation 或历史。
- 删除 Task 停止其计划并移除关联,默认保留 Conversation 和既有消息。
- 删除最后一个 Task 后,左侧 Conversation 的展开按钮消失。
- 删除 Conversation 前必须显示关联 Task 数量,并先停止或结算活动执行。
9. 验收标准
- Task Center 只展示产品级 Task。
- 一条 Conversation 可以关联并展开多个 Task。
- 点击 Task 打开正确 Conversation 并定位到对应 Task。
- 左侧会话列表通过独立展开按钮显示带任务图标和本地化摘要的 Task 子项。
- 当前 UI 不显示 Job/Subjob/Run 树或独立页面。
- Scheduled Task 显示下次时间,但每次触发不新增 Task 条目。
- 普通模型请求和工具调用不会误显示为 Task。
- 删除 Task 默认保留 Conversation 和既有消息。
- Smart Heartbeat 不进入 Task Center。
- FR-TC1:仅显示当前项目任务,切换会话不缩小列表;无项目时显示选择项目提示。
- FR-TC2:消息总数与累计回复时间随当前会话更新;轮内工具和审批计时,轮间空闲不计时,历史缺失及远程证据不足有提示。
- FR-TC3:多次执行汇总到同一任务,不按父 Task 生命周期计算用时。
- FR-TC4:标题右侧仅保留新建;展开列表直接显示状态选项,默认进行中,收起后保留所选条件。
- FR-TC5:创建默认立即执行和当前会话,可选择本项目其他会话、新会话及定时周期,空名称从内容生成。
- 任务中心保持单实例、默认存在且不可关闭。
本次新增或变更的验收项未在本轮文档同步中执行验证,保留未勾选状态。