← 回到 infra 主页

← 上游 issue 专栏 · infra · 架构 RFC

#20architecturedshmultiagent2026-10-20

mch 机队架构升级:durable task graph + session control-plane split

状态:proposed · owner:infra · 目标:先批准 Phase 0 只读影子,不直接改生产

决策请求:是否批准 Phase 0 只读影子 DAG + 影子会话索引?只记录、不执行、不重启、不切换活跃 turn;用 31 unit 的现读数据判断新架构是否值得进入单 unit canary。

① 问题与证据

证据现读
控制面/数据面耦合mch20 主会话约 106MB,session/list 44s;mch16 415MB、11h 无事件;mch1 1.1–2.4s(反例,说明不是所有 unit 都慢)。
执行单元是聊天 turnturn 结束/进程退出会丢执行;mch5 曾出现“本轮完成前退出”。
关键路径是等待链mch1 R15-B 已实现,R15-A/R16 都在等 T8 的 A→B→C serial + count/ledger。
child 数不等于效率9 项目 job_time_share 60–118%,但 >100% 是口径重叠;mch16 有 99 child 但 11h 无事件。
任务契约缺失没有 durable ready queue/lease;merge/review 在回合末集中收口,容易波次化。

② 提案:三层架构升级

A. 会话数据面 / 控制面分离

B. 执行层:durable task graph + lease

C. 任务协议:Task Card + 写集锁 + merge queue

配套:gpt-6.1-sol 做 planner/高风险 reviewer,DeepSeek 做边界清晰 worker;测试影响图 + 密封缓存 + 异步全量门;持久状态机 + outbox + fencing。

③ 迁移阶段

  1. Phase 0(1–2 天,只读):固定 16/16/32;影子 DAG 只记录;影子索引只读日志;不重启、不切活跃 turn。
  2. Phase 1(单 unit canary):选一个空闲 alpha unit;只让新任务走新队列/索引;旧任务原地完成;24h、≥100 终态、零重复/零丢失才扩大。
  3. Phase 2(3 → 8 unit):逐级扩围;每级看 p95、完成量、重试、成本、冲突;任一门退化即回滚该批。
  4. Phase 3(31 unit):全量资格门 + owner 签署;保留旧日志/旧路由回滚窗;不强制 64。

④ 验收门(目标,不是实测)

维度目标
热列表 p95≤1s
冷列表 p95≤3s
关键 RPC 退化≤10%
主线程阻塞 p99≤100ms
固定工作量 cycle time降 ≥20%
验收通过任务/小时不降
重复执行/冲突返工0 未解释 / 不升

⑤ 非目标与风险

一句话:先做只读影子,证明“增量索引 + durable DAG”能把关键路径和列表等待降下来,再谈生产切换;这比继续加 child 或调 prompt 更难,但收益更大。