aps-agent/docs/round-15-trace-run-plan.md

88 lines
4.4 KiB
Markdown
Raw Permalink Normal View History

# 第 15 轮工作计划(轻量合并版):trace_chain 接入 schedule.run
更新日期:2026-08-01
## 1. 本轮目标
把第 11 轮的 `EvidenceItem`/`trace_chain` 接入 `_run_schedule` 的 ALGO_RUN 审计路径:求解后把 run-id、引擎、策略、求解状态、时间、gap、输入版本等串成可复算证据链,随审计事件持久化;黄金测试证明 schedule.run 审计携带 traceChainHash 且可复算;矩阵 114 行「各引擎实际写入 trace_chain」落地(schedule.run 首接入)。
## 2. 背景和当前状态
- 当前已完成:`server/agent_core/evidence.py`(EvidenceItem + trace_chain,第 11 轮,6 项测试);`_run_schedule` 已写 ALGO_RUN 审计(含 strategy/engine/evidence/solveStatus/time/gap)。
- 当前缺口:evidence.py 是独立工具,未接入真实求解路径;schedule.run 审计无统一 traceChainHash。
- 本轮为什么现在做:矩阵 114 行剩余「各引擎实际写入 trace_chain」;纯本地、低风险、与第 11 轮自然衔接。
- Workspace preflight:第 14 轮收口(490 passed);服务 8003/5173 正常;共享脏工作区、无提交。
- 方向分析:Q1 推荐(trace_chain 接入 schedule.run),目标续跑轮授权执行。
## 3. 本轮工作方向
```text
evidence.py 独立未落地
-> _run_schedule:求解后构造 EvidenceItem[](run/algorithm/schedule-version),trace_chain → traceChainHash
-> ALGO_RUN 审计 rationale 增加 trace 摘要;版本 evidenceRefs 保留
-> 黄金测试:schedule.run 审计含 traceChainHash、可复算、变更断链
-> 矩阵 114 行注记「schedule.run 已接入」;CHANGELOG
```
## 4. 已确认决策
任务重量:
- 档位:轻型(workflow._run_schedule 一处接入 + 黄金测试)。
- 规模依据:单点接入(schedule.run),不改引擎/契约;风险 LOW。
- 选择原因:矩阵 114 行剩余「各引擎实际写入 trace_chain」的首个落地点,验证 evidence.py 可用性。
P0/P1 决策(按 Q1 推荐采纳):
- 决策 1(P0):本轮切片 = trace_chain 接入 schedule.run。
- 决策 2(P1):不新建分支、不提交、不推送。
- 决策 3(P1):验证深度 = 聚焦 trace 接入测试 + 全量黄金回归。
默认假设:
- 假设 1:EvidenceItem 集合 = [schedule-version(versionId), run(run-id=schedule-version ref), algorithm(engine/strategy/status/time/gap)]。
- 假设 2:traceChainHash 写入 ALGO_RUN 审计 rationale.trace;`evidenceRefs` 继续保留 schedule-version ref。
- 假设 3:trace 摘要(chainHash/count/items 摘要)一并写入 rationale.traceSummary 供管理台查看。
未决但不阻塞:CP/GA/外部引擎各自独立写入 trace_chain(后续轮);前端 trace 展示。
## 5. 范围
In scope:
- `server/aps_domain/workflow.py`:`_run_schedule` 求解后构造 evidence 链并写入 ALGO_RUN 审计(traceChainHash + traceSummary)。
- `tests/golden/test_trace_run.py`(新):schedule.run 审计含 traceChainHash、可复算、元素变化断链。
- 文档:`docs/architecture/harness.md`、`docs/product/plan-completion-matrix.md`(114 行注记)、`docs/CHANGELOG.md`。
Out of scope:
- 其他引擎接入、前端 trace 展示、发布/批量路径接入。
- 提交/推送/合并/清理用户改动。
## 6. 成功标准
- 聚焦:`python -m pytest -q tests/golden/test_trace_run.py -p no:cacheprovider` 通过(≥3 项)。
- 全量:`python -m pytest tests/golden -q -p no:cacheprovider`(固定 .venv)≥ 490。
- ruff 干净;git diff --check 无空白错误。
## 7. 验证方式
- trace 接入单测(审计含 traceChainHash、复算、断链);全量回归。
## 8. 关键风险
| 风险 | 影响 | 控制方式 |
|---|---|---|
| trace 构造失败影响求解 | 业务中断 | try/except 容错(trace 失败不阻断 ALGO_RUN 审计) |
| 链哈希不稳定 | 测试脆弱 | 固定 EvidenceItem 字段;测试锁定确定性 |
| 审计 rationale 膨胀 | 存储 | 只存摘要(chainHash/count),items 存 meta 精简 |
## 9. 停止条件
- 全量黄金测试非本轮相关回归无法快速定位时暂停。
- 任何提交/推送/合并/清理操作停下等待授权。
## 10. 本轮完成定义
- 实现、测试、文档完成;聚焦与全量通过;矩阵/CHANGELOG 回写;不提交。
- 收口:报告主要结论、关键洞察、需要特别留意的地方。
## 11. 下一步
轻量合并版:主 agent 实现 + 验证 + 收口报告。