aps-agent/docs/round-65-aps-end-to-end-par...

12 KiB
Raw Blame History

第 65 轮多 agent 并行实施方案:端到端闭环 APS 排产内核

更新日期:2026-08-02

1. 并行实施总览

本轮任务重量:重型。

规模依据:同时涉及 MRP/库存净算、制造需求图、求解器原子性、DTO/Validator、工作流/API、P2/P3 门禁、MES、前端和真实数据验证;核心影响面为 CRITICAL。

确认来源:用户已明确回复“确认 Round 65 推荐方案”。

本轮使用 3 个第一波 worker、1 个第二波前端 worker和 1 个独立审计 worker。主 agent 负责 GitNexus 门禁、计划审计修复、接线集成、真实运行、浏览器验收和最终判断。

因用户明确禁止提交/推送/合并,且当前 289 项工作区变更是权威基线,本轮采用无提交适配:内部 worker 在 forked workspace 修改互斥文件,回传精确 diff/文件清单;主 agent 仅接收经过审查的改动,不创建或推进目标分支。

W1:制造需求 / 供应事件 / 全局净算内核(新文件为主)
W2:原子柔性排产 + 发布/MES 安全门禁
W3:SchedulingProblemV2 + 独立 Validator + 外部 Skill 验证边界
主 agent:API/工作流接线、兼容层、数据迁移、集成验证
W4(第二波):前端阶段状态、阻断与真实浏览器流程
Audit:只读集成审计

2. 依赖图

计划审计 PASS
├─ W1 制造需求与供应图
├─ W2 原子排产 / MES fail-closed
└─ W3 V2 契约 / Validator
        ↓
主 agent 接线:prepare → solve → validate → materialize → publish → dispatch
        ↓
Focused backend tests PASS
        ↓
W4 前端阶段状态与 API 消费
        ↓
MOM 负向 + 康尼/fixture 正向 + 浏览器验收
        ↓
全量黄金 / Node / Web build / diff / GitNexus detect_changes
        ↓
独立审计 → 修复 → 复验 → 收口

3. Worktree / 工作区规划

已确认的无提交适配

标准 round 协议通常从目标分支创建 round/worktree 并提交 worker 成果。本项目当前不能照搬:

  • main HEAD 不包含现有 289 项权威成果;
  • 用户禁止提交、推送、合并;
  • 从旧 HEAD 创建干净 worktree 会得到错误基线。

