游戏教程质量审计 Agent

从真实编辑器验证到可校准的教学质量评价
阶段性技术报告 | 截止时间:2026-08-22
摘 要

游戏开发教程同时包含自然语言解释、代码示例、运行时 API、编辑器操作和跨章节学习路径。一次文档错误可能让代码无法执行,也可能让示例虽然正确,读者却无法理解、复现或迁移。人工逐章审核能够发现高价值问题,但成本高、判断依赖个人经验,也难以跟随教程持续更新;LLM 可以扩大审查规模,却会遗漏、过度推断,并且无法仅凭文本观察真实运行时。

本项目从开始便把教程质量拆成两条并行路线。客观路线检查代码、API、工具命令和运行时主张,通过当前契约、真实游戏编辑器、原样复现和单变量对照建立可执行证据;主观路线检查概念引入、知识递进、解释充分性、示例质量和学习迁移,通过目标读者建模、单一受控缺陷、配对运行、候选锁定和最小作答,使教学判断可以被核验和反驳。两条路线分别经历了知识库重构、多模型对照、交付格式消融、停止与覆盖实验,以及扫描和核实分工。

实验显示,纯静态模型无法发现已知运行时缺陷;第 17 章的四模型主题并集中,Qwen 覆盖 18/18,DeepSeek 覆盖 15/18,并表现出覆盖优先与单点深挖的互补倾向。重型结论卡使 Qwen 耗时从 42 分 39 秒增至 77 分 41 秒、DeepSeek 从 18 分 01 秒增至 64 分 18 秒,但覆盖收益不一致;自然语言停止规则在重复运行中仍未阻止 DeepSeek 触发 512 MB OOM。主观路线的冻结扫描版本命中 5/5 个人为缺陷,独立核验完成 26/26 候选闭环,其中 11 项成立、11 项不成立、4 项材料不足。逐维覆盖记录曾把单样本目标命中从 0/2 提升到 2/2,却增加 56.1% 平均耗时;独立解释专项在后续样本中仍为 0/2 和 0/1,未达到采用门槛。

当两条路线分别成熟后,项目测试共享扫描。两轮 Qwen 对照中,合并任务成本分别比主客观独立任务之和高约 11% 和 32.5%,覆盖也没有形成稳定超集;GLM 5.3 迁移同样未改变判断。因此最终基线保留主客观独立扫描和独立核实,只统一 JSON 工程合约,并在结果层交换证据。第 8 章已跑通四任务全量闭环,第 7 章八个变动块实验验证了小规模 Diff 单阶段审查和事实冲突裁决。当前系统已经形成可试审基线,但尚缺自然缺陷的生产级人工真值;下一阶段将完成教程全量扫描,上线标注网站,以人工标注量化覆盖、精度、证据质量和跨轮稳定性,再持续优化系统。

关键词:LLM Agent;游戏研发;文档质量;真实运行时;自动化测试;教学评价;证据链;增量审计

1 项目背景与动机

1.1 游戏教程不仅是文字说明

本项目面向一套游戏状态同步编辑器教程。教程按章节引导读者学习 Lua、运行时 API、客户端与服务端协作、场景对象、数据存储和完整玩法开发。它既是知识文档,也是用户实际开发时依赖的操作入口。

这类教程的质量问题比普通文字校对复杂。一个变量名写错,可能让后续数据流直接中断;一个 API 示例过时,可能直到进入真实编辑器才暴露;一个代码片段没有说明插入位置,读者逐字复制也会遇到作用域错误;一个概念虽然在其他章节出现过,如果目标读者尚未学到,仍然属于知识空降。教程还会持续更新,局部修改可能破坏跨章节预告、练习和项目要求。

因此,“没有错别字”和“代码没有报错”都不足以代表教程质量。系统需要同时检查事实可靠性、操作可复现性和教学有效性。

1.2 人工审核为什么难以成为持续方案

人工逐章阅读并在编辑器中复现,能够发现最贴近真实读者的问题,也是项目最初采用的方法。但教程包含二十余章,代码、API、编辑器状态和跨章关系持续变化。一次完整复核需要重复搭建场景、执行代码、读取日志、追查资料和记录证据,成本很高,也难以在每次文档更新后重新支付。

人工判断本身也会受到经验影响。熟悉引擎的开发者可能自动补全教程没有写出的步骤,初学者则可能把自己的操作错误归因于文档。教学评价尤其容易退化成“感觉不清楚”,不同审查者难以复算彼此的结论。

LLM 具备快速阅读全文、搜索资料、生成探针和整理报告的能力,适合扩大审查规模。但模型并不是天然裁判:它可能依赖过时知识,可能没有真正检查某个小节,也可能在发现异常后持续探索,牺牲其他主题的覆盖。项目的目标不是简单用模型替代人工,而是让模型承担开放式发现与解释,同时为结论建立可以校验的证据链。

1.3 从项目开始就并行推进的两条路线

项目开始时便基于任务性质做出经验判断:教程“讲得对不对”和“讲得好不好”是两个不同任务,不能用同一套标准直接评价。

表 1 两条评价路线的职责边界
路线核心判断主要证据允许的结论
客观验证代码、API、命令和运行时主张是否成立当前契约、真实编辑器、日志和对照实验正确、缺陷、未决
主观评价给定学习历史,读者是否能够理解、操作并迁移当前章、前后章节、学习任务和必要事实证据成立、不成立、材料不足

客观路线可以利用可执行行为获得较强事实证据,但一次实验结果也不能脱离运行端、对象类型和时机无限推广。主观路线不追求虚构唯一答案,却必须说明目标读者、文本依据、具体后果和不确定性。两条路线从一开始分别探索,各自建立方法;只有在两边方案趋于稳定后,项目才研究能否共享扫描和结果。

教程整体质量评价 客观验证 事实是否成立 主观评价 目标读者是否被教会 当前契约、真实编辑器 原样复现、单变量对照 学习历史、受控缺陷 最小作答、独立核验 结果层
图 1 项目从开始便并行探索客观与主观两条证据链。两边先独立形成评价方法,成熟后才在结果层交换证据和汇合。

1.4 全量冷启动与增量审计

完全体目标是评价教程全文的整体质量,尽可能全面、可靠地发现会误导读者、妨碍学习或影响实际使用的问题,为后续修订提供依据。覆盖面、结论可靠性和可复核性是结果目标;模型组合、Prompt、JSON、Agent 架构和自动化工具都是实现手段。

当前阶段属于全量冷启动:先对教程全文建立可信问题基线、验证方法和可复用知识。基线成熟后,文档变化将成为主要入口,系统围绕新增、修改和删除内容进行增量审查,并根据引用、概念、代码和 API 影响范围选择必要回归项。全量与增量是同一系统的两个阶段,而不是两套互斥方案。

2 研究问题与评测原则

2.1 系统真正需要改善什么

