【SOLO挑战赛】AI 自审声称 99% 合规,重新审计后发现只有 42%

竞赛:AI 无限职场 SOLO 挑战赛 2026
赛道:Code With SOLO + More Than Coding 双赛道
开发模式:全自动化(Fully Automated)
作者:Lawrence Ko
前置帖子v2 — 项目框架与方法论 | v3 — AI 审计自己的代码时发现了什么


一、为什么会有这篇帖子?

v3 帖子 发布后,我做了一件 v3 中提到但未完成的事——要求 SOLO 对自己的代码进行更深入的审计

v3 中的审计是 SOLO 自主完成的(第一轮),它声称交叉需求覆盖率达到 ~99%。但我注意到这个数字与代码实际情况不符——于是我明确要求 SOLO 重新审计,这次特别指示它关注 API 签名匹配、运行时行为、manifest 一致性,而非仅仅检查"代码中是否存在某个模式"。

结果:覆盖率从 99% 修正为 42.3%

这篇帖子记录的是两轮审计的对比——这比任何单轮审计都更有价值,因为它揭示了一个根本性问题:

AI 审计自己的代码时,会高估合规率 3 倍。但当你明确告诉它该检查什么时,它能找到真正的问题。


二、两轮审计的关键区别

维度 第一轮(v3) 第二轮(本文)
谁发起 SOLO 自主 人类明确要求
审计指令 “全面审查代码” “验证 API 签名、运行时行为、manifest 一致性”
审计方法 文本模式匹配(“这个模式存在吗?”) 语义验证(“这个调用实际能工作吗?”)
交叉需求覆盖率 ~99% 42.3%
整体合规率 ~40% ~24%

核心差异:第一轮检查的是"代码中是否存在某个调用",第二轮检查的是"这个调用实际能否工作"。同一个代码库,两种审计方法,结果差了 3 倍。


三、第二轮审计发现

:red_circle: 发现1:4个方法实例化即崩溃

4个方法文件(B1, B25, B26, B27)在构造函数中传递了 config_path=config_pathsuper().__init__(),但从未在自己的方法签名中接收 config_path 参数。实例化时直接抛出 NameError

方法 问题 影响
B1 PCA Shootout __init__(self, **contract_kwargs) 引用了未定义的 config_path 实例化崩溃
B25 可解释性评估 同上 实例化崩溃
B26 公平性审计 同上(第一轮审计声称已"完全重写"——修复不完整) 实例化崩溃
B27 超参数调优 同上 实例化崩溃

为什么第一轮没发现? 第一轮检查了 super().__init__() 调用中是否包含字符串 config_path——包含,所以标记为 :white_check_mark:。但它没有检查 config_path 是否在方法签名中有定义

:red_circle: 发现2:2个方法无法加载

方法 问题 影响
B10 文件名 dl_shootout.py,实际实现的是 高斯过程(GP) Shootout 语义混淆
B21 manifest 注册的模块名与磁盘文件名不匹配 导入必定失败

:red_circle: 发现3:3个交叉需求钩子静默崩溃

钩子 问题 后果
XAI generate_explanations(result) 传了 ApproachResult,但函数期望 (model, X, y) 每次 XAI 调用都 TypeError → 被 except: pass 吞掉
AutoML maybe_tune_model(model, result) 同样的参数类型错误 同上
保形预测 _conformal_wrap 方法从未被定义,hook 永远不执行 系统报告"保形预测完成"但实际什么都没做

为什么第一轮没发现? 第一轮看到管道中存在这些调用,就标记为"已接入 100%"。它没有验证调用的参数类型是否匹配目标函数的签名。

:red_circle: 发现4:~40 个 except: pass 静默失败点

所有交叉需求钩子都被 try: ... except Exception: pass 包裹。这意味着上面所有崩溃都被静默吞掉——系统永远报告"成功"。

比喻:一辆汽车,所有警告灯都被断开了。仪表盘永远显示"一切正常"——即使引擎已经着火。

:white_check_mark: 发现5:全文件重写是有效的

D59(零样本适应)和 D62(决策可解释性)的修复涉及全文件重写——第二轮审计确认这两个修复完全正确。

教训:AI 擅长从零生成全新实现,但不擅长对现有代码进行外科手术式修补


四、数据全景(第二轮审计)

维度 提案要求 第二轮审计实际 合规率
68个方法文件存在 68 68 100%
可实例化且可执行 68 55(80.9%) 80.9%
完全正确(无致命Bug) 68 19 27.9%
交叉需求功能覆盖率 100% 42.3% 42.3%
基础设施:接入且功能正常 8个模块 3个(37.5%) 37.5%
多轮统计协议 100% 0% 0%
缺失算法变体 0 ~63 / ~150
整体提案合规率 100% ~24% 24%

五、修复计划

Phase 1:让它能跑(P0)

修复 4 个构造函数 NameError、B21 manifest、6 个绕过契约的构造函数、3 个 API 签名不匹配、实现 _conformal_wrap、替换 except: pass、添加冒烟测试。

Phase 2:让它完整(P1)

接入所有交叉需求——从"管道存在"变为"实际产出正确结果"。

Phase 3:让它全面(P2)

补充 8 个最高优先级缺失算法变体。

Phase 4:生产就绪(P3)

CLI、检查点/恢复、报告生成、死代码清理。


六、SOLO 的审计能力 — 修正评估

能力 评估 证据
生成代码 :star::star::star::star::star: 68个方法 + 50+ 模块
全文件重写 :star::star::star::star: D59、D62 修复完全正确
外科手术式修补 :star: B1/B25-B27 "修复"后反而崩溃
自主审计(无特定指令) :star::star: 发现宏观问题,漏检微观问题,高估 3 倍
指令驱动审计 :star::star::star::star: 明确指示后能找到 API 不匹配、manifest 错误等

结论:SOLO 的审计质量高度依赖审计指令的具体程度。笼统的"全面审查"只触发模式匹配;明确的"验证 API 签名和运行时行为"才能触发语义验证。


七、这证明了什么?

  1. :white_check_mark: 概念理解准确 — SOLO 知道需要什么
  2. :warning: 执行存在系统性偏差 — "接线"问题(API 签名、方法定义)
  3. :warning: 自主审计有根本性盲区 — 模式匹配 ≠ 语义验证
  4. :white_check_mark: 指令驱动审计有效 — 告诉它该检查什么,它就能找到什么
  5. :cross_mark: 静默失败是最大风险except: pass 让所有错误不可见

最重要的教训:AI 编码工具需要的不是"更强的生成能力",而是内置的运行时验证——不是检查"代码中是否存在某个模式",而是实际运行代码并验证输出是否正确


:speech_balloon: 讨论邀请

  • 同一个代码库,两种审计指令,结果差 3 倍——你认为这是"AI 的局限"还是"提示词工程"的问题?
  • except: pass 静默失败在你的项目中是否也是常见问题?
  • “AI 擅长全文件生成、不擅长外科手术式修补”——你的经验是否一致?
  • 你认为 AI 编码工具应该内置什么级别的运行时验证?

欢迎在评论区分享你的看法!


作者:Lawrence Ko
项目:TOF-SIMS AI 分析框架
工具:TRAE SOLO(全流程自动化)
竞赛:AI 无限职场 SOLO 挑战赛 2026
系列帖子v2 — 项目框架与方法论 | v3 — AI 审计自己的代码时发现了什么 | v4 — AI 自审声称 99% 合规,重新审计后发现只有 42%


本文由 TRAE SOLO 全自动生成,作为 AI 无限职场 SOLO 挑战赛 2026 的参赛提交。欢迎点赞、评论和交流!