docs: organize product documentation by domain
Replace the flat features directory with document-type and functional-domain navigation, update repository-wide links, and add a top-level documentation index. Define Task, Conversation, Job, Subjob, Run, Scheduled Task, Goal Task, and Task Center in one canonical document set. Keep Smart Heartbeat ownership separate and leave future partitioned memory explicitly undesigned.
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
# Job 与 Subjob PRD
|
||||
|
||||
## 文档信息
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 状态 | 设计中,未来能力 |
|
||||
| 版本 | 0.1 |
|
||||
| 日期 | 2026-08-19 |
|
||||
| 依赖 | [Task 与 Job 统一领域模型](./task-and-job-model.md) |
|
||||
|
||||
## 1. 目标
|
||||
|
||||
在不创建额外顶层 Task 或 Conversation 的前提下,让一个 Task 能够分解、串行、并行和委派
|
||||
多个执行单元,并将进展和结果有序汇入 Task 的同一 Conversation。
|
||||
|
||||
## 2. Job 类型
|
||||
|
||||
首期只使用有限类型:
|
||||
|
||||
- `step`:Task 内一个明确步骤。
|
||||
- `scheduled_occurrence`:Scheduled Task 的一次到期执行。
|
||||
- `delegated`:交给 Subagent 或远程执行器。
|
||||
- `parallel_branch`:并行方案或分工。
|
||||
- `aggregation`:汇总多个前置 Job。
|
||||
|
||||
类型描述执行方式,不创造新的产品对象层级。
|
||||
|
||||
## 3. 并行模型
|
||||
|
||||
```text
|
||||
Task Conversation
|
||||
└─ Coordinating Job
|
||||
├─ Parallel Job A
|
||||
├─ Parallel Job B
|
||||
├─ Parallel Job C
|
||||
└─ Aggregation Job
|
||||
```
|
||||
|
||||
- 并行 Job 使用同一个 `taskId` 和 `conversationId`。
|
||||
- 每个 Job 有独立输入快照、状态、Run、预算和输出缓冲。
|
||||
- 并行 Job 不直接同时追加助手消息。
|
||||
- Aggregation Job 或 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 状态至少包括:
|
||||
|
||||
```text
|
||||
queued → running → waiting_approval → completed
|
||||
↘ failed | cancelled | interrupted | budget_exceeded
|
||||
```
|
||||
|
||||
- 重试创建新 Run,不覆盖失败 Run。
|
||||
- 应用退出将活动 Job 标记为 `interrupted`。
|
||||
- 有外部副作用且结果未知的 Job 不自动重试。
|
||||
- 聚合 Job 必须明确处理部分成功、全部失败和取消。
|
||||
|
||||
## 7. 界面
|
||||
|
||||
Task Conversation 显示:
|
||||
|
||||
- 当前总体进展。
|
||||
- 并行 Job 数量和聚合状态。
|
||||
- 需要审批或用户输入的 Job。
|
||||
- 完成后的统一结果。
|
||||
|
||||
详细活动视图显示 Job 树、执行者、Runtime、耗时、预算、Run、错误和成果。Task Center 只显示
|
||||
Task 聚合状态,不展开 Job 树。
|
||||
|
||||
## 8. 验收标准
|
||||
|
||||
- [ ] 并行 Job 共享所属 Task 的 Conversation。
|
||||
- [ ] Job 不创建顶层 Task。
|
||||
- [ ] 并行输出不会无序污染消息时间线。
|
||||
- [ ] Subjob 深度、并发、预算和输出有界。
|
||||
- [ ] Subagent 失败能够返回部分输出和明确状态。
|
||||
- [ ] 父级取消传播到所有活动子级。
|
||||
Reference in New Issue
Block a user