项目希望改善的是有效问题覆盖、结论可靠性和可复核性,而不是单纯让报告更长、格式更整齐或模型思考更多。任务完成率、卡片数量、Token、耗时、工具调用和 JSON 合法率都是代理指标,只有在被证明与结果目标相关时才能指导决策。

重要方案修改都尽量遵循同一关系:

观察 → 解释 → 假设 → 验证 → 结果 → 决策

实验开始前需要说明不同结果会导致什么不同选择。若无论结果如何都不会改变行动,这个实验不值得优先建设。单轮实验适合发现现象,不适合做强归因;重复结果不一致时,首先报告随机性,而不是选择最符合预期的一轮。

2.2 关键条件可比,不要求环境绝对相同

模型服务、图形编辑器、终端和传输链路都会波动。如果一次网络重试、终端未退出或电脑重启就使整轮实验报废,真实 Agent 项目最终几乎没有可用数据。当前口径只要求影响结论的关键状态可以确认:模型身份、任务输入、可访问材料、答案隔离、地图身份和最终输出完整。

表 2 实验运行状态的判定口径
运行状态判定依据结果用途
可比运行关键输入和最终输出完整,答案隔离可确认进入配对统计和方案比较
带执行事件的完成运行模型工作和结果已完成,收尾、传输或恢复出现事件,未观察到关键输入变化保留完整结果,可作定性分析;满足条件时纳入比较
无法归因模型、关键输入、历史答案隔离或输出完整性无法重建不用于当前因果判断,但保留运行记录

“模型没有命中目标”和“实验没有完成”必须区分。正常完成但返回空列表,是有价值的否定结果;界面卡住但交付已经落盘,也不能仅因退出状态不漂亮就抹掉语义观察。

2.3 工程合规、证据定位和语义正确是三层问题

程序可以验证 JSON 能否解析、编号是否连续、候选数量是否闭环、引文是否逐字存在、输入哈希是否一致;这些检查不能判断问题是否成立。

主观支线早期 221 条引用中有 215 条可定位,加入后续样本后为 224/230。接近 97% 的定位率看起来很高,但失败集中在事实参考摘录,而且合法引文仍可能只支持结论的一部分。一次字段精简实验中,50 条引用全部逐字有效,人工复核仍发现 4 个问题从正确观察延伸出了证据不支持的读者后果。

表 3 合规、定位与判断的三层边界
层次可以机械检查的内容仍需语义判断的内容
工程合约JSON、编号、数量、哈希、归档问题是否成立
证据定位引文是否来自指定材料引文是否支持完整结论
质量判断无法确定性完成适用边界、读者后果和修改价值

程序负责拒绝机械错误,不能伪装成事实或教学裁判。

2.4 两条路线采用不同实验协议

客观新章节没有完整答案,不能把任一模型当作裁判。项目将多轮报告拆成规范化主题、合并同义发现,形成当轮发现并集 U。模型 m 的相对覆盖代理为:

$$CoverageProxy(m)=\frac{|F_m|}{|U|}$$

这个指标只能描述已经被至少一轮发现的调查范围,不能看到所有模型共同遗漏的问题,也不能称为准确率。它用于比较同一模型不同运行漏了什么,以及格式或任务修改是否带来新的有效主题。

主观路线没有天然唯一答案,采用原文与单一受控缺陷版本的配对实验。每次只移除或破坏一个教学职责,运行前冻结目标、允许证据和命中条件,两个版本使用隔离会话,运行后再反向审查缺陷版本是否真的移除了目标能力。JSON 合法、引用可定位和语义目标命中分别统计。人工预期同样可以被实验推翻。

3 共同起点:从人工复现到可信度危机

3.1 先以普通读者身份逐章学习

项目最初没有复杂 Agent 架构。审查者以不熟悉 Lua 和游戏开发的读者身份逐章阅读教程,并尽可能把代码放进编辑器执行。对初学者而言,最容易判断的信号是代码是否报错、日志是否出现、对象是否变化、画面是否符合描述。因此最早积累的问题集中在构造器报错、资源 ID 静默失败、跨端消息丢失、物理对象穿地和相机坐标异常等可观察现象。

出现问题后,再与模型一起追查“为什么跑不通”,由此形成早期 Bug 记录。这个阶段证明教程值得系统审核,也暴露出更困难的问题:观察到失败相对容易,判断失败来自教程、API 版本、运行端、代码同步、加载时机、地图状态还是调试包装却很难。

3.2 模型审查和历史经验都可能制造新错误

人工审查完成一部分章节后,项目尝试让模型独立审核并生成实测报告。模型能够快速列出疑点、编写探针和解释异常,也会在新证据出现后推翻旧解释。一份旧 Bug 文档如果被当成已证实事实,还会污染下一轮模型。

早期第 2 至 12 章共形成 11 份实测报告。复核时发现,最早 16 条历史记录中有 7 条存在结论、归因或章节问题。常见误判包括:

第 7 至 11 章又产生 19 条新缺陷,却没有增加新的缺陷病型。增长最快的资产反而是“如何避免审计者自己判错”的规则。教程、API 文档、历史 Bug、模型报告、日志和测试环境都不能被视为天然真值,它们只能提出待验证主张。

人工逐章复现积累 Bug 记录 模型独立审查快速扩大疑点 结论反复翻转资料与环境均不可信 暂停扩章先修证据与环境 可验证审计主张成为候选 从“哪份文档可信”转向“每个主张由什么证据支持”
图 2 项目的共同转折点。可信度危机没有通过指定一份权威文档解决,而是通过候选、直接证据和适用边界重新组织审计。

3.3 为什么暂停扩张章节审计

如果继续让模型逐章运行,项目会获得更多报告,却无法判断哪些结论值得信任。两条路线因此暂时不以章节数量为目标,先分别研究证据、环境和评价协议。

客观路线早期建立过传统规则、朴素 LLM、知识增强和真实实验系统的分层 Benchmark。只允许静态阅读的 B1 生成 4 条质量尚可的文档问题,误报为 0,但对当时已知运行时缺陷命中为 0。它确认了纯文档模型无法观察静默失败、物理变化和时序行为。由于这一结果不会改变“必须接入真实环境”的决策,B1 被保留为回归资产,复杂消融没有继续扩建。

这次停止确立了一条长期原则:实验不是用来证明一个必然结论,也不是用数量展示严谨;它必须减少真正会改变方案的不确定性。

4 客观路线一:建立真实运行时和证据基础

4.1 最小工具闭环先回答可行性

客观路线最关键的未知是:Agent 能否启动试玩、执行 Lua、读取结果,并把观测写成可复核证据。项目没有先建设完整平台,而是用单条探针验证链路。

实验表明,编辑器处于可见、最小化和被遮挡状态时仍分别以约 60.2、60.1 和 58.7 fps 运行,逻辑和物理能够继续执行;但 screenshot game 会重复返回缓存帧,因此截图命令成功不能证明画面已经刷新。编辑器仍依赖 Windows 图形会话、登录状态和本机端口,所谓 headless 只能定义为“有图形会话但无人观看的自动化”,不是容器中的真正无头运行。