因此采用:

  • 主工作区 D:\ItemSpace\14.工业智核\aps-agent:受保护集成区。
  • multi-agent forked workspace:继承当前会话上下文,worker 只写指定文件。
  • 禁止任何 worker 使用 git checkout/reset/clean/stash/commit/push/merge。
  • worker 回传修改路径、focused tests、diff 范围和残余风险。
  • 主 agent 接收前运行 git diff -- <paths>,发现越界立即拒收。
  • 现场数据 server/data/**、.env、数据库、release 产物和日志全部只读保护。

4. Worker 划分

W1:制造需求与供应事件内核

目标:把商务订单、多层 BOM、库存/在途、采购/委外和 MAKE 子件转换为唯一、可守恒的制造需求图。

写入范围(互斥):

  • server/aps_domain/closed_loop_problem.py(新)
  • server/aps_domain/supply_netting.py(新)
  • tests/golden/test_closed_loop_scheduling.py(新)

禁止修改:

  • mrp.py、flex.py、pool_engine.py、workflow.py、gateway/app.py
  • 现场数据和现有测试

验收:

  • 跨订单共享库存只分配一次。
  • MAKE/BUY/SUBCONTRACT 数量与 pegging 守恒。
  • 时间分段在途/采购/委外供应事件生效。
  • BOM 环、缺失路线和不可信供应显式阻断。
  • 当前 MOM 数据只产生需求/阻断,不产生生产订单或工单。

W2:原子排产与发布/MES 安全门禁

目标:修复部分工单写入并统一柔性发布/下发失败关闭。

写入范围(互斥):

  • server/engines/pool_engine.py
  • server/aps_domain/mes.py
  • tests/golden/test_flex_atomic_schedule.py(新)
  • tests/golden/test_flex_publish_mes_gate.py(新)

禁止修改:

  • MRP/需求图、DTO/Validator、API、前端、现场数据

验收:

  • 第 N 道硬失败时,本订单 0 VL、0 WO、0 资源/模具/计数残留。
  • 每个 WO 都有唯一 VL;woCount 等于实际工单数。
  • DRAFT、孤儿、不完整、硬阻断或证据漂移的柔性版本不能进入 MES 预览/确认/执行。
  • 现有幂等、补偿和固定轨行为保持兼容。

W3:V2 契约与独立 Validator

目标:建立所有本地/外部算法共享的完整输入输出和失败关闭验证器。

写入范围(互斥):

  • server/aps_domain/scheduling_problem_v2.py(新)
  • server/aps_domain/scheduling_validator.py(新)
  • tests/golden/test_scheduling_validator_v2.py(新)

禁止修改:

  • 现有 scheduling_dto.py、引擎、API、前端和现场数据

验收:

  • V2 包含 Requirement、SupplyEvent、OperationActivity、Resource、ObjectivePolicy、ConstraintPolicy。
  • Solution 包含 activity identity、时间、资源、未排需求、硬违反、assumptions 和 provenance。
  • Validator 拒绝重叠、错序、越日历/维保、错能力、物料未齐套、孤儿、重复 activity、证据哈希漂移。
  • 可把合法 solution 转为待物化活动,但本 worker 不直接写 world。

主 agent:接线与兼容层

写入范围:

  • server/aps_domain/flex.py
  • server/aps_domain/orders.py
  • server/aps_domain/mrp.py(仅必要接线/全局净算兼容)
  • server/aps_domain/workflow.py
  • server/gateway/app.py
  • server/contracts.py、shared/schemas/**(如新增 HTTP 契约)
  • apps/web/src/api/types.ts、apps/web/src/api/client.ts(契约阶段)
  • 迁移/初始化和集成测试

责任:

  • 修改前逐符号 impact,API handler 修改前 api_impact。
  • 收敛为唯一 prepare → solve → validate → materialize 事务边界。
  • 建立 P2 flex.schedule.publish,保留固定轨兼容。
  • 提供制造准入/阶段/阻断/负荷/未排需求 API。
  • 不在接线中伪造 ASM、班组、模具或到货。

W4:前端阶段化业务流程(第二波)

依赖:后端契约和 focused tests 稳定后开始。

写入范围(互斥):

  • apps/web/src/orders/OrderPanel.tsx
  • 新增 apps/web/src/orders/* 阶段/阻断组件
  • apps/web/e2e/closed-loop-scheduling.spec.ts(新)
  • 必要样式仅限闭环排产命名空间

禁止修改:

  • 后端、通用认证、全局布局、现场数据

验收:

  • UI 区分“已分解 / 准入通过或阻断 / 排产草案 / 已发布 / 已排生产 / MES 可下发”。
  • MAKE 建议不得冒充生产订单。
  • 显示 39 缺路线、67 模板/缺能力等聚合和逐项原因。
  • 硬阻断时不展示绿色“排产完成”;提供数据维护/候选确认入口。
  • Playwright 覆盖 MOM 负向与完整 fixture 正向阶段。

Audit worker:独立集成审计

只读范围:本轮计划、全部 diff、测试输出、真实运行与浏览器证据。

验收:严格按 AUDIT: PASS|FAIL 输出;无 blocking finding 才可收口。

5. 主 agent 先行门禁

实施前必须完成:

  1. impact(run_flex_schedule)、impact(sync_flex_orders_to_sales)、impact(PoolEngine.solve) 已有结果复核;CRITICAL 已向用户报告。
  2. 对 preview_dispatch、stage_dispatch、apply_dispatch、发布执行函数运行 impact。
  3. 若修改 /api/flex/schedule、MRP、发布或 MES 路由,先运行 api_impact。
  4. 保存现场 world/master.db 和关键源文件 SHA 清单。
  5. 记录当前 8003/5173 健康和浏览器基线。

6. 分阶段集成顺序

  1. 集成 W1 新模型和测试;不接生产路径,先证明需求/供应守恒。
  2. 集成 W3 Validator;用 fixtures 验证非法 solution 全部失败关闭。
  3. 集成 W2 原子性与 MES 门禁;优先消除 P0 执行风险。
  4. 主 agent 接线到 run_flex_schedule 和 P2 发布;运行后端 focused tests。
  5. 接入 W4 前端;运行 Web build 与 Playwright。
  6. 执行真实数据、全量回归、detect_changes 和独立审计。

7. Worker 回传格式

每个 worker 必须报告:

  • 完成状态;
  • 修改文件;
  • focused 测试命令和结果;
  • 验收标准逐项结果;
  • git diff -- <write scope> 范围检查;
  • 关键问题、解决方案、残余风险;
  • 明确声明未提交、未推送、未合并、未触碰现场数据。

发现跨边界依赖时先 send_input 通知主 agent 或相关 worker,不得自行修改对方文件。

8. 测试与证据资产

本轮必须保留可重放资产:

  • 跨订单共享库存 fixture;
  • MAKE/BUY/SUBCONTRACT 多层 BOM fixture;
  • 第五工序缺能力的原子性 fixture;
  • 合法/恶意外部 Skill solution fixtures;
  • MOM--00280 隔离负向验收脚本/断言;
  • 康尼或完整隔离 fixture 正向验收;
  • Playwright 闭环阶段测试。

9. 审计与修复

  • Worker 自检后,主 agent 运行 focused + 集成 + 全量验证。
  • 独立 audit worker 检查目标覆盖、集成风险、验证充分性、越界改动和文档证据。
  • 仅 blocking findings 触发修复;优先回给原 worker,最多三轮同类修复。
  • 修复后重跑直接测试、受影响测试和全量门禁。

10. 用户进度事件

需要报告:

  • 计划审计通过并开始实施;
  • worker 完成或出现阻断;
  • P0 MES 风险修复完成;
  • 制造需求/Validator 接线完成;
  • 真实数据和浏览器验收完成;
  • 独立审计结果与修复;
  • 最终收口或外部阻断。

11. 清理与保护

  • 不删除、移动或重置用户/未知变更。
  • 不清理 server/data/** 现场状态,不执行 git clean/reset/checkout。
  • 关闭完成/失效 agent,清理仅由本轮产生且已确认无用的临时文件。
  • 不提交、不推送、不合并、不发布。
  • 结束时复核 8003/5173、git status、world/master.db 摘要和 agent 状态。

12. Worker focused 验证命令

  • W1:.venv\Scripts\python.exe -X utf8 -m pytest tests/golden/test_closed_loop_scheduling.py -q
  • W2:.venv\Scripts\python.exe -X utf8 -m pytest tests/golden/test_flex_atomic_schedule.py tests/golden/test_flex_publish_mes_gate.py -q
  • W3:.venv\Scripts\python.exe -X utf8 -m pytest tests/golden/test_scheduling_validator_v2.py -q
  • W4:npm run build --prefix apps/web;npx playwright test e2e/closed-loop-scheduling.spec.ts --project=chromium(在 apps/web 下,隔离后端)
  • 主 agent 接线:上述 focused 集合 + tests/golden/test_contract_sync.py + 受影响 MES/MRP/审批测试。

13. Pre-target-merge 停止点

全量验证和独立审计通过后,主 agent 必须先形成 pre-target-merge 总体报告,自问并说明:哪些结论依赖 fixture、哪些真实数据仍阻断、是否存在未覆盖的外部系统/硬件/权限风险、当前 dirty 基线是否出现无关变化。本轮默认保持未提交、未合并;没有新的用户明确授权,不执行 commit/merge/push/publish。

14. 执行结果(2026-08-03)

  • 第一波 W1/W2/W3、第二波 W4 与首轮 Audit 已结束;Audit 返回 7 个 blocking finding。
  • 审计修复按互斥边界追加 W-EVIDENCE、W-V2RES、W-PROVENANCE、W-E2E;主 agent 独立完成 WMS 精确版本、订单读幂等、API/UI 集成与全量验证。
  • W-EVIDENCE:完整 V2/资源快照 evidence,TEAM/TOOLING/层级/寿命漂移失败关闭。
  • W-V2RES:多资源契约、组织层级容量、班组并发与模具寿命。
  • W-PROVENANCE:稳定 sourceHash/problemId 与外部 Skill 业务日期。
  • W-E2E:生产 create_app() + 内存 world 的隔离服务,真实浏览器正负闭环 2 passed。
  • 主 agent:WMS Saga 不沿用旧 DRAFT;/api/orders 恢复真实状态;订单 GET 不再无条件写现场 world。
  • 全量门禁:黄金 979 passed、Node 60 passed、Web build passed、Playwright 2 passed。
  • 所有 worker 已关闭;最终独立复审 AUDIT: PASS。未提交、未推送、未合并、未发布,保留 pre-target-merge 状态。