Files
goodbuddy/docs/prd/task-and-job/job-and-subjob-prd.md
T
mesalogo f44a0dc907 feat: improve desktop reliability and customization
Address reliability and consistency gaps across Agent Runtimes, persistence, settings, Knowledge, Magic Notes, Smart Heartbeat, and the download site. Runtime processes now have bounded lifecycle cleanup and atomic configuration rollback, while model packages and persisted mutations recover safely.

Add a configurable global shortcut, protect unsaved work, improve modal and keyboard behavior, localize the built-in project without rewriting stored data, and lazy-load heavy renderer routes under enforced bundle budgets. Align project forms and disabled controls with shared typography and interaction states, and strengthen website release metadata validation and navigation accessibility.

Release note: 修复 Runtime、设置、知识库、魔法笔记与智能心跳中的可靠性和交互一致性问题;新增可配置全局快捷键,改进无障碍与加载性能,并强化官网下载校验。
2026-08-20 10:11:06 +08:00

3.3 KiB
Raw Blame History

Job 与 Subjob PRD

文档信息

项目 内容
状态 设计中,未来能力
版本 0.1
日期 2026-08-19
依赖 Task 与 Job 统一领域模型

1. 目标

在不创建额外顶层 Task 或 Conversation 的前提下,让一个 Task 能够分解、串行、并行和委派 多个执行单元,并将进展和结果有序汇入 Task 的同一 Conversation。

2. Job 类型

首期只使用有限类型:

  • stepTask 内一个明确步骤。
  • scheduled_occurrenceScheduled Task 的一次到期执行。
  • delegated:交给 Subagent 或远程执行器。
  • parallel_branch:并行方案或分工。
  • aggregation:汇总多个前置 Job。

类型描述执行方式,不创造新的产品对象层级。

3. 并行模型

关联 Conversation
  └─ Coordinating Job
       ├─ Parallel Job A
       ├─ Parallel Job B
       ├─ Parallel Job C
       └─ Aggregation Job
  • 并行 Job 使用同一个 taskIdconversationId
  • 每个 Job 有独立输入快照、状态、Run、预算和输出缓冲。
  • 并行 Job 不直接同时追加助手消息。
  • Aggregation Job 或 Task 协调器按确定顺序生成一条进展或结果消息。
  • 用户可以按 Task 查看有界活动和聚合状态,但不选择或展开单个 Job;主 Conversation 保持可读。

4. Subjob

Job 可以创建有界 Subjob

  • 默认最大深度 2。
  • 默认最大并发 3。
  • 默认最大子项数、模型调用、Token、耗时和输出大小由父 Job 预算限制。
  • 子级只能使用父级已授权能力的子集。
  • 父级取消、失败或超时后,活动子级必须取消。

5. Subagent

Subagent 是 Job 的执行者:

  • 专家选择和路由记录在 Job 上。
  • Subagent 的原始流式输出进入有界 Job 缓冲和活动记录。
  • 完成、失败和部分输出都返回父 Job。
  • Subagent 不获得独立 Task Center 条目或 Conversation。

6. 状态与恢复

Job 状态至少包括:

queued → running → waiting_approval → completed
                 ↘ failed | cancelled | interrupted | budget_exceeded
  • 重试创建新 Run,不覆盖失败 Run。
  • 应用退出将活动 Job 标记为 interrupted
  • 有外部副作用且结果未知的 Job 不自动重试。
  • 聚合 Job 必须明确处理部分成功、全部失败和取消。

7. 界面

当前产品 UI 的对象层级止于 Task,不提供 Job/Subjob 树、独立页面或导航入口。

关联 Conversation 和 Task Center 只显示:

  • 当前总体进展。
  • 并行执行数量和聚合状态。
  • 需要审批或用户输入的 Task 状态。
  • 完成后的统一结果。

活动与 Runtime 可以按 Task 显示执行者、工具、耗时、预算、错误、审批和成果事件,但不把 Job、Subjob 或 Run 暴露为可选择、可展开或可操作的产品对象。内部标识只用于关联与审计。

8. 验收标准

  • 并行 Job 通过所属 Task 写入同一关联 Conversation。
  • Job 不创建顶层 Task。
  • 并行输出不会无序污染消息时间线。
  • Subjob 深度、并发、预算和输出有界。
  • Subagent 失败能够返回部分输出和明确状态。
  • 父级取消传播到所有活动子级。
  • 当前 UI 只展示到 Task,不显示 Job/Subjob/Run 层级。