← 返回日志

夜航工作流:基于测试门禁的 AI 自主开发

守夜人开发志05 / DEVLOG

记录一套由任务书、自动测试、对抗评审和交付报告组成的夜间自主开发流程。

夜航工作流有一项不可绕过的交付条件:selftest 未全部通过时,本轮任务不得交付。

这项约束使 AI 辅助编码进一步成为可在无人值守时运行的开发流程。我将这套夜间执行、次日验收的循环称为“夜航”。

夜航工作流的组成

夜航循环

夜航是一套自主开发循环。执行前,我会提供包含任务目标与优先级的任务书;AI 按照以下步骤持续处理,直至任务完成、出现需人工裁决的问题,或收到停止指令:

  1. 任务读取:读取任务书并认领一个具体任务;
  2. 开发实现:编写代码或调整系统;
  3. L1 测试门禁:运行数百条断言;未全部通过时自动退回并修正;
  4. L2 对抗评审:测试通过后,由另一个 AI 以证伪为目标检查改动;
  5. 集成与报告:将改动落地,并保证新增内容可以在试玩中直接验证;随后发送交付报告;
  6. 进入下一轮:继续处理任务书中的下一项工作。

测试门禁的核心作用

无人值守开发的主要风险,是新改动在未被发现的情况下破坏既有规则。

测试门禁承担持续监督作用。数百条断言固定游戏中的关键行为,例如破防窗口、篝火存档和升级公式。任意断言失败,本轮任务都会自动退回,无法进入交付阶段。测试门禁并不提高模型本身的判断能力,而是限制未经验证的结果进入主流程。

自动测试之外的对抗评审

仅有测试仍不足以保证现象正确,因为**“断言通过”不等于“问题已经消失”**。项目中曾出现过断言为绿色、实际问题依然存在的情况。进一步检查后发现,该断言只验证了“没有发生任何事件”,而这一状态本身也会返回通过。

因此,测试之上还设置了对抗评审。改动集成前,由另一个 AI 假设方案存在错误,并主动寻找能够推翻它的反例。低风险任务使用一名评审者,高风险任务使用两名评审者进行独立检查。只有在问题无法被复现或方案无法被合理推翻后,改动才进入下一阶段。

夜间任务的交付结果

次日的夜航报告会列出当夜完成的任务、测试数量、已集成内容,以及等待人工裁决的问题。我的工作集中在复核结果、决定未决事项,并据此编写下一份任务书。

结论

“能够自动运行”与“适合在无人值守条件下运行”是两个不同标准。后者不依赖抽象的信任,而依赖明确的任务边界、测试门禁和对抗评审。自动测试控制回归风险,对抗评审补充判断盲区;只有两者同时成立,夜间自主开发才具有稳定的使用条件。

关联阅读

02 / LINKS
C01

世界结构:据点中枢、篝火回流与区域中转

以据点为中心的辐射式世界:篝火存档与死亡回流、区域灯中转,以及第一章的线性节奏编排。

阅读全文 ↗
C02

数值调控工具:数据驱动调参与断言校验

把数值从代码中抽离到 balance.json,用网页调控台实时调参,并用断言锁定“改数值不改逻辑”。

阅读全文 ↗