# 单智能体 · 多任务 · 多智能体编排策略（质量优先）

> **版本**：2.1.2  
> **目标**：在保障**全书风格一致、防漂移与防碎片**的前提下，避免多智能体协作**断链卡顿**；以**质量为最高约束**，再根据运行中**可观测信号**灵活调整策略。

---

## 1. 三层目标（必须同时满足）

| 层级 | 含义 | 主要抓手 |
|------|------|----------|
| **一致性** | 叙事、术语、数据口径全书统一 | `GLOSSARY.md`、`.fbs/smart-memory/session-resume-brief.md`、`esm-state`、体裁场景包 |
| **防漂移** | 不因会话变长而偏离 Brief / 读者画像 | 每章写作前重读 **Chapter Brief**；阶段切换对照 `chapter-status` |
| **防碎片** | 避免多路并行产生无法合并的段落 | 默认**串行**；并行时**文件级隔离 + team-lead 单点合流** |

---

## 2. 单智能体 · 多任务（默认形态）

**适用**：同一对话内连续处理多章、多文件、检索 + 写作穿插。

| 原则 | 说明 |
|------|------|
| **顺序优于并行** | 同一轮最多改 **2 个文件**（S3 约定）；完成一件再派下一件，避免上下文挤爆与风格分叉。 |
| **任务显式化** | 用户一次提多件事时，team-lead **列出队列**（最多 3 条用户可执行下一步），写明当前执行哪一条。 |
| **风格锚点** | 写作前必读：`session-resume-brief`（语气/术语）+ 本章 `Chapter Brief`；术语冲突以 `GLOSSARY.md` 为准。 |
| **信号再分派** | 若轻量质检（如 `quality-auditor-lite`）显示某章 **P0 集中**，则**暂停扩写**，先收口该章再开新章。 |

---

## 3. 多智能体（并行 / Sub-Agent）

**适用**：用户明确要求、或策划/校对/审计等**边界清晰**任务。

### 3.1 防断链（卡顿）— 硬性约定

1. **磁盘为唯一真值**：状态以 `.fbs/chapter-status.md`、成稿路径、`.fbs/gate-run-log.jsonl` 为准，**不以对话「已完成」为准**。  
2. **长结果先落盘**：子任务完整输出写入约定路径，消息体只发**摘要 + 路径**（见 `multi-agent-horizontal-sync.md`「结果落盘规范」）。  
3. **超时与 partial**：每个子任务设 `timeout` / `maxRetries`；超时必须交付 **partial**（已完成范围、未完成范围、风险），由 team-lead 决定是否重派或改串行。  
4. **禁止同路径竞争写**：并行时一人一文件或 team-lead 指定隔离目录；公共台账（如 `chapter-status`）**仅 team-lead 或单一 Owner 写**。  
5. **失响恢复**：先读磁盘现有成稿 → 再决定是否覆盖或续写；禁止在未知文件状态下重复派单。

### 3.2 正文写作默认

- **默认单 Writer 串行**；多 Writer 并行仅当用户知情且已做 Brief / 依赖对齐（详见 [`multi-agent-horizontal-sync.md`](./multi-agent-horizontal-sync.md)）。

### 3.3 S3.5 扩写（复盘 2026-04-14 硬约束）

| 项 | 约束 |
|----|------|
| **计划** | 无 `.fbs/expansion-plan.md` + **用户确认** → **禁止**扩写改稿 |
| **并行度** | 扩写类任务 **≤2 章** 同时改写；禁止 4 路等非写作子智能体野蛮并行 |
| **子智能体** | **禁止**使用 `code-explorer` / 纯检索类 subagent 承担**正文扩写** |
| **字数** | 扩写后必须 `node scripts/expansion-word-verify.mjs`；对用户与台账报告的字数 **须与脚本一致** |
| **临时稿** | 并行时先写 `*.expanded.md`，验证通过后再替换正式章文件 |
| **取消** | 用户中断并行后须 **diff 扫描** 目标文件，再决定是否回滚 |

权威：[`s3-expansion-phase.md`](../01-core/s3-expansion-phase.md)

---

## 4. 质量优先 + 过程信号 → 策略弹性

在**不降低 P0 质量门禁**的前提下，允许按信号调整**并行度、深度质检轮次、是否先合稿**。

| 信号（示例） | 建议调整 |
|--------------|----------|
| **S/P/C/B 轻量扫描**某章高分、无 P0 | 可加快该章收口，资源挪向弱章 |
| **全景/增量质检**显示 **P0 密集** | 减并行、先修 P0；必要时单章闭环后再扩写 |
| **search-ledger** 缺 S0/S2 证据 | 暂停扩写，补检索与合同记录 |
| **用户明确赶进度** | 在说明风险前提下，允许先 **partial 交付** + 待办台账，但不跳过已配置的 **enforce 门禁** |
| **子智能体超时频发** | 缩短并行面、加大串行、或拆分任务 `scope` |
| **术语 / 衔接争议** | 上升 team-lead，决议写入 `writing-notes/` 再动正文 |

**原则**：信号用于**调度与深度分配**，不用于**跳过**已声明的质检层级或 `search-policy` 阶段义务。

---

## 5. 与其他文档的关系

| 文档 | 角色 |
|------|------|
| [`multi-agent-horizontal-sync.md`](./multi-agent-horizontal-sync.md) | 磁盘协议、写入边界、失响与 shutdown |
| [`workbuddy-agent-briefings.md`](../01-core/workbuddy-agent-briefings.md) | 宿主委托话术、任务-智能体映射 |
| [`skill-authoritative-supplement.md`](../01-core/skill-authoritative-supplement.md) | 宿主约束、长结果落盘 |
| [`memory-layer-matrix.md`](../01-core/memory-layer-matrix.md) | 真值分层，避免叙事与台账混淆 |
| [`s3-write-constraints.md`](./s3-write-constraints.md) | 每轮文件数与串行 |

---

## 6. team-lead 执行检核（简表）

- [ ] 本轮是否明确**单线或多线**、**谁写台账**？  
- [ ] 并行任务是否均有 **deliverable 路径 + timeout**？  
- [ ] 写作前是否已拉齐 **Brief + 风格锚点**？  
- [ ] 出现异常时是否优先读**磁盘**再决策，避免空转重试？