结果支持真实引擎验证可行,也提前限定了未来 CI 形态:运行节点需要有效 Windows 图形会话,视觉证据还需要额外的新鲜度判断。

4.2 可恢复环境来自真实污染,而不是预先设计

编辑器不是纯函数。模型会修改 Lua、同步地图、启动试玩、生成日志、留下临时对象并改变连接。如果下一轮沿用这些状态,模型差异会与环境差异混在一起。

实验逐步形成以下控制链:冻结教程、任务、模型和输入哈希;检查地图身份、Git 基线和同步状态;记录日志起点并建立独立 Session;保存报告、Session、Token、耗时和相关日志;最后归档现场并恢复项目、地图和模型会读取的日志。

项目曾出现 1.5 GB 以上历史日志混入新实验、模型连接到嵌套副本或错误地图,以及“模型已完成、报告已写入、控制进程仍未退出”三种状态不一致。逐次排障不再写进 Prompt,而被归纳为控制器责任:预检、目录固定、日志边界、完成状态判断、归档和恢复。LLM 负责开放调查,可机械判断的状态不交给模型猜测。

冻结输入教程、任务、哈希 环境预检地图、Git、同步 独立 Session日志起点、模型 保存现场报告、轨迹、用量 归档并恢复项目、地图、日志 下一轮重新从可确认的基线开始
图 3 可恢复实验控制链。环境治理来自多轮真实污染的归纳,确定性状态由外层控制器管理。

4.3 证据优先级和最小验证纪律

客观证据按直接性与有效性排序:

  1. 当前真实环境中、上下文明确且有有效对照的直接观测;
  2. 当前类型契约和静态定义;
  3. 派生 API 文档、历史经验和旧实验记录;
  4. 模型根据资料形成的推断。

高层证据也不能无限推广。客户端注入成功不能证明服务端真实文件可用,协程调用成功不能证明脚本顶层安全,有限次数递归不能直接证明最终一定 OOM。证据优先级解决“相信谁”,实验上下文解决“能够证明多大范围”。

运行时结论至少需要说明:原文是否逐字执行;没有逐字执行时改变了什么;运行端、注入方式、时机和对象类型中哪些影响解释;对照改变了哪个变量;直接观察到什么;当前证据仍不能证明什么。否定结论需要阳性对照,避免把坏环境当成教程错误;肯定结论需要读取状态或副作用,避免把“没有报错”当成“已经生效”。

5 客观路线二:知识、模型和交付形式的连续消融

5.1 假设结构化知识能够提高规则触发

随着错误案例和审计方法增加,项目一度担心自然语言经验会过期、矛盾和难以维护,于是将方法、协议、事实来源、案例和运维动作拆成 YAML。设想是结构化字段既便于维护,也能让模型在审计时稳定触发相关规则。

重构过程修正了多处判据问题,并自动发现四处 Benchmark 正负样本冲突,说明结构化对离线整理有局部价值。但最终知识库约三万 Token,文件和字段越来越多,大量脚本只是把拆散内容重新拼回自然语言。

第 6 章 GLM 对照使用完整 YAML 执行版检验“信息给足后是否会执行”。剔除答案泄漏项后,可信口径下漏检约 67%,归因正确率为 0,误报为 0。模型读到了规则,却没有在对应问题出现时调用;执行材料还直接提到第 6 章已知问题,使一个命中不能视为独立发现。

结果否定了“只要结构化并放进上下文,模型就会稳定使用”的假设。项目停止扩建 YAML,改为一条经验一个 Markdown 文件,按交付、查找、实验、证据和复算等工作动作组织,再由 build.py 组合必要内容。新清单首次实跑仍暴露试玩入口、CLI、日志位置和同步规则错误,知识库因此被定位为同样需要版本化和实测的产品组件,而不是系统真值。

5.2 从知识触发转向模型行为差异

知识组织改善后,新的不确定性是:相同任务和资料下,不同模型会如何分配覆盖、验证和深挖能力?如果行为相近,单模型即可继续承担全章任务;如果出现稳定互补,角色分工可能更合适。

第 19 章五轮报告归一化为 29 个发现主题:

表 4 第 19 章多模型发现池覆盖
模型总发现池覆盖主要观察
Qwen 3.8 Max62.1%覆盖和证据质量最均衡
DeepSeek V4 Flash55.2%能深挖运行时问题,但经历超时和人工续跑
旧 GLM51.7%使用旧判据,只作为历史样本
新 GLM37.9%显式步骤较稳,主动换视角不足
Luna20.7%完成快,但覆盖和深度不足

第 19 章运行条件和判据版本并非完全一致,因此这些数字只用于构造主题池和观察路径。第 17 章在更接近条件下复测:18 个归一化主题中,Qwen 覆盖 18 个,DeepSeek 覆盖 15 个,GLM 覆盖 13 个,Luna 覆盖 7 个。Qwen 的全章覆盖和对照最完整;DeepSeek 找到高价值时序问题;GLM 常规契约核验较稳但主动召回不足;Luna 明显过浅。

图 4 第 17 章四模型在 18 个归一化发现主题中的相对覆盖。该指标只描述当前多轮发现并集,不等同于真实召回率或准确率。

第 21 章旧交付中,DeepSeek 的发现池覆盖为 80%,高于 Qwen 的 70%,却存在重要过度推断;Qwen 覆盖较少外围主题,关键缺陷的对照更可靠。覆盖最多、推理 Token 最多、单点分析最深和综合质量最好是不同概念。

多轮轨迹支持一个工程观察:Qwen 更倾向先铺开候选,再批量验证;DeepSeek 更容易抓住强信号持续追根因。采样、首批工具结果和日志状态仍会改变轨迹,因此这不是对训练机制的事实推断,但足以支持后续测试角色分工。常规实验保留 Qwen 和 DeepSeek,必要时使用 GLM,不再为 Luna 单独增强 Prompt。

5.3 假设重型结论卡能够提高严谨性

自由 Markdown 难以自动对齐,也不容易判断模型是否用替代实验冒充原样复现。项目把交付改为原子结论卡,加入本地 ID、原文主张、证据等级、原样复现、完整上下文、对照、直接结果、置信度和空严重度,并要求边实验边更新。

如果字段改变实验行为,模型应在相近环境下更主动补对照、减少证据越界;如果只改变写作,主要变化会出现在报告维护成本。

表 5 重型结论卡前后的运行变化
模型旧交付耗时结构化 v1 耗时工具调用变化结果变化
Qwen42:3977:4161 → 118正式结论 13 → 18,覆盖达到三轮最高
DeepSeek18:0164:1877 → 204正式结论 13 → 12,覆盖反而收缩
图 5 旧交付与结构化 v1 的耗时及工具调用。格式负担在两个模型上都显著上升,覆盖收益却方向不一致。

字段带来局部行为收益。Qwen 会把待验证卡转成实验计划,DeepSeek 会主动排除“注入代码本身语法错误”并收窄证据范围。但两种模型在旧 Session 中本来就会做原样注入、变量隔离、阳性对照和副作用回读。新格式没有把草率模型突然变严谨。

主要成本来自本地 ID、每卡重复公共上下文、空严重度、严格原子化、机械证据等级和频繁更新。DeepSeek 后期花费大量步骤检查字段和卡片顺序,却没有产生新实验事实;证据等级还可能诱导模型为已经能够修正教程的结论继续补实验。

后续轻量版只保留原文与逐字引用、正确或缺陷或未决、实际验证、非原样差异、直接结果、关键上下文和证据边界。Qwen 和 DeepSeek 各两轮实验保持较低维护成本,验证纪律基本保留,覆盖仍会随机迁移,但没有证据要求恢复重型卡片。

这组消融支持的结论是:保留会改变模型如何验证的问题,删除只规定如何填表的字段;统一 ID、语义归一化和统计交给后处理。

6 客观路线三:停止、覆盖与角色分工

6.1 “严谨”为什么会变成无止境深挖

执行清单强调原样复现、对照、证据边界和排除环境干扰。这些原则能减少轻率结论,也会让善于探索的模型把严谨理解为“只要还有变量,就应该继续调查”。DeepSeek 尤其容易围绕强信号追根因;Qwen 更倾向先铺开范围,但也会追加低价值实验。

项目目标是判断教程主张是否可靠,并给出安全、可执行的修改建议,而不是研究所有引擎底层机制。实验深度因此被分为三层:判定级确认原文成立或失败;修正级通过关键对照知道如何改写和限定范围;根因级解释引擎或工具链为什么如此。默认停止点设为修正级,只有不查根因就无法判断、结果互相冲突、根因会改变建议、涉及高风险约束或发现环境缺陷时才继续。

6.2 假设明确停止条件能够约束探索

执行清单加入“覆盖优先、修正级证据充分即止、根因按条件触发”,并明确反馈递归等危险实验必须有界。DeepSeek 两轮结果如下:

表 6 停止规则下的两轮 DeepSeek 实验
指标首轮复验
耗时12:1922:08
输出加推理 Token50,064128,907
OOM服务端达到 512 MB 后被终止
图 6 同一停止规则下的两轮 DeepSeek。复验在修正级证据已经充分后继续移除有界限制,耗时和 Token 上升并最终触发 512 MB OOM。

复验中,模型已经写出足以证明反馈链的有界探针,关键对照约在第 7.43 分钟支持了修正建议;随后它移除次数限制,继续到约第 17.4 分钟并触发 OOM。报告仍然严谨,但停止和安全规则没有达到可依赖程度。

Qwen 在相同规则下两轮都使用有界探针,没有 OOM,却仍追加低价值实验,主题覆盖继续迁移。具体安全动作比抽象停止原则更容易被遵守,但两者都无法跨模型提供强保证。Prompt 能改变行为概率,不能承担资源限制和强制安全。

6.3 假设更具体的 Todo 能够提高覆盖

项目检查 Qwen、DeepSeek 共八轮轨迹。8/8 都完整读取执行清单,Qwen 4/4 在运行时实验前建立 Todo,但多数只是“整体走读”“六项文档审查”之类总括事项。模型可以把它们标为完成,同时漏掉章内矛盾和跨章事件错位。

规则只做最小修改,要求 Todo 指向具体小节、代码段、命令或事实主张。两轮 Qwen 的计划确实变细,但三个隐藏主题覆盖从 2/3 下降到 0/3。第二轮并非整体更差,它补回 LogService 自反馈,却遗漏第一轮主题。

因此 Todo 被保留为低成本工作记忆,不再作为覆盖证明。遗漏往往发生在更早的搜索分支和关系建模阶段,不是把计划写细就能解决。

6.4 从单模型全包转向 Qwen 扫描、DeepSeek 核实

多模型比较和停止实验共同暴露了单模型全包的路径依赖:模型同时负责全章扫描、实验设计、编辑器执行、证据记录和最终判断时,前期强信号会改变后续注意力。一个自然假设是,把调查范围与运行时核实拆开,可以利用 Qwen 的广度和 DeepSeek 的实验深度,同时防止单点调查挤掉后续任务。

第 21 章两轮 Qwen 静态扫描分别用时 10 分 37 秒和 12 分 30 秒,生成 9 项和 11 项任务。两轮都完整读取执行清单,没有连接编辑器、运行 Lua 或提前定案。任务包含原文位置、可疑原因、验证类型、最小验证和判定信号,能够直接交给执行者。

扫描仍会迁移,跨文档事件错位未稳定发现,第二轮还提出可能形成递归反馈的危险方案。因此清单只是调查范围,不是真值,也不是可以无条件执行的安全脚本。

固定第一轮 9 项任务后,DeepSeek 连续两轮都完成 9/9,越界新增为 0,没有因单项深挖放弃后段任务。第一轮实际工作约 24 分 18 秒,第二轮约 31 分 29 秒;第二轮推理 Token 是第一轮约 2.20 倍,但完成范围相同。

执行者也会推翻扫描者。Qwen 把 [TEST:END] 视为来源不明,DeepSeek 进一步读取 QA 资料,确认工具链中存在该机制,把问题收窄为“教程没有解释或链接”。交接的是待核验主张,而不是扫描结论。

两轮中高风险反馈实验仍然发生。角色拆分解决了“单点深挖挤掉后续任务”,没有解决“单项内部危险深挖”,也没有稳定 Token 和耗时。它改善的是任务范围和可诊断性,不是全部运行风险。

教程章节与清单完整静态材料 Qwen 扫描扩大待调查范围不提前定案 冻结任务 JSON原文、疑点、最小验证判定信号 DeepSeek 核实静态检查与真实实验独立推翻或确认 逐项闭环正确 / 缺陷 / 未决 程序后处理归一化、统计、归档 任务范围被锁定,结论仍由核实证据决定
图 7 客观路线的扫描与核实分工。冻结任务解决范围丢失,不能把扫描意见升级为事实,也不能替代单项安全控制。

6.5 JSON 是交接接口,不是智能来源

为了让扫描与结论机器可读,项目将客观 Markdown 等价映射为 JSON。一次 DeepSeek 实验完成 9/9,结果可解析并通过 Schema;耗时和总处理 Token 落在两轮 Markdown 样本之间,没有重现重型卡片的格式负担。

JSON 保留原文、结论、验证、差异、直接结果、关键上下文和证据边界。汇总表、计数和统一 ID 由程序派生。实验中发现“一任务一结论”会把新问题埋进旧任务,于是增加 additional_findings:既定任务继续逐项闭环,实验中直接发现且已有证据的独立问题可以追加。

Schema 通过不能判断有限探针是否被错误推广,也不能发现复合结论的语义矛盾。JSON 只解决稳定交接和后处理,不替代证据判断。

至此,客观路线形成阶段方案:Qwen 负责扩大静态调查范围,DeepSeek 在真实编辑器中核实冻结任务,程序负责状态、格式、归档和恢复。

