当 coding agent 能在几分钟内完成一个功能,人类点击“通过”是否就等于承担了责任?一篇来自 Dev.to 的文章把这个问题摆到了软件行业面前:AI 编程正在让代码生产变得更快,但现有的代码审查、合并批准和审计日志,可能只留下了“有人看过”的痕迹,却没有真正定义“人类签字”意味着什么。
一次通过审查的密码重置缺陷
文章作者提到,他曾让一个 coding agent 为一个小型应用构建密码重置功能。整个过程大约 5 分钟:邮件到达,链接打开,密码修改成功,用户也能用新密码登录。作者审查了代码,也批准了变更,表面上一切正常。
问题在于,重置链接在第二次访问时仍然有效。也就是说,这个实现满足了作者想到要检查的每一项行为,却漏掉了底下更关键的不变式:密码重置成功后,token 就应该失效。作者后来回顾这次失误时意识到,真正值得追问的并不只是框架或抽象是否成熟,而是另一个更根本的问题:当代码不是由人类直接写出时,人类的审批到底确立了什么责任?
在这个案例中,作者是流程中的“人类在环”,他的批准也留在了这段代码上。但这个批准本身没有证明任何足够具体的事情:它没有说明自己审查到了什么,没有说明哪些假设被验证过,也没有说明自己是否有足够时间和权力阻止问题上线。
软件行业有审批记录,却缺少“签字”的定义
这篇文章源于作者与 Sylwia Laskowska 的一次对话。双方讨论的起点包括初级开发者、资格认证,以及当 agent 能生成完整项目时,作品集是否还能证明能力。Sylwia 提出,软件工程未来也许会走向类似建筑行业的模式:更正式的资格认定和受监督的训练。作者并不完全认同这一方向,尤其不倾向于把有能力的自学者排除在外。但他认同其中一部分:建筑行业真正值得软件行业借鉴的,并不一定是执照考试,而是它对“签字”含义的明确定义。
在建筑和结构工程领域,注册工程师在图纸上盖章,并不只是表示“我看过,没问题”。这个印章代表一种专业声明,说明签字人与这项工作之间存在具体关系。根据不同司法辖区的要求,这种关系可能意味着直接监督与控制、对设计的详细了解,或者充分的独立验证和重新整理。仅仅通读别人画好的图纸、没有发现明显错误,未必足够。
如果工程师在未满足相应要求的情况下盖章,这种行为通常被称为 plan stamping。一些地区会将其视为纪律处分依据,包括罚款、暂停执业资格,甚至吊销执照。原因很直接:印章必须代表真实的专业责任,而不是仅仅让一个具备资格的人的名字出现在文件上。
软件行业其实也有自己的“签字”:pull request 上的批准、审计日志里的名字、工单中的审查者字段。但行业普遍缺少一个共同定义:这些批准到底证明了什么?
文章举了一个很现实的场景:如果一个团队使用 agent 每周生成数百项变更,并安排一名高级工程师负责批准,公司可以对外说每一项变更都经过了人类审查。但如果这名工程师没有时间检查证据,没有权力拒绝任何变更,也无法接触这些变更背后的假设,那么这份报告在流程上是准确的,在责任上却可能是空的。作者也承认,自己那次可重复使用的重置 token,本质上就是这种失败模式的一次个人版本。
AI 编程时代,审批需要四个条件
文章认为,如果软件行业希望“人类签字”真正有意义,可以借鉴工程专业长期形成的制度经验:签字必须对应一种可验证的关系。具体到 AI 生成代码的场景,作者提出至少需要同时满足四个条件。
- 清晰的说明。审查者需要知道这次变更提议了什么、检查了什么、哪些问题仍不确定,以及接受变更会带来什么后果。“测试通过”本身并不足以构成这种说明。在密码重置案例中,测试也通过了,但测试和实现编码了同样的错误假设。
- 足够的能力。审查者必须能识别问题,这意味着他们需要遇到过同类问题,或具备相应的经验基础。这也触及了 AI 编程时代的学徒制问题:如果初级开发者越来越多地借助 agent 完成任务,他们如何积累识别深层错误所需的能力?
- 真实的时间。不是名义上有时间,而是有足够时间检查证据。生成代码的速度可以迅速提高,但验证速度并不会同步无限扩展。审查吞吐量是一项真实约束。
- 拒绝的权力。审查者必须能够说“不”,并且这个“不”要能成立。如果审查意见可以被进度压力轻易推翻,那么审查就不再是控制机制,而只是流程装饰。组织成员会很快明白,批准只是形式。
这四个条件缺一不可。缺少任何一项,其他三项都可能被掏空:有时间但没能力,无法识别问题;有能力但没权力,无法阻止上线;有权力但没有清晰说明,判断就缺少依据。
从“有没有人审查”到“能不能阻止上线”
对软件团队来说,AI 编程带来的风险并不只是代码质量波动,而是审批流程可能在不知不觉中变成合规外观。生产速度加快,审查速度没有跟上,外部看起来仍有人类审批、日志记录和勾选完成的流程,但实际责任并未建立。
这也是为什么文章强调,组织不能只问“我们有没有人类审查”,而要进一步追问:审查者拥有什么?他们是否拿到了足够清晰的说明,是否具备识别问题的能力,是否有足够时间核实证据,是否拥有真正有效的否决权?
在 AI 生成代码越来越常见的背景下,这个问题不再只是工程管理细节,而是软件行业必须补上的一课。代码可以由 agent 生成,但责任不能只靠一个“已批准”按钮来承载。人类签字要有意义,就必须从流程留痕转向可验证的责任确认:审查者不只是名字出现在日志里,而是确实有能力、有信息、有时间、有权力阻止问题进入生产环境。
原创文章,作者:点点,如若转载,请注明出处:https://www.dian8dian.com/dang-ai-sheng-cheng-dai-ma-cheng-wei-ri-chang-ruan-jian