aps-agent/docs/round-66-solver-isolation-p...

6.8 KiB
Raw Permalink Blame History

Round 66 多智能体并行实施计划

日期:2026-08-03

1. 执行策略

采用三条互斥写边界并行,主 agent 负责 GitNexus 门禁、协议集成、全量测试、真实运行和最终审计。共享 dirty 工作区是权威基线;worker 不提交、不清理、不触碰现场数据。

2. 依赖图

W66-PROTOCOL(新协议/runner/worker) ─┐
                                      ├─ 主 agent 接线与集成
W66-RUNTIME(probe/sidecar/env/lock) ─┤
                                      └─ W66-VERIFY(测试资产)

W66-VERIFY 只新增测试/fixture,不修改业务文件;可在协议接口稳定后通过 agent 通信对齐。

3. Worker 边界

W66-PROTOCOL:solver 子进程协议与执行器

独占写:

  • server/engines/solver_process.py(新增)
  • server/engines/solver_worker.py(新增)
  • 可新增 shared/schemas/solver-subprocess.schema.json 与对应生成/契约测试;若新增 schema,必须同步 server/contracts.py 和 apps/web/src/api/types.ts,否则不新增跨层 schema。

验收:正常、非零退出、fatal marker、timeout、非法响应、协议 mismatch;父进程不死;结构化错误;进程树回收。

验证:python -m pytest tests/golden/test_solver_subprocess.py -q(测试文件由 W66-VERIFY 提供时可先用自检脚本)。

W66-ENGINE:CP/HYBRID 接线与父进程物化

独占写:

  • server/engines/cp_engine.py
  • 必要时 server/engines/base.py(仅错误元数据契约,避免改工厂)

测试独占:

  • tests/golden/test_cp_engine.py
  • tests/golden/test_cp_cumulative.py
  • 可新增 tests/golden/test_solver_engine_isolation.py

验收:仅优化在 child;父进程 materialize;健康结果等价;所有失败 world 不变;CP/HYBRID 不伪装成功。

W66-RUNTIME:Sidecar、探针与环境身份

独占写:

  • server/sidecar.py
  • scripts/check_solver_runtime.py
  • apps/desktop/sidecar.cjs
  • packaging/requirements-runtime.lock(新增;只锁定,不修改本地环境)
  • tests/golden/test_solver_runtime_probe.py
  • apps/desktop/test/sidecar.test.cjs 或对应现有 sidecar 测试文件

验收:probe 内部 timeout;来源/版本/Conda/user-site 报告;fatal+exit0 拒绝;PATH 清理;普通/冻结 solver-child 入口。

W66-VERIFY:故障注入与存活验收

独占写:

  • tests/golden/test_solver_subprocess.py(新增)
  • tests/golden/test_solver_failure_world_atomic.py(新增)
  • tests/e2e/round66_solver_isolation_server.py(如需)
  • apps/web/e2e/solver-isolation.spec.ts(如 UI/API 能观察失败)

不得修改业务源码。验收覆盖恶意 child、timeout、协议截断、父进程继续健康、现场 world 不变。

4. 主 agent 集成职责

  • 对每个现有符号编辑前运行 GitNexus impact;HIGH/CRITICAL 先告警。
  • 用 Serena 检查符号体和引用;不修改 get_engine()。
  • 协调 W66-PROTOCOL 与 W66-ENGINE 的 request/response 契约。
  • 运行 focused -> 受影响 -> full golden -> Node/Web -> runtime probes -> browser/API 存活验证。
  • 运行 detect_changes(compare main),区分共享基线和本轮切片。
  • 回写 plan.md、完成矩阵、CHANGELOG、算法/运行时文档和 Round 66 状态。
  • 派独立只读 audit agent;blocking finding 修复后再收口。

5. 禁止项

  • 不修改 get_engine(),不在 workflow 单点包裹后声称全入口安全。
  • 不让 child 写 parent world、DB、审批、文件或外部系统。
  • 不把 fatal 当 RuntimeError 后静默 RULE 成功。
  • 不重建 .venv、不安装/升级依赖、不打包/签名/发布,除非用户另行授权。
  • 不使用默认 PATH python 作为发布通过证据;它只作为故障探针。
  • 不提交、不推送、不合并、不清理用户变更。

6. 集成顺序

  1. 协议和 worker 自检。
  2. CP/HYBRID 接线与健康等价测试。
  3. runtime identity、sidecar child 和 PATH 清理。
  4. 故障注入、world 原子性和 8003 存活。
  5. 全量门禁、文档、独立审计。

7. 回传格式

每个 worker 报告 impact、修改文件、测试命令/结果、验收逐项、边界检查、残余风险、未提交/未触碰现场数据声明。

8. Pre-target-merge

最终只形成未提交的 pre-target-merge 报告;用户未授权时保留主工作区和所有证据,不执行 target advance、push、merge、release 或 cleanup。

9. Worker 执行回传

Worker 写入边界 结果 验收摘要
W66-PROTOCOL solver_process.py、solver_worker.py、协议测试 Done 协议 v1、digest/requestId、fatal/exit/timeout/非法响应/mismatch、进程树回收
W66-ENGINE cp_engine.py、引擎隔离测试 Done CP/HYBRID child 优化、父物化;失败 UNAVAILABLE、0 PO/WO、无 RULE 静默降级
W66-RUNTIME Sidecar、runtime probe、desktop env、runtime lock Done (source) Anaconda 稳定拒绝;两个 venv 各 5 次通过;源码 --solver-child -I trusted root bootstrap 后真实通过
W66-VERIFY / 主 agent focused/full/Node/Web、故障注入、服务与浏览器 Done (local) focused 80;full golden 1029/2 warnings;Node 60、Web/质量门禁与真实运行通过
W66-DOCS 本轮指定的 8 个 docs 文件 Done 同步真实运行、数据边界、构建后验收与下一 P0;不改代码/测试/数据

集成事实

  • 正向复制 world.json:CP/HYBRID 均 OPTIMAL,1 PO / 10 WO / 10 operationSlots,协议 v1,runtimeSafe=true。
  • 源码 Sidecar --solver-child -I 初次真实冒烟暴露 import root 问题;GitNexus LOW impact 修复后 CP 同样 OPTIMAL、1/10/10。
  • MOM 复制数据:CP/HYBRID 求解 OPTIMAL,但现有主数据阻断导致 0 PO/WO、1 slot/1 conflict,不作为现场完整主数据证明。
  • fatal/timeout 均失败关闭;timeout 15.633 秒并回收 grandchild;父进程和 8003 存活,业务世界原子。
  • 8003 PID 21576、5173 PID 9808 healthy;浏览器 title/root 正常、无 warning/error。

Pre-target-merge 状态

  • 现有冻结 Sidecar EXE 仅旧 --probe-child 通过;新 --solver-child 尚未随冻结产物重建验证。
  • 全量黄金最终为 1029 passed / 2 warnings;首轮审计假绿阻断已修复,最终独立复审 AUDIT: PASS。
  • 没有 commit、push、merge、release、cleanup 或现场业务数据写入。

审计补强

  • 首轮审计发现成功响应摘要与条目业务语义未验证;已补父进程摘要重算、完整排列/字段守恒、status/pipeline 和可行槽位一致性门禁。

  • 源码冻结自举已接通;旧冻结 EXE 未重建,保留构建后验收。

  • 最终复审补强:临时文件 stdin 消除 Windows 管道背压;operationSlots 严格索引域与订单/产品绑定;补 pipeline/status 负向测试。