2.4 KiB
2.4 KiB
无人值守效率优化 v15
本轮基线
docs/current/efficiency-current.md 覆盖最近 20 个周期(4770 附近):
provider/stream-wait:262.1 秒,占 29.9%,6 个周期,平均 43.69 秒。agent/initial-decision:238.5 秒,占 27.2%,86 次,平均 2.77 秒。agent/post-read:203.2 秒,占 23.2%,14 次,平均 14.51 秒。agent/idle-stop:74.5 秒,占 8.5%,1 次;对应一次无进展回合的延迟收口。- 20 周期中只有 1 个新业务结果,9 个恢复周期,恢复耗时 384.2 秒。
命令和源码读取本身只有 1.2 秒,占 0.1%;瓶颈是外部断流等待和模型在已知无进展状态下重复决策,不是本地搜索或构建。
已实施
- 断流错误后的无命令等待窗口默认从 45 秒降为 25 秒。活动命令仍不会被打断;环境变量
FREECAD_PROVIDER_NO_PROGRESS_SECONDS可覆盖。 - 提供方连续失败退避增加 60 秒上限,避免 80、160、300 秒的无效空档;
FREECAD_PROVIDER_BACKOFF_MAX_SECONDS可覆盖。 - 模块连续无进展阈值从 6 次降为 3 次,达到阈值后进入模块冷却并重新规划;环境变量
FREECAD_MODULE_NO_PROGRESS_LIMIT可覆盖但最低为 3。 - 已有至少 2 次无进展、恢复级别或当前批次静态 readiness 全部缺失时,业务回合最多读取 2 个源码片段、硬上限 4 个,并将空闲收口限制为 45 秒。正常业务回合参数不变。
- 继续保留“已完成修改立即进入外层构建/验收”的路径和所有可复用业务证据;没有修改或实际结果的回合不会增加完成计数。
验证
python3 -m unittest tools/test_scheduler_performance.py tools/test_unattended_scheduler.py tools/test_scheduler_efficiency.py tools/test_scheduler_business_recovery.py:115 项通过。python3 -m py_compile tools/run_freecad_web_scheduler.py tools/scheduler_progress.py:通过。- 既有 Draft 四条业务证据复用:首次 4.874 秒,复用 0.221 秒,减少 95.47%;该优化继续有效。
预期运行行为
外部服务正常时,业务实现与验收流程不变。发生断流时,本地会更快进入退避;同一模块连续无进展时会更快冷却并换取下一组业务,避免无人值守空转。后续状态以 show_freecad_web_scheduler.py 的新周期实测为准,不把节省量提前计入业务完成进度。