战术闭环修复与验收

2026-09-13;规则 field_tactics_v3。本次保留自由行为树和 A/B 独立演化,未调用付费模型、未替换部署策略、未修改旧成绩及未决战斗。

实现

  • 共享观察契约统一有限数值 eq/ne、布尔和精确文本比较;原生条件轨迹记录字段存在性、类型、目标、结果。报告区分缺失、类型错误、不成立;前缀覆盖不冒充原生访问,矛盾反馈不输出死代码结论。
  • 投入预备队改为确有额外部署收益的加速补线,查询、提交、生效复用预测;机会消失不扣点。reserve_balanced 宽度 3,双方各三前线、三预备队;equal 不再当作镜像。
  • 轮换追加动作编号 5:1 点、延迟 1 小时、侧级冷却 3 小时。最弱前线与最强合格前线型预备队交换;入替组织度 ≥40、优势 ≥15、宽度合规,首接战小时输出 ×0.75。出替等待 2 小时,再最多恢复 10 小时,每小时组织度 +2、疲劳 −2,组织度最多恢复 20、上限 60,每单位一次,不恢复人员弹药士气。
  • 带耗弹标签且实际远程输出的单位每完整投入小时耗弹比例 0.02,按投入比例缩放;双方同一时步初值计算输出,之后一起扣弹;不足一轮按剩余量缩放,零弹无远程输出及能力收益,不直接判败。正式游戏城市自动补弹也受活动野战限制。
  • 突破保留原三小时窗口与成本;敌前线兵力加权组织度低于 40 才向受掩护后排分流,线性增加至 30%,总输出守恒,既有暴露优先。坚守主动取消,NO_OP 保持窗口;记录开始、到期、取消与持续时长。
  • 规则默认集中于 BattleRules 资源字段;整顿、交接、弹药、冷却进入快照与回放。新机制开局限定陆地野战,不在渡河完成后偷偷启用,也不扩展攻城、水战。同小时双方崩溃输出互溃,不按遍历顺序判一方胜。
  • 军府、地图战斗面板添加场景化轮换按钮并绑定统一资格查询;人类竞技场、单位弹药/整顿、前后排组织度与事件展示同步接入。报告分开动作、实际生效、拒绝、姿态占用与转换;反事实保留积分差以及物理状态变化。

固定对照结果

原始文件在 utils/battle_training/runs/field_tactics_verification_1789233529/,四份完整报告与 contrasts.json;可用 scens/test/test_field_tactics_acceptance.tscn 复现。对手固定纯坚守,种子 11、23、37,各场景换边;所有 48 场按原击败目标自然结束,没有缩短期限、改积分或移除失败样本。表中为胜/负/平。

人工基准镜像步兵(6 场)三前线三预备队(6 场)实际生效的战术军令
纯坚守2/2/23/3/0无付费战术军令
完整突破窗口3/1/25/1/0突破 60 次
有效加速补线2/2/25/1/0补线 4 次
轮换整顿2/2/26/0/0轮换 36 次

四份报告合计 5845 次决策,Python 覆盖分析与 Godot 原生条件证据一致,无矛盾。小样本结果用于证明机制可利用,不代表通用最优策略。

另有 12 组一小时物理对照:六组轮换将一支前线组织度设为 20,保持其他条件及同种子,前线组织度相对坚守提高约 23.32–23.37 点;六组混合兵种镜像将敌前线组织度设为 20,突破令受掩护后排组织度额外下降约 1.05–1.14 点。每组均消耗 1 战术点,同种子重放完全一致。这些是预先固定状态下的直接收益,不冒充最终目标积分改善。

反例保留:健康前线没有轮换机会;零/无额外收益预备队不能花点;轮换有交接输出折损且不可无限恢复;强前线不发生突破后排分流;基准比赛仍有输局和平局。

验证与兼容

  • Python 全套 149 项执行,3 项需显式开启的 MCP 集成测试跳过,其余通过。
  • Godot MCP:内核 15 项、野战机制 14 项;Limbo/旧树 262 次决策一致;战斗管理器、反事实、随机续算、冻结对手、整批暂停/恢复与已完成缓存通过。人类竞技场双侧分别 42/41 次操作,记录及回放通过。
  • GDScript 首先使用 MCP test_run;军事非 @tool 资源不适合编辑器套件,按套件提示通过 MCP project_run 运行对应 .tscn,不把编辑器跳过算通过。每次运行后读取游戏/编辑器日志。
  • 军事 UI 总套件在既有征募测试 scens/test/test_military_ui.gd:187 的“训练单入队立即锁定本城壮丁”断言失败,未扩改征募模块。战斗按钮使用定向测试验证六按钮、合法轮换启用、无收益补线禁用和结束战斗禁用;总套件不能宣称全绿。
  • 当前版本:内核快照 5、世界战斗状态 4、模拟状态 3、观察 2、行为反馈 2。旧 JSON 树仍可读;旧活动快照拒绝静默迁移,原运行需要原规则环境续算。历史反馈另存 runs/20260912_224922_8b649521/feedback_v2/corrections.md,B 第 3 代 1897 个冷却字段缺失数为 0,突破原生选择 39+41=80。

下一步是由用户明确启动新规则下的新模型训练;本次停在离线验收完成,不对旧 192 小时未决样本追加输/平标签。