Vibe Coding 本身既不能保证安全,也不必然不安全。决定结果的是 AI 写完代码后,到代码服务真实用户之前经过什么系统。可靠的生产流程至少需要四个条件:隔离且可丢弃的执行环境、真实可版本化的仓库改动、明确负责的人工审查者,以及合并前自动运行的专业检查。
询问“某个模型能否生成安全代码”很难得到稳定答案。同一模型面对不同上下文、依赖和提示会产生不同结果。更可控的问题是:错误代码能否触及生产、是否留下可审查差异、谁批准,以及哪些检查会阻止合并。
AI 输出应与任何外部贡献一样被验证。生成速度可以很快,但进入主分支和生产的门槛不能因为作者是代理而降低。
代理应在独立工作区、容器或临时虚拟机中运行,拥有完成任务所需的最小权限。它可以安装依赖、启动服务和执行测试,但不能直接接触生产凭据、生产数据库或共享部署控制。
隔离环境必须尽量忠实于真实系统:同一仓库提交、锁定依赖、相同运行时和必要服务。完全不同的玩具沙箱即使安全,也不能证明改动在生产构建中可用。
任务结束后环境可以销毁。需要缓存依赖时,缓存不得包含密钥和用户数据,并要能按锁文件失效。多个代理并行工作时,各自拥有独立文件系统、端口和测试数据,避免互相污染。
代理产出必须表现为普通文件差异、提交或分支。团队应能看到新增、删除和修改内容,运行相同命令并恢复旧版本。只存在于聊天记录、平台预览或不可导出项目中的结果无法可靠审查。
每个分支只处理一个清晰任务,提交说明包含需求、影响范围、验证方法和已知风险。生成的迁移、锁文件、基础设施配置和测试都要进入同一审查范围,不能只展示界面截图。
每项改动必须由能够承担结果的人批准。审查者确认产品意图、数据影响、异常行为和发布策略,而不只是浏览代码风格。高风险变更需要对应领域负责人,例如支付、身份、安全或数据库所有者。
“AI 做的”不能成为无人负责的理由。批准意味着审查者理解变更目标,确认验证证据足够,并愿意处理上线后的问题。无人能够承担维护的代码不应合并。
通用测试之外,应按项目风险运行专门检查:密钥扫描、依赖漏洞与许可证、静态分析、类型检查、数据库迁移验证、权限测试、基础设施策略和测试覆盖变化。不同检查可以由传统工具或专门代理执行。
自动审查必须产生可追踪结果并能阻止合并。只在评论中给建议、失败后仍允许直接发布,不算门禁。严重级别、允许例外和例外到期时间要有明确规则。
需求与风险说明
→ 创建隔离环境和任务分支
→ AI 实现并运行本地检查
→ 生成可审查差异
→ 自动测试与专业门禁
→ 人工责任人审查
→ 合并主分支
→ 现有 CI 构建不可变产物
→ 暂存验证与渐进发布
→ 监控、回滚和复盘
顺序可以根据团队调整,但不能让代理从生成环境直接跳到生产。生产凭据只在受控发布阶段注入,构建产物由 CI 生成,而不是从代理工作区复制。
仓库中应保存架构边界、编码约定、允许依赖、测试命令、安全规则和数据处理要求。代理开始任务时先读取这些稳定资料,再检查相关代码。规则必须具体可验证,例如“所有组织数据查询必须包含服务端组织范围”,而不是“写安全代码”。
上下文还应说明禁止修改的区域、生成文件来源和需要额外批准的变更。这样代理能在速度较快的同时减少无意扩张范围。
开发代理通常只需要仓库、测试服务和临时凭据。代码托管令牌限制到单个仓库和必要操作,云凭据限制到临时环境,数据库使用自动生成的测试数据。任务完成后撤销短期凭据。
需要读取生产现象时,优先提供脱敏日志、只读指标或最小复现数据。不要为了方便调试让代理拥有生产写权限。
让同一个代理生成实现、设计测试并宣布安全,容易共享相同盲点。可以使用独立工具或不同审查代理做初筛,但最终仍要由负责人判断业务边界和风险。
定期用人工安全测试、故障演练和真实事故复盘校准自动门禁。若某类问题反复漏过,就把它转化为新的静态规则、测试或发布检查。
安全流水线不要求人工重写 AI 代码。代理可以在隔离环境中自主生成、运行检查和修复明确失败;人只在需求、风险和差异审查处介入。稳定的项目模板、缓存和并行检查可缩短等待。
小改动使用快速检查集,高风险区域触发更深测试。门禁按变更内容升级,比所有任务都执行最重流程更有效,也比无规则发布更可控。
紧急修复有时需要绕过非关键检查,但必须由明确负责人批准,记录原因、影响和补做时间。密钥泄露、权限测试失败或不可恢复迁移等阻断项不应被普通例外绕过。
所有手工发布和门禁跳过都要进入审计记录。否则实际流程会逐渐偏离书面规则。
故意提交测试失败、示例密钥、未授权访问和不兼容迁移,确认相应门禁会阻止合并。验证普通开发者和代理都不能直接写入受保护主分支,也不能从临时环境部署生产。
再执行一次回滚和凭据撤销演练。安全不只是发现坏代码,也包括在坏改动漏过后限制影响并快速恢复。
如果 AI 只能在隔离环境操作,所有输出都进入真实仓库并形成差异,每次合并都有责任人,自动专业检查不可绕过,发布仍经过团队现有 CI、暂存和监控,那么 Vibe Coding 可以成为生产开发方式。
如果结果只存在于封闭预览,没人阅读差异,测试由同一代理自说自话,或者代理持有生产权限并能直接发布,就仍然是高风险演示流程。安全来自持续执行的系统约束,而不是对某次生成结果的信心。