diff --git a/docs/design/02-main-session-delegation.md b/docs/design/02-main-session-delegation.md index ff75eac..012b2f7 100644 --- a/docs/design/02-main-session-delegation.md +++ b/docs/design/02-main-session-delegation.md @@ -208,9 +208,42 @@ Agent 收到消息后的自主行为(不是硬编码步骤): - 需要协作 → @mention 其他 Agent 3. **执行**:通过 subagent 或直接执行 4. **Review**:检查 sub 结果质量 -5. **写回**:产出 + 状态 + handoff comment +5. **写回**:产出 + 状态 + handoff comment(handoff comment 必须 ≥ 50 字符,用于幻觉门控第三信号检测) -### 4.3 庞统 Review 消息格式 +### 4.3 消息优先级与中断策略 + +Agent main session 可能同时收到多种消息(新 task / mention / review),按以下优先级处理: + +**优先级顺序**(Prompt 中明确告知 Agent): +1. 🔍 **Review 消息**(庞统的打回重做 / GOAL_ACHIEVED)— 最高优先级,先处理再继续当前工作 +2. 💬 **Mention 消息**(其他 Agent 的协作请求)— 高优先级,完成当前 sub task 后立即处理 +3. 📋 **新任务消息**(ticker 投递的广播任务)— 普通优先级,排队处理 + +**中断策略**(Prompt 中明确告知 Agent): +- 收到 review 消息时 → 暂停当前 sub task,先完成 review,再决定是否继续 +- 收到 mention 消息时 → 完成当前 sub task(如果 sub 正在执行),然后处理 mention +- 收到新任务消息时 → 排队等待,当前任务完成后再处理 +- 任何时候一个任务完成后,检查是否有更高优先级消息排队 + +**队列管理**: +- Agent 自己维护任务队列(在对话中记忆),不需要 Daemon 管理 +- 每一步开始前先检查新消息,如果有高优先级消息就调整顺序 +- 完成当前任务后,从队列取下一个 + +### 4.4 Subagent 背压控制 + +Agent 同时 spawn 的 subagent 数量有硬性上限: + +| 参数 | 值 | +|------|-----| +| 单轮同时 sub 上限 | 3 | +| 单任务累计 sub 上限 | 8 | + +超限时 subagent-delegation skill 自动拒绝,并在 prompt 中提醒 Agent:"已超出 subagent 数量限制,请等待现有 sub 完成后再创建新 sub。" + +在 subagent-delegation skill 中通过计数器维护(Daemon 不参与 subagent 计数)。 + +### 4.5 庞统 Review 消息格式 ```markdown 🔍 一轮结束,需要你的 review