7 主观路线一:把“是否教会”变成可实验问题

7.1 评价对象不是文风,而是目标读者的学习任务

主观路线从项目开始便与客观验证分开推进。它的核心问题是:

给定目标读者此前已经学过什么,他能否只依靠当前可取得的教程材料,完成本章承诺的理解、操作和迁移任务?

读者状态是审查条件。第一章刚接触服务端和客户端,不能要求理解完整网络安全;后续章节已经教授事件和生命周期,则不应把每次出现都判为概念空降。教程质量也不能只看句子是否优美,必须追踪章节承诺、概念首次使用、正文解释、代码操作和练习是否闭合。

系统用六个维度组织搜索空间,而不是计算总分:

表 7 主观扫描的六个搜索维度
维度要回答的问题典型缺陷
阅读顺滑 reading_flow是否需要猜术语、指代、代码来源或操作衔接片段没有说明插入位置
学习路径 learning_path知识是否在需要前引入,难度是否合理递进练习依赖尚未学过的能力
解释有效性 explanation_effectiveness是否讲清是什么、为什么、何时使用和边界只列规则名称,没有适用条件
示例质量 example_quality示例是否完整、可观察并与文字承诺一致字段前后不一致,数据流断裂
学习迁移 transfer_support读者能否把方法应用到变式任务练习只能逐字复制
内容节奏 content_pacing当前内容是否值得在此时出现进阶协议打断第一次跑通

维度提醒模型从不同角度搜索,不要求每章凑齐六类问题。

7.2 三类事实必须分开

主观判断会引用当前章、其他教程章节和 API 资料,但三类材料的证明能力不同:

表 8 主观评价中的证据职责
来源可以证明不能单独证明
当前章节本章写法、步骤、解释和触发位置API 在引擎中一定成立
其他教程章节前置知识、跨章预告和后续要求API 事实
当前契约或客观实验API 存在性、签名和运行行为当前章已经把它教会

教程内部多次使用某个 API 不能证明它真实存在;API 能运行也不能证明本章解释了用途、边界和验证方式。主观评价允许不确定,但不能混用证据职责。

7.3 第一个空结果同时审计了模型和测试题

一个受控版本删除了集中解释身份、类型、频率、业务条件和结果下发五类校验的段落,保留代码、术语和练习。运行前预期是模型应指出练习要求与解释之间的缺口,实际却返回合法空列表。

如果人工预期天然正确,结论只是模型漏检。进一步构造最小答案后发现,身份、类型、频率和结果下发仍可从代码恢复,真正缺少稳定依据的主要是业务条件。测试题最初把“集中说明被删”直接等同于“五类能力全部无法学习”,范围过宽。

这次实验确立了主观路线的基本态度:模型和人为缺陷都必须接受审计。未命中可能来自搜索遗漏,也可能来自目标本身不成立。

8 主观路线二:更强 Prompt 的两次受控验证

8.1 假设显式教学链能够减少自由阅读遗漏

第 9 章缺陷版本删除全章唯一的“原点、Anchor 与 Position 含义”说明,但保留学习目标、Position 示例和验收项。最初整章审查连续两轮都没有识别精确缺口,结果为 0/2。

第一项改进没有告诉模型“坐标有问题”,而要求它对六个维度依次检查:

章节承诺 → 概念首次承担作用 → 正文解释 → 读者应用 → 练习或验收

模型还需留下逐维检查记录,以区分“检查后没有问题”和“没有检查”。

表 9 逐维覆盖记录的单样本变化
指标最初整章审查加入逐维覆盖记录解释
精确目标命中0/22/2显式阅读顺序改变了单样本探索
两次输出均完整合规不适用1/2一次虚构正文不存在的小节标题
平均耗时基准+56.1%维护过程记录带来明显延迟
模型处理量基准+11.9%增量不只来自最终候选

结果支持“显式阅读顺序可能局部提高召回”,却不足以直接采用:样本只有一个,格式不稳定,时间代价明显。项目继续隔离变量,检查问题究竟来自多维注意力竞争,还是细粒度解释缺口本身就难以稳定判断。

8.2 假设独立解释专项和更小上下文能够提高召回

第二项改进另开全新会话,只检查解释有效性,不同时处理阅读顺序、示例、迁移和节奏。当前章全文保留,辅助上下文缩到读者前置知识摘要、带编号小节目录和输出规则,请求文件比上一版减少约 87.5%。

第 9 章采用原文两轮加缺陷两轮。四次格式都有效,43 条引用全部可定位;但两次缺陷版本都没有准确识别被删除的三项基础坐标含义,精确目标仍为 0/2。原文和缺陷版本都报告了更宽泛的坐标问题,缺陷没有带来目标净增量。平均模型处理量 26,695.8 Token,四次均超过 20,000 Token 门槛。

为了排除第 9 章原文自身的宽泛问题,项目换用第 11 章 UpdateAsync 并发理由复测。第一次先暴露输入裁剪错误:前置知识摘要漏掉已经教授的事件和玩家生命周期,模型产生误报。补齐后,原文和缺陷版本各运行一次,18 条引用全部有效;缺陷版本只笼统提出“需要解释并发差异”,没有指出旧结果覆盖新结果和冲突处理机制,目标为 0/1,平均处理量 25,467 Token。

图 8 三个主观 Prompt 实验的受控目标命中。逐维记录在单一样本上恢复命中,但解释专项换章复测仍未观察到稳定收益。

因此解释专项被停止。结论不是“多思考永远无用”,而是当前样本没有观察到稳定、特异的召回收益,手工压缩上下文还制造了新的前置知识误报。

两次实验共同否定了继续堆叠过程 Prompt 的主线价值。项目不再试图强迫单次输出同时证明覆盖和判断,而是转向暴露问题究竟漏在哪个阶段。

9 主观路线三:锁定候选、最小作答与按需证据

9.1 两个会话首先解决可诊断性

第一会话只生成待核查疑点;程序保存候选与输入指纹;第二个独立会话逐项核验。最早两轮并不完美:

表 10 主观两阶段最早两次运行
运行扫描结果运行情况如何使用
第一次找到目标问题扫描完成,自动交接产物损坏保留扫描能够命中的定性观察,不计为完整闭环
第二次11 个合法候选,没有目标问题正常完成正式否定结果,遗漏发生在扫描阶段

两阶段没有立刻提高召回,却第一次让遗漏位置可观察:扫描没有形成候选、候选被核验驳回、候选成立但材料不足,以及运行事件导致结果只能定性使用。

问题扫描读取当前章和课程导航,形成触发位置、具体疑点、可能后果和所需证据,不提前定案。独立核验可以按需搜索其他章节和 API 资料,每个候选必须得到成立、不成立或材料不足之一。核验发现新问题可以追加,但不能删除、遗漏或静默合并原候选。

