small-export 故障诊断 AI 开发实践总结
实践统计范围:2026-09-23 至 2026-10-04。本文基于 10 月 7 日修订的复盘,需求与验收状态采用 10 月 4 日的 v2.6 归档快照。
small-export 这次实践表明,AI 已能在明确的系统约束下持续完成跨仓设计、实现、编译、故障注入、QEMU 验证和证据归档,形成多条真实故障诊断链路。完整功能验收仍待完成。下一轮改进应围绕交付组织工作:主 agent 保持目标和验收进度,测试子 agent 承担复杂排障,各项结果持续集成到同一候选产品;人工集中处理需求歧义和质量取舍。
本次主会话跨越约 10 天 18 小时,233 个运行回合累计记录 135 小时 9 分钟运行计时,识别到 51 条明确人工文字输入。这是人工定规格和纠偏、AI 持续自主执行的协作计时;人工投入和节省工时需要另设对照记录。早于 9 月 23 日的调研、原型和验证作为既有输入,统计从本次会话开始。
1 需求范围与已经达成的目标
1.1 需求实际覆盖什么
目标产品为 Hi3516DV300、Linux 5.10、ARM32、OpenHarmony Small。实施期间,本轮验收平台调整为 QEMU:阶段验证使用 Linux 6.6 ARM32 环境,最终软件功能验收使用 Mac 上的 3516 定向 Linux 5.10 ARM32 QEMU。物理开发板的外设、功耗和板级时序不在本轮软件验收的证明范围内。
需求涉及三类故障及公共基础设施:
| 范围 | 希望解决的问题 | 最终效果的判断标准 |
|---|---|---|
| AppFreeze | 应用主队列、生命周期和服务核心队列阻塞后缺少可靠诊断 | 正确计时,保留目标线程和进程现场,区分恢复与持续冻结;检测与慢采集相互隔离 |
| JS Error | JerryScript 异常需要可靠进入服务侧报告链 | 保留真实异常和来源,通过 notifyAppFault 认证通知;捕获过的异常不误报 |
| CppCrash | Native 崩溃日志需要多线程现场及可选 Jerry 信息 | 在正确时机采集,能证明归属和顺序才混排;无法关联时保留独立 JS 信息 |
| HiCollie Lite 与 BBox | 低资源系统需要轻量监控和另一条目标线程采集路径 | Timer 增删不引入动态分配;同次超时分别请求进程栈与 BBox 目标线程栈 |
| faultloggerd 与 HiSysEvent/Hiview | 日志文件、事件通知、读取及老化需要一致 | 取得 FD、完成文件后再发 LOG_PATH 事件;复用既有配额,验证真实读取效果 |
| 构建与裁剪 | Small 产品需要按所选诊断能力引入最小依赖 | 总关、Timer-only、JS-only、Native-only 等组合在源码、链接、线程和安装层面一致 |
这是一项系统工程需求。最初交接包拆为 17 个仓任务、180 条仓内用例和 43 条集成用例;9 月 27 日源码交付记录已经涉及 20 个仓。这些数字反映各阶段的工程规模;完成率应依据现行验收矩阵计算。后续 v2.6 调整了事件和老化方案,旧版通过项需要重新判断是否适用。
当前重要约束包括:应用至多一个共享诊断线程;生命周期切换期间暂停应用 Watchdog;应用身份由服务侧提供;BBox 每次调用检查权限;Native 与 Jerry 可独立裁剪;AppFreeze 日志不输出 maps 原文;终止功能默认关闭。当前进程内主队列及 abilityms 队列默认 3/6 秒,生命周期 Timer 默认 5/10 秒,通过产品构建参数配置。
1.2 已经取得的实际效果
| 产出 | 已有证据支持的效果 | 仍然存在的边界 |
|---|---|---|
| 需求与交接材料 | 首轮形成 12 个审视模块、48 项问题和 11 张时序图,随后落实 21 项人工评审意见并形成逐仓设计与测试交接 | 文档和图校验通过,只证明材料可供实施和审视 |
| 跨仓实现 | 监控、Jerry Provider、Native 采集、通知、文件管理、事件及构建配置均形成源码增量;保留精确补丁、构建及个人 fork 交付收据 | 各增量有各自父提交和依赖,需在固定候选上集成验收 |
| 真实 JS 通知链 | 10 月 3 日,两类 QEMU 各运行 6 个签名 HAP 场景;4 个正例分别生成正文、metadata 和 Native 附件并消费一次 LOG_PATH 事件,2 个 catch 例不报告;24 个文件及 12 个库热读、停机冷读一致 | 使用已核对的配套库和基础镜像;完整 VM、字段、资源边界及裁剪矩阵仍待验收 |
| Native 与 JS 栈 | 两类 QEMU 都取得真实 SIGSEGV、多线程、Native/Jerry 混排、独立 JS 及深栈截断证据;混排例记录 26 Native 帧与 4 JS 帧 | 日志仍为 PARTIAL;线程覆盖与栈底完整性分别记录,64 帧上限触发时保留截断标记 |
| HiCollie 双路采集 | Linux 5.10 组件场景取得 Native 3/3 或 4/4 线程,以及 BBox 7/13/15 帧;能够保留已验证混排或独立 JS | BBox 仍为 PARTIAL;该批 Linux 6.6 客体 BBox 为 ENOTTY,双环境结果分别保留 |
| 冷启动环境修复 | 定位 5.10 冷启动随机数未就绪,增加 QEMU virtio-rng 配置后,首次 JS 异常无需手工补熵即可走通文件与事件链;同时保留三类故障回归日志 | 证据适用于该批 QEMU 配置与用户态;最新全产品干净构建待验,物理 3516 随机数方案另行验证 |
这些结果已经证明 AI 能执行实际开发和运行验证,尤其能把编译问题、通信权限、真实异常和日志字节核验连起来处理。它们也暴露了后续最需要加强的环节:把多个局部已验证增量收敛到同一候选产品上,完成当前版本的完整功能验收。
1.3 哪些目标尚未完成
当前整体状态仍是 INCOMPLETE。现行主文保留六项待用户判断的 FAIL;非功能测试按用户要求 PAUSED,不阻塞本轮 QEMU 功能验收,也不计为 PASS。完整 FULL 报告与处置、字段及 VM 边界、裁剪、恢复和老化等矩阵仍未闭合。
10 月 4 日门限修正后,R01 的 61 项 GN 检查通过,R07 参数传播和目标源文件编译通过;完整 abilityms 构建被复用输出树中的 mbedTLS 重复生成规则阻塞,当前 3/6 秒 QEMU 验收尚未运行。5/10 秒结果保留为历史记录,现行门限需补做 QEMU 验收。
因此,本次可以评价为:需求、源码和若干真实故障链路已取得实质进展,最终软件功能验收尚未完成。 暂停的非功能测试属于范围管理决定;未闭合的功能项才是当前交付缺口。
2 AI 独立工作的输入时长与效果
2.1 支撑 AI 自主工作的输入
AI 开始本次工作时,已经具备以下基础:
| 输入 | 本实践中的具体内容 | 对自主执行的作用 |
|---|---|---|
| 既有工程材料 | small-export 与 AnrExp 中的原型、源码定位、补丁、日志和 QEMU 记录 | 提供可继承对象,减少凭空设计 |
| 人工技术判断 | 9 月 23 日的 21 项意见,明确裁剪、线程复用、生命周期互斥、身份、权限、日志格式与 JS/Native 边界 | 决定产品目标和不变量 |
| 可执行交接 | 逐仓修改点、接口和并发设计、测试用例、开发顺序、回退及 QEMU 搭建说明 | 让后续代理知道修改位置、验证方法和完成标准 |
| 工具与环境 | 源码工作树、工具链、QEMU、镜像、宿主测试、文件读取和个人 fork | 支持真正构建、运行、定位和交付 |
| 持续目标与授权 | 允许持续开发验证;中途明确最终使用 QEMU、停止 ZCode/workflow、暂停非功能测试、归档并提交候选源码 | 使 AI 能持续行动,同时限制工作范围 |
| 人工反馈 | 要求真实 BBox 双路日志、复用 faultloggerd 配额、采用 HiSysEvent + LOG_PATH、只维护一份现行设计、分开不同超时门限 | 修正架构和验收方向 |
这里“独立工作”的准确含义是:在这些输入和约束内,AI 自行阅读、实施、调试、执行测试和整理交付,人工无需逐条指定操作。 需求决策、运行环境恢复、模型选择和最终签收仍有人工参与。复用这种工作方式,需要一并准备工程材料、可运行环境和验收条件。
2.2 按阶段核算工作时长
下表采用主会话的 task_complete 与 turn_aborted 事件中记录的 duration_ms,包含已中止回合此前记录的运行时间。阶段按实际工作方式变化划分;回合从 1 开始编号,阶段小时数分别四舍五入。统计口径与数据摘要 · 233 回合计时与分类 CSV
| 阶段及北京时间 | 回合数 | 累计运行计时 | 输入与取得的效果 |
|---|---|---|---|
| 9 月 23 日 14:30–20:27,需求和交接设计 | 9 | 2.73 小时 | 基于既有资料和 21 项意见,完成模块设计、日志、逐仓交接与测试规格 |
| 9 月 23 日 20:38–24 日 21:22,Codex 驱动 ZCode | 21 | 21.16 小时 | 使用 GLM-5.3,后续用户手工切换 DeepSeek;推进 SDD/AR 流程,形成部分可继承实现与阶段 QEMU 证据,未完成全部需求签收 |
| 9 月 24 日 21:23–27 日 05:20,直接开发首阶段 | 59 | 55.25 小时 | 接管既有增量,推进跨仓链路、5.10 QEMU、真实报告和故障注入;整体仍未签收 |
| 9 月 27 日 07:26–30 日 11:32,评审与方案收敛 | 30 | 5.10 小时 | 暂停非功能测试、审视失败、交付源码与归档;进一步明确双路采集、事件字段、配额复用和唯一设计 |
| 10 月 1 日 19:07–4 日 08:34,按 v2.6 继续开发 | 114 | 50.91 小时 | 推进真实认证通知、受管附件、事件链、裁剪和环境修复;发现并修正规格门限范围,当前功能矩阵仍未完成 |
| 合计 | 233 | 135.16 小时 | 截至统计终点的累计执行与协作时间,整体功能验收待完成 |
其中 229 个正常结束回合累计 129 小时 44 分钟 29 秒;4 个中止回合累计 5 小时 24 分钟 50 秒。这里“正常结束”只表示该回合结束,不表示项目或该回合全部功能已验收。两者合计的未取整值为 486,559,101 毫秒,即约 135 小时 9 分钟 19 秒。
这一计时覆盖分析、工具操作、构建、QEMU 运行、等待、返工和归档,也可能包含回合内等待人工回复的时间。统计仅累计主会话回合时长,子代理和 ZCode 的时长不额外累加。会话日历跨度约 258.05 小时,回合间空档单独保留在日历跨度中。
记录中有 191 个回合携带自动继续目标的上下文,说明长任务已能跨回合推进;部分自动回合内仍收到人工消息。51 条人工文字输入包含正常评审、新增需求、环境恢复、纠偏和归档要求。进一步评估自主程度,需要记录每次人工介入的目的、耗时和影响。
2.3 哪些具体工作已经能够自主完成
三个有代表性的单回合结果是:
- 首轮需求整理约 19.7 分钟。 将已有材料组织为 12 个模块、48 项审视问题和 11 张时序图。这体现资料整合能力,前期调研时间并未包含在这 19.7 分钟内。
- 21 项意见修订约 40.7 分钟。 将人工约束落实到 v2 设计、字段、日志样例及图中。AI 能迅速把评审意见扩散到相关材料,但意见本身由人工提供。
- 直接接管首轮约 73.5 分钟。 盘点可继承实现,完成 R07 通知协议编解码的宿主、内存检查和 ARM32 QEMU 验证,同时取得旧八场景回归结果。该轮仍明确指出统一鉴权、落盘及最终环境的缺口,未把原型回归等同 v2 交付。
此后,AI 还完成了多轮真实故障构造、部署库哈希核对、权限拒绝验证、失败日志保留、冷停机后原文件回读和精确补丁交付。这些可复现的业务效果,是评价自主工作有效性的主要依据。统计口径与数据摘要
2.4 模型与工具在结果中分别起了什么作用
主会话元数据记录了 gpt-6-astra、gpt-6-sol、gpt-6.1-sol 和 gpt-6-luna;最初设计主要由 Astra 执行,后续由 Sol 系列等继续。ZCode 阶段另外存在 GLM-5.3 和用户手工切换 DeepSeek 的记录。主会话与 ZCode 分别记录模型来源,结果按对应执行层级归属。
任务、规格、工具和基线在过程中都发生了变化,后续阶段也继承了先前实现和监督结果。因此,成果应归于这套多模型协作过程。比较模型或工作流的效率,需要固定输入、任务和环境另做对照;此次停用工作流后的进展,为排查流程成本提供了线索。
2.5 测试工作在 135 小时中的位置
按整回合的主要工作主题回看,时长分布如下。每个回合归入一个类别,合计与主会话计时一致;分类描述工作包的重心。统计口径与数据摘要 · 233 回合计时与分类 CSV
| 工作包主题 | 回合数 | 累计运行计时 |
|---|---|---|
| 设计评审与归档为主 | 60 | 10.41 小时 |
| ZCode 监督与工作流混合 | 21 | 21.16 小时 |
| 产品实现与验证混合 | 103 | 79.23 小时 |
| 测试与验证主题 | 49 | 24.35 小时 |
24.35 小时是测试与验证主题工作包的时长。 其中还包括构建、环境排障和记录整理;测试活动也分布在其余类别中。测试编写、测试运行及失败定位各自占用的准确时长,需通过活动开始和结束记录进一步区分。现有分类适合定位流程改进点,纯测试工时及其上下界仍待细分统计。
主会话另记录了 60 次子 agent 创建调用,其中 54 次返回创建成功,6 次因并发上限失败。这提供了已有委派的规模;其对目标保持和开发效率的效果,需要结合任务边界、返回质量和验收进度评估。
3 哪里可以做得更好
3.1 首先解决流程本身制造的返工
9 月 24 日 R03 ProviderV2 的 AR 工作流快照记录了 25 次门禁 FAIL,分布在 v2–v6 的多轮尝试中。主要问题包括实现树与 QEMU 构建树错绑、格式工具路径错误、测试检查未扣除旧基线,以及重跑覆盖已经签名的报告。还有一些问题在门禁 PASS 后才被发现:例如质量检查读错源码根、复用空报告,或已签设计中的回滚语义错误。
这 25 次门禁失败同时涉及产品、流程适配和验证工具。先区分失败来源,再把修复落实到对应对象:
- 开始实施前一次性锁定源码树、构建树、产品配置、工具绝对路径和关键产物;先用一个最小真实客体用例验证整条工具链。
- 检查新增问题时使用冻结基线,避免把既有代码当作本次引入问题;要求静态检查的输入非空、覆盖真实变更和实际编译单元。
- 每次验证使用不可覆盖的运行目录;报告包含源码、配置、产物及客体加载库的哈希,重跑追加新记录。
- 同类环境或门禁错误重复出现时,先修复公共工具,再继续产品功能,避免用更多回合反复穿过同一个缺陷。
工作流的价值应体现在这些可执行约束上:检查真实输入,发现实际问题,并产出与当前版本相符的证据。
3.2 将含糊的需求修改落实为明确的变更范围
超时门限是本次最清楚的案例。10 月 1 日的简短输入要求“v2.6 修正到 5000/10000ms”;随后实现和文档把主队列与生命周期都统一为 5/10 秒。10 月 4 日人工明确:进程内检测默认 3/6 秒,只有生命周期为 5/10 秒。两套语义的边界最终才被重新拆开。
代码默认值在 10 月 3 日 13:41 修改,规格正文在当天 21:50 明确同步,间隔约 8 小时 9 分钟。期间已经取得的 5/10 秒队列测试只能保留为历史证据。这说明,即使测试与代码相互一致,也可能仍没有验证用户真正想要的规则。
更好的做法是在改动前生成一张简短差异表:修改哪个检测对象、旧值、新值、计时起点、可配置范围、哪些已有测试失效。若一句修改指令会扩展到另一个监控对象,应由 AI 主动指出歧义并取得范围确认。确认对象是这张具体差异表,无需人工重新审批所有常规开发步骤。
3.3 尽早复用现有机制并控制架构扩张
后续人工评审明确要求:日志经 faultloggerd 创建和完成;事件使用 HiSysEvent 与 LOG_PATH;不新增 PERSISTED、EVENT_ID、REVISION、COMMIT_SHA256 等事件字段;配额复用现有管理代码。当前方案因此不再依赖原 P09 的独立事务配额和旧 Importer 路线。
新增协议的价值,应由需求缺口和维护成本共同决定。在进入大规模跨仓实施前,AI 应先比较“现有机制能够覆盖什么、缺少的最小能力是什么、扩展协议会增加哪些维护成本”,把新增组件的理由交给架构负责人审视。复杂存储、跨进程协议、权限和恢复语义尤其适合在这个时间点介入。
3.4 更早把局部通过收敛成一个完整候选产品
多个阶段已经产生真实 PASS,但证据绑定的源码、配置、内核和镜像并不完全相同。例如,真实 JS 认证链验证曾因 Ace 与 Ability 的窗口宏不一致而缺少 SetUIContent;只重启重要 foundation 服务又触发 init 的整机重启策略。配套重编和冷启动后才获得可解释的结果。
应保留快速组件测试,同时固定一个可启动的候选产品清单。每完成一条业务链,就把它接入该候选上的端到端回归。用“同一候选已经闭合哪些功能项”安排后续工作,避免不断新增局部证据包,却很晚才发现组合构建、安装或运行缺口。
现行设计正文只保留当前合同及状态摘要,历史证据继续链接到附件;状态表至少绑定需求版本、源码清单、镜像哈希、用例、结果和遗留问题。这样既符合“只维护一份设计”的要求,又能降低长会话重新寻找有效规则的成本。
进一步把规格、代码和验证结果建立对应关系。门限、接口、编译宏或部署库发生变化时,将受影响的验收项标为“待复验”,保留旧结果及其版本。先运行受影响的定向测试,再完成候选集成回归。这样既能发现过期的 PASS,也能减少重复执行无关测试。
3.5 让验收能够推翻实现者的假设
本次记录中存在有价值的反例:5.10 冷启动 EAGAIN,线程都采到了但 complete=false,Native 深栈达到 64 帧上限,以及 BBox 采到栈却未达到预期调用链。另有测试观察器写错函数名、硬编码线程数或误要求 SyntaxError 携带执行帧的情况。产品实现与测试工具都需要被检验,红灯也需要先分类。
改进重点是提前固定有判别力的验收样例:错误身份必须拒绝,catch 的报告数为零,文件成功完成后才允许发布成功路径,FULL 按自身期限触发,缺少关联证据的 JS 归属保持未知。测试从需求推导输入和预期,优先覆盖身份、时序、恢复、裁剪等高风险边界。修改预期时说明是修正测试错误还是改变产品标准,并保留原始失败。
关键观察器还应通过已知成功和已知失败的样本校验,例如缺失附件、错误来源身份和重复事件。测试子 agent 独立阅读规格后设计这些判据,再与实现核对差异。这样可以同时检查产品行为和测试工具的识别能力。
3.6 让主 agent 持续对最终目标负责
10 月 2 日第 150 回合原计划推进 HiSysEvent/LOG_PATH 接入,随后转向重复核对超时文档;第 151 回合确认上一轮未推进源码实现。第 160 回合原计划验证 JS 单功能裁剪,也转向相同核对,第 161 回合再次恢复开发目标。这些记录显示了任务执行方向的偏移,值得把目标保持作为独立的改进项。具体成因还需结合任务恢复和历史指令分析。统计口径与数据摘要
测试子 agent 的首要用途是隔离复杂排障的上下文,让主 agent 保持交付目标。 即使串行执行,这种分工也有价值。主 agent 维护一份简短的现行任务表:最终交付条件、当前验收项、已完成证据、阻塞依赖和下一步。每轮选定一项能推进验收的工作,结束时记录新增实现、证据或决策。已完成事项在需求、代码、环境发生相关变化,或出现新反例时重新打开。
当一轮结束后任务表没有变化,主 agent 应检查工作是否重复、验证是否真正启动、依赖是否仍成立,并据此调整下一步。复杂日志和排障分支留在子任务,影响正确性与交付的结论进入主流程。最终集成和完成判断由主 agent 负责。
Anthropic 在 2025 年 9 月 29 日的上下文工程文章中提出了相同的职责划分:主 agent 保持高层计划,子 agent 使用独立上下文深入处理局部任务,再返回浓缩结果。这支持隔离设计;small-export 的实际收益可用下一轮的验收进度和重复工作量衡量。上下文工程实践
3.7 为测试子 agent 规定交接和停止条件
优先委派需要多轮排障、读取大量日志或搭建独立环境的测试。简短、稳定的定向检查可由主 agent 直接运行。任务粒度以一条业务链或一组相关验收条件为宜,让每次委派都产生可用于决策的结果。
| 交接内容 | small-export 中的具体要求 |
|---|---|
| 目标与判据 | 对应哪条现行需求;例如真实 JS 异常生成一份报告和一次 LOG_PATH 事件,catch 场景报告数为零 |
| 版本与环境 | 固定仓库提交、产品配置、镜像和实际加载库;使用指定的 5.10 或 6.6 QEMU |
| 上下文与修改范围 | 提供规格、接口、运行方法和必要证据;详细实现推理按需读取。测试、夹具和局部环境修复在约定范围内进行,产品语义或跨仓修改返回主 agent 处理 |
| 资源归属 | 各任务独立使用构建输出、QEMU 实例、可写镜像、串口和证据目录;源码写入按目录分工或使用独立工作树 |
| 停止条件 | 每轮排障说明假设及判别方法;同类失败重复且没有新证据时,返回已知事实和阻塞。任务包约定时间或尝试预算,超出后由主 agent 决定是否继续 |
| 返回结果 | 验证版本、验收项、PASS/FAIL/PARTIAL/环境阻塞、最小复现、证据路径、交付影响,以及需要主 agent 作出的决定 |
先从一个实现任务与一个测试任务开始,根据资源余量和任务独立性增加并发。等待测试时,主 agent 可以推进无依赖的工作;共享接口变更先协调,并将受影响结果标为待复验。测试返回后,主 agent 核对证据与候选版本,再更新验收状态。对于影响身份、日志完成顺序和栈归属的关键结论,应抽查原始日志或复现入口。
子 agent 的独立上下文、执行环境和验收判据各有作用:前者减少主流程被细节占据,环境隔离减少互相干扰,独立判据帮助发现实现者的遗漏。三者配合后,委派才形成完整的验证闭环。
3.8 用验收进度和返工成本衡量效率
后续计时以具体功能为单位,将实现、测试编写、测试运行、失败定位和人工等待分别记录;并行活动保留各自起止时间,交付周期按实际日历时间计算。重点观察三类指标:
- 交付进度: 固定候选上新增通过了哪些验收项,从首次输入到可复现通过用了多久;已通过项因何重新打开。
- 返工来源: 规格变化、环境故障、产品缺陷、测试错误及重复检查分别占用多少时间;统计在对应任务内发生的返工。
- 协调成本: 子 agent 交接后需要补充多少次信息,人工实际投入多少分钟,等待哪些决定,以及这些等待是否阻塞关键路径。
可在后续相近的业务链上比较主流程直接测试与测试子 agent 分工,记录任务规模、模型、环境差异,并同时观察回归质量和交付周期。这能帮助判断委派适用的任务粒度。独立性较低的任务若产生较多协调成本,就合并执行。
R03 历史报告还记录了一个 ZCode 时间窗内 947 次完成请求,约 4.83 亿输入 token,其中绝大多数为缓存读取。这反映该时间窗的处理量,包含成功工作和返工;费用需要结合计费规则核算,返工成本需要关联具体活动。主会话与 ZCode 用量分别记账。
4 哪些地方需要更多人工介入
更多人工价值应集中在影响方向和判据的位置。常规编译修复、工具操作和材料同步可以继续由 AI 完成。
| 介入位置 | 人工需要决定或核查什么 | 本次对应案例 | AI 应先准备什么 |
|---|---|---|---|
| 产品与验收范围 | 本轮交付到哪一层,哪些项暂停、哪些仍是必需功能 | 真机改 QEMU;非功能暂停;功能未完成仍保留 INCOMPLETE | 范围差异、受影响用例和明确交付条件 |
| 跨模块语义变更 | 简短指令是否适用于另一个监控对象或协议 | 主队列 3/6 秒与生命周期 5/10 秒被统一后再拆开 | 旧值、新值、对象、起点及回归影响表 |
| 架构成本 | 是否新增组件、协议、线程、配额或存储状态 | 旧事务/Importer 与现行 faultloggerd + HiSysEvent 方案收敛 | 现有能力证据、最小改动方案和维护成本比较 |
| 诊断正确性 | 采集结果能否支持预期结论,PARTIAL 是否可接受 | Native/Jerry 混排、BBox 调用链、线程覆盖与完整性差异 | 正例、反例、原始日志及未证明部分 |
| 失败处理策略 | 哪些未通过项继续修,哪些降级、延期或改变需求 | 用户要求未通过用例由其判断后再继续 | 重现条件、影响、修复代价与可选处置,不只给 FAIL 标签 |
| 最终交付签收 | 同一版本是否满足全部当前功能条件 | 多仓增量与局部 QEMU PASS 尚未形成整体通过 | 固定源码和镜像清单、完整功能矩阵、遗留项及回退证据 |
人工介入时,AI 应给出一个可直接判断的方案:需要决定的事项、推荐选项、主要代价、受影响验收项,以及等待期间可继续的任务。例如,对六项待判断 FAIL 分别标明依赖,仅暂停依赖该决定的分支;独立的构建修复、候选整理和其他验收继续推进。这样可将人工注意力集中到实际决策上。
网络、模型服务或 GUI 工具不可用时,用户曾恢复环境并手工切换模型。这类时间归入运行环境支持。能够由代理通过已授权标准接口解决的问题,应补入可复用工具;账号状态、外部设备或需要额外授权的设置由人工处理。
5 对后续 AI Coding 实践的启示
在 small-export 中,AI 已承担大量过去需要工程师逐步执行的工作:查源码、拆实现、改跨仓代码、解释编译错误、搭建测试、读取真实客体日志并整理交付。后续模型升级时,可以尝试减少围绕这些操作的详细提示和人工逐步监督,再用同一组回归用例判断这些流程是否仍有必要。
仍需保留的是清楚的目标、可执行的验收和可追溯的环境。这些工作本身也可以由 AI 协助编写和检查,但用户目标、真实运行结果和发布责任需要外部依据。一个代理同时提出设计、实现并生成测试时,仍应允许独立用例和人工领域判断推翻它的结论。
下一轮按以下顺序实施改进:
- 固定目标并维护验收进度。 用一页说明确认范围、关键不变量、当前候选和剩余功能项;每轮工作关联到其中一项,已完成事项按变更或新证据重开。
- 用一条真实业务链试行测试委派。 主 agent 推进实现和集成,子 agent 按固定版本独立验证,从故障触发跟踪到文件、事件和读取。按返回证据更新整体状态。
- 固化环境并复用有效结果。 消除基线错绑、输出树污染、宏不一致和证据覆盖;规格与代码变化时标出待复验项,再扩展 Native、JS、Freeze 及失败分支。
- 定期按结果调整分工。 对照新增通过项、重复工作、返工时间和人工投入,调整委派粒度与并发;把反复出现的公共问题沉淀为工具修复。
以本次归档状态作为后续开发起点,应将六项待判断 FAIL 整理为带依赖和处置选项的决策清单,同时推进独立的构建冲突修复与候选整理。依赖条件满足后,在固定候选上完成现行门限及剩余功能验收;非功能测试按既定暂停范围管理。交付完成以该候选的功能矩阵通过为依据。
附录 数据来源与统计口径
本文依据项目需求、构建记录、QEMU 故障日志和主会话运行事件进行复盘。功能结果采用 2026 年 10 月 4 日的归档状态,后续建议用于下一轮流程改进。
- 计时范围: 从 9 月 23 日主会话开始,到 10 月 4 日统计终点;233 个回合按开始、完成或中止事件配对,累计 486,559,101 毫秒。回合时间区间互不重叠,并行子 agent 和 ZCode 时长不额外累加。
- 人工输入: 排除环境、插件和自动目标上下文后,保留 51 条明确人工文字输入。人工介入目的与实际投入分钟数需另行记录。
- 分类方法: 按整回合的主要工作主题分类。测试与验证主题包含环境和构建工作,其他类别也包含测试活动;分类用于观察工作重心。
- 结果依据: 功能效果以相应版本的验证材料为准。本次复盘使用已有运行记录,新的产品构建与 QEMU 验收属于后续开发工作。
- 结论范围: 案例支持对实际产出、失败现象和改进机会的分析;节省工时比例、模型差异和流程因果效果需进一步对照。
可下载统计摘要 JSON与233 回合计时及分类 CSV,复核总时长、阶段划分和工作包统计。原始会话与工程日志保留在项目归档,附表提供正文所用统计及过程观察摘要。

Comments