“允许追加、不允许删除”不是认为扫描者正确,而是承认核验也会波动。删除会把一次判断变成不可恢复的信息损失;保留原候选与核验意见,后续人员才能重新裁决。

9.2 最小作答区分“提到”与“教会”

早期核验看到练习列出五个校验术语,就把“提到”升级为“已经教会”。项目因此要求模型构造目标读者能够提交、运行或检查的最小答案:列出必要步骤、字段、规则或预期现象;为每个部分指出教程依据;不用模型常识补齐空白;无法从材料填写的部分标为缺口。

五层校验练习得到:

表 11 最小作答对五层校验练习的拆解
组成教程能否支持依据或缺口
身份可以player.UserId
类型可以type(payload) == "table"
频率可以ADD_COOLDOWN 防抖
结果下发可以FireClient
业务条件无法完整构造reason 被发送但服务端没有读取,规则边界未解释

它既找到具体缺口,也纠正了“整套五层都没有解释”的过宽人工预期。最小作答适用于练习、学习目标、验收和预期结果,为文字出现与读者可完成之间提供了可复核桥梁。

9.3 完整知识状态为什么退回课程导航

为了识别概念空降,早期方案试图为每章维护读者需要什么、本章新教什么和工程新增哪些文件、场景对象,再生成读者知识状态、项目状态和章节依赖图。

实验支持了一个关键区分:读者可以继承知识,不能默认继承工程文件和场景。在第 11 章专项审查中,摘要漏掉事件和玩家生命周期,模型把已学内容误报为缺失;补齐后误报消失。配置章节核验曾默认读者保留前章特效代码,加入“知识可以继承,工程状态不能默认继承”后,目标判断从不成立修正为成立,其余 11 项不变,39 条引用全部有效。

这些结果不等于需要维护完整语义图。概念抽取仍由 LLM 完成,教程修改会使状态失效,代码、场景和概念粒度又不同。对于二十余章教程,维护成本超过已观察收益。

最终只保留当前章全文、程序生成的课程目录、可搜索的其他教程章节和完整 API 资料库。目录只回答“可能去哪里找”,不直接作为证据。一次实验向模型开放 286 份 API 文档、约 1.99 MB;模型没有遍历,只通过导航定向读取 RemoteEvent、World 和 Player 三份资料。这支持完整资料可访问加按需搜索,而不是人工维护问题到文件映射。

9.4 一次错误裁决固定证据权限

资料不完整的一轮核验中,两个候选质疑 World:GetServerTimePlayer:GetName。模型因为其他教程一直这样使用、也没有反例,把两项判为不成立。

规则修正后,在同样缺少权威资料时,两项回到材料不足;RemoteEvent 的教学解释问题仍被确认。换成完整资料库后,模型找到对应文档,两个 API 候选才有依据地转为不成立。

对照说明事实来源变化只应影响依赖该事实的结论,不能连带抹去独立教学问题。它也为两条路线后来的结果层裁决提供了基础。

9.5 阶段结果:受控缺陷与候选闭环

锁定扫描版本后,项目在三类章节中植入五种单一缺陷:

表 12 主观扫描的五个受控缺陷
章节类型受控缺陷扫描结果
客户端和服务端通信删除必需的公共事件定义命中
客户端和服务端通信在最小流程前插入高级协议设计命中
客户端和服务端通信把练习改成纯复制命中
核心类型概念章删除核心类型介绍,后文继续使用命中
配置数据流章把声明字段 EffectUnitName 改为 EffectName,后文不变命中

5/5 支持扫描版本进入试审,不能称为自然缺陷召回率 100%。概念章产生 14 个候选,配置章产生 12 个候选,独立核验结果为:

表 13 26 个主观候选的独立核验结果
章节成立不成立材料不足原候选保留
概念引入章节66214/14
配置数据流章节55212/12
合计1111426/26
图 9 两个章节共 26 个候选的核验分布。26/26 表示交接闭环,11 项被驳回说明第二阶段不是确认器。

两个已知目标都被确认,26 个候选各有且只有一个核验结果。26/26 证明交接完整,不代表问题全部成立;11 项被驳回恰恰说明第二阶段不是确认器。

配置字段缺陷展示了数据流核验。配置声明使用 EffectName,后文仍读取 item.EffectUnitName,导致读取为 nil、非空断言失败、后续无法找到特效。第二阶段构造“照首表创建配置,再照后文读取”的最小读者操作,不依赖外部 API 推断即可确认问题。

主观产物也曾包含严重度、置信度、六维评分等字段。删除这些字段后,原文仍不误报目标,缺陷版本仍能找到;精简前 22 条、精简后 28 条引用均可定位。继续强化后果边界只把完整支持从 5/7 改为 6/8,两版仍各有两项过度延伸。项目因此只保留具有明确下游用途的候选、证据、后果和建议。

至此,主观路线也形成阶段方案:扫描负责扩大教学疑点,独立核验负责结合读者上下文与证据驳回、确认或保留未决,程序确保候选不会在交接中消失。

10 双线合并实验:相似结构是否应该共享扫描

10.1 从独立收敛得到共享扫描假设

两条路线分别探索后,都形成了“先生成疑点,再独立核实”的结构。它们也都会完整阅读章节,关注示例、变量、函数、数据流和跨章引用。这个观察提出一个新的架构假设:如果同一个模型共享一次章节阅读,也许能同时生成主观候选和客观任务,降低重复成本,并利用两种视角产生协同发现。

如果合并结果能够稳定覆盖独立扫描并降低成本,主线就应改为共享扫描;如果只是偶然新增发现、成本更高或相互稀释,则应保留两条路线。

10.2 EXP-001:A、B、C 三组对照

实验选择第 8 章和 Qwen 3.8 Max,建立三组独立任务:

章节、模型、输入材料和默认思考强度保持一致。A 与 B 可以并行,C 单独运行。实验重复两轮,避免把一次候选迁移当作架构收益,并用 GLM 5.3 做迁移观察。

10.3 合并产物可用,但不是稳定超集

表 14 共享扫描与独立扫描的两轮对照
轮次A、B 并行完成时间C 合并时间A+B 成本记录C 成本记录观察
Qwen 第一轮约 12 分钟约 22 分钟3.45893.8487C 高约 11%,客观漏掉多参数主题
Qwen 第二轮约 15 分钟约 23 分钟3.48414.6180C 高约 32.5%,首轮遗漏又恢复
图 10 两轮 Qwen 对照中的实际耗时与原始成本记录。独立任务可以并行,合并任务既未节省时间,也未降低成本。

C 两轮都生成了合法双产物,没有发生一侧整体崩溃,但它不是 A 与 B 的稳定超集。第一轮看似新增的协同发现,第二轮可能被独立任务发现;第一轮漏掉的多参数问题,第二轮又恢复。共享任务改变了注意力分配,没有稳定扩大覆盖,也没有降低实际耗时和成本。

GLM 5.3 同样可以完成合并产物,但仍明显慢于并行独立任务,并出现输出预算不足。更换模型没有让共享扫描成为稳定优势。

10.4 决策:独立扫描,结果层汇合

实验没有支持把两种判断塞进同一次模型推理。项目保留:

两条路线共享教程基线、课程导航、JSON 工程合约、证据索引和人工标注入口,在结果层按章节位置、变动编号和主张语义关联。事实冲突时,当前契约和有效运行时实验覆盖过时资料与模型推断;事实翻转后,只重算依赖该事实的教学结论,独立成立的学习后果继续保留。同级证据冲突或实验无法覆盖主张时保持未决,不增加第三个模型投票。

收敛发生在结果与工程层,而不是把两条推理过程强行揉成一个任务。

11 最终试审基线

11.1 全量冷启动

最终全量流程由两条独立证据链组成。Qwen 在两条扫描中承担的是不同任务,不共享一次会话。客观 DeepSeek 对冻结任务保持独立判断;主观核验不能用教程内部一致性证明 API 事实。结果层进行语义关联、证据覆盖和展示,不默认增加第三个裁决 Agent。

冻结教程、任务契约与输入哈希 同一章节,两条独立任务 客观扫描:Qwen 代码、API、命令与运行时主张 生成待核实任务,不提前定案 主观扫描:Qwen 概念、衔接、解释、示例与迁移 生成教学疑点,不提前定案 客观核实:DeepSeek 当前契约、静态检查、真实编辑器 正确 / 缺陷 / 未决 / 证据边界 主观核验:独立 Qwen 会话 学习历史、最小作答、必要事实 成立 / 不成立 / 材料不足 / 后果 两类 JSON 结果关联与证据裁决 位置和语义关联、事实覆盖、依赖结论重算、分歧保留 人工标注与教程修订入口
图 11 最终全量冷启动基线。两条路线共享输入基线和工程合约,保持独立扫描与独立核实,在结果层交换证据并保留分歧。

11.2 增量审查

全量基线成熟后,系统不应在每次修改后重新支付全文成本。增量流程以 Git Diff 为入口:程序生成包含新增、修改和局部删除原文的 changes.json,模型同时读取完整新章节以保留上下文,并围绕变化完成主观或客观审核。

Git Diff 程序生成 changes.json 完整新章节 主观单阶段增量审查 变化的教学影响 客观单阶段增量审查 变化的事实与运行行为 覆盖校验、冲突裁决 与回归范围
图 12 小规模 Diff 的单阶段增量审查。变化由程序无损提取,完整新章节提供上下文,两类任务仍保持独立。

小规模 Diff 的候选空间已经由变化收窄,因此不机械复制全量的两阶段成本。完整旧章不重复进入上下文,变化由程序无损提取;整章删除、重命名和移动暂时隔离,因为局部 changes 无法完整表达消失的教学承诺和依赖传播。

11.3 模型与确定性程序的职责边界

表 15 开放判断与确定性控制的职责分配
责任LLM Agent外层控制器或程序
发现疑点、选择搜索和证据路径负责不做语义发现
设计对照、解释直接结果负责校验必要规则
判断读者是否能完成学习任务负责不伪装成教学裁判
JSON、Schema、编号和数量闭环不能作为唯一保障负责
输入哈希、模型、地图和日志起点不负责负责
Session、Token、耗时、归档和恢复不负责负责
事实冲突提供主张和解释按证据优先级组合,必要时送人工
危险实验强制阻断Prompt 只能提醒尚未完整实现

系统没有自研完整通用 Agent Harness,也没有让模型承担所有确定性状态管理。只有真实实验反复暴露问题,并且新增控制可能改善覆盖、可靠性或可恢复性时,才增加基础设施。

12 端到端验证

12.1 EXP-002:第 8 章四任务全量闭环

共享扫描被否定后,EXP-002 首次按照最终双线组织运行主观扫描、客观扫描、主观核验和客观核实。四份 JSON 均可解析,扫描清单经过程序检查后原样交给核实模型。

表 16 第 8 章全量闭环的四个任务
任务模型耗时交付
主观扫描Qwen 3.8 Max9:3015 个候选
客观扫描Qwen 3.8 Max15:5010 个任务、21 条原文主张
主观核验Qwen 3.8 Max26:442 个成立、13 个不成立
客观核实DeepSeek V4 Flash26:213 个缺陷、7 个正确
图 13 第 8 章四个任务的单任务耗时。两次扫描并行、两次核实并行时,纯任务阶段约 42 分 35 秒。

两次扫描并行、两次核实并行时,纯任务阶段约 42 分 35 秒。主客观结果归一后得到 4 个不同问题主题。完整 Token 和成本保留在实验档案中,没有用单轮总量替代质量判断。

主观侧两项成立问题是:FireAllClients(scores[player.UserId]) 没有说明插入位置,独立照抄时 player 不在作用域;小节声称示例用于所有客户端看到同一状态,却广播某个玩家的个人分数,语义与用途冲突。

15 个主观候选只确认 2 个,并不意味着扫描无效。扫描被设计为高召回入口,核验负责结合前置知识和事实证据过滤。它说明候选数量和完成率不能替代最终精度。

这轮验证了统一材料、JSON 交接、真实编辑器核实和结果层组合可以共同工作。它没有证明覆盖提高:新的主观候选更多,最终确认主题已经在旧实验出现;客观扫描也漏掉若干旧轮曾单列的问题。端到端跑通回答的是工程可行性,不是生产效果。

12.2 为什么小规模 Diff 不沿用四阶段

全量冷启动面对整章未知空间,扫描与核实分离可以防止运行时路径依赖吞掉覆盖。真实文档差异通常只有少数语义变化,如果主观和客观各支付两次模型会话,交接成本可能超过收益。

增量首版因此让两个独立 Agent 各自在一个 Session 中读取完整新章节、无损 changes.json 和对应规则,理解变动并完成必要核实。轻量 change_reviews 证明每个机械变动块都已经处理,正式问题继续使用通用结构。

12.3 EXP-003:第 7 章八个变动块与证据冲突

第 7 章实验包含 8 个行级变动块。主观、客观 Qwen 都在单个 Session 中处理全部变化,JSON 合法,没有扩张到无关旧问题。

主观模型沿第 6 章预告和第 22 章项目要求找到阵营分配教学被删除后的跨章承诺断裂,同时根据过时生成资料判断 camp:GetPlayers()camp.PlayerAdded 不可用。

客观核实把新代码逐字写入真实服务端文件并随试玩加载,直接观察到:

当前 EggyAPI.lua 也声明这些成员。结果层删除“新 API 不可用”的事实误判,保留教程错误描述能力边界,以及删除原教学造成的跨章承诺断裂。

主观审查 跨章承诺断裂:保留 新 API 不可用:待裁决 客观核实 当前契约存在成员 真实运行逐项成功 结果层裁决 按证据优先级重算 删除:新 API 不可用 保留:能力边界与教学断裂
图 14 第 7 章 Diff 实验中的事实冲突裁决。直接运行与当前契约覆盖过时资料,只重算依赖该事实的教学结论。

这次实验展示了最终架构的核心价值:系统不假设某个模型或资料永远正确,而让冲突主张保留来源,由直接证据裁决事实,再按依赖关系重算教学结论。

当前证据只支持“小规模局部 Diff 可以单阶段直审”。另一个真实差异、整章删除、移动和大范围概念影响仍需后续实验,不能从一章成功外推。

13 讨论:哪些结果真正改变了系统

13.1 被停止路线及其保留价值

表 17 被停止路线、观察与当前决策
路线原始假设实验观察当前决策
扩建静态 Benchmark更完整消融能证明真实工具价值只能重复确认纯静态无法观察运行时保留小基线,不继续扩建
YAML 知识库结构化经验能提高规则触发和维护性三万 Token、字段分散,完整上下文仍大量漏检改为动作导向 Markdown,并持续实测
重型客观结论卡原子卡和证据等级能提高严谨性报告维护大增,Qwen 局部提高、DeepSeek 覆盖收缩保留验证语义,删除填表负担
只靠 Prompt 停止深挖明确停止点可以约束探索两轮差异大,DeepSeek 再次触发 512 MB OOMPrompt 保留提醒,安全不宣称已解决
具体 Todo 保证覆盖计划指向具体主张可减少遗漏Todo 变细,隐藏主题覆盖从 2/3 到 0/3只作工作记忆
主观逐维覆盖记录显式检查链能稳定恢复细粒度缺陷单样本从 0/2 到 2/2,但耗时增 56.1%、格式不稳不进入主线
独立解释专项缩小任务和上下文能提高召回第 9 章 0/2,第 11 章 0/1,仍超 Token 门槛停止专项调用
完整课程知识图显式状态和依赖图能减少空降误判状态易失效,导航加按需搜索已满足当前需要仅保留知识和工程状态区分
让核验删除候选第二模型可直接清理误报核验也会波动,删除使遗漏不可诊断原候选不可删除,只附核验意见
主客观共享扫描复用阅读可降成本并产生协同两轮成本更高、覆盖迁移,GLM 迁移也无优势独立扫描,结果层汇合

失败路线没有被视为无用历史。逐维记录证明阅读顺序可以影响探索;完整知识状态实验固定了知识与工程状态的差异;重型卡片证明关键上下文值得保留;共享扫描证明两条任务共享的是输入和结果接口,而不是推理职责。记录适用条件可以避免未来因遗忘重新走同一路线。

13.2 不同数字回答不同问题

项目已经产生多类数字,但不能混成一个系统准确率:

将代理指标与目标混淆,正是早期容易犯的错误。生产效果必须由人工真值评估,而不是选择一组最有利的内部数字。

13.3 当前得到支持的能力

当前基线已经完成以下闭环:客观疑点能进入原样复现、单变量对照和副作用回读;主观疑点能通过受控缺陷、最小作答和独立核验接受反驳;Qwen 与 DeepSeek 分工能稳定完成冻结任务范围;两条路线能以统一 JSON 进入后处理;第 8 章跑通全量流程;第 7 章跑通小规模 Diff 和一次真实证据冲突裁决;实验环境能够保存 Session、报告和用量,并在轮次间恢复项目与关键日志。

这些结果支持系统已经形成可试审基线,不支持宣称生产级准确率或完全无人值守。

14 局限与下一阶段

14.1 当前没有解决的问题

系统尚不能证明自然教程缺陷的总体召回率和误报率,也不能保证同一章节重复运行得到稳定集合。主观受控样本数量少,不同章节类型的迁移尚未完成;候选去重、人工处理成本和教程修订后真实读者是否学得更好仍待测量。

客观实验依赖 Windows 图形会话、当前编辑器、地图连接和 CLI。编辑器不能安全并行运行多组地图实验,权限、进程退出和机器重启仍影响无人值守体验。DeepSeek 的危险探索说明安全不能依赖 Prompt,外部资源控制尚未完整实现。

Diff 审查目前只有一个真实章节样本,整章删除、移动、重命名和大范围依赖变化没有进入主线。两条结果的关联目前以位置和主张语义为主,也需要更多真实数据检验去重与冲突处理。

14.2 通过标注建立量化闭环

当前最准确的状态是:

已经建立经过受控缺陷、真实编辑器、全量闭环和小规模增量审查验证的试审基线;尚未获得生产级人工真值。

下一阶段不继续围绕现有样本雕刻 Prompt,以免对测试题过拟合。工作计划是:

  1. 冻结当前主观和客观流程,对教程完成全量扫描;
  2. 上线标注网站,展示原文、候选、核验意见、证据、主客观冲突和 Session 来源;
  3. 由相关人员标注是否成立、是否重复、证据是否充分、是否值得修改;
  4. 抽样让标注者补查系统未报告的问题,避免只能计算候选精度;
  5. 形成可版本化人工真值集;
  6. 计算候选精确率、已知问题召回率、重复率、核验翻转率、跨轮稳定性、耗时和人工处理成本;
  7. 只针对真实数据暴露的主要误差修改扫描规则、上下文、模型分工、核验 Prompt 或外层控制器;
  8. 使用固定评测集回归,确认收益后更新基线;
  9. 基线成熟后,以 Diff 为主要入口持续审核教程更新,并逐步接入 CI。

这将把项目从“凭单轮报告感觉 Agent 变好”转向“用标注数据定位误差并优化系统”。模型、Prompt 和角色可以更换,人工真值、运行记录和评测协议提供稳定比较基准。

15 结论

这个项目最初面对的是教程中可执行错误和教学问题难以规模化审核,最终研究的是一个更一般的 Agent 工程问题:

当教程、模型、知识文档、日志和实验环境都可能出错时,如何让会遗漏、会自主探索的 LLM Agent,在可变游戏编辑器中完成可重复、可归因、可恢复的质量审计。

项目从开始便将事实正确性和教学有效性分成两条路线。客观路线证明真实执行是必要条件,但没有有效对照的实跑同样会误判;主观路线证明教学问题可以通过受控缺陷和最小作答变得可核验,但不能被伪装成唯一客观答案。两边都发现,更复杂的知识、格式和 Prompt 只会局部改变行为,不能代替候选锁定、独立核实和确定性控制。

当两条路线分别成熟后,共享扫描实验没有显示稳定收益。最终基线因此保留独立扫描和核实:Qwen 扩大候选范围,DeepSeek 处理客观运行时实验,独立 Qwen 会话核验教学疑点;真实编辑器与当前契约提供事实,程序管理输入、合约、状态、归档和恢复,结果层交换证据并保留分歧。

项目还没有生产级准确率,也没有解决所有随机性、安全和无人值守问题。它已经完成的,是把依赖个人经验和模型措辞的教程审查,改造成能够提出疑点、设计实验、记录直接结果、暴露冲突、接受反驳并持续校准的工程流程。下一阶段的人工标注将决定基线真实有效到什么程度,并为后续每次优化提供量化依据。