乐于分享
好东西不私藏

当 AI 开始大规模提交代码,软件工程需要重新建立"责任链"

当 AI 开始大规模提交代码,软件工程需要重新建立"责任链"

基于 GitLab《AI 问责报告》的深度解读


一、一个被忽视的转折:代码的来源正在消失

过去二十年,软件工程围绕一个核心假设运转:代码是人写的

这个假设如此基础,以至于我们几乎意识不到它支撑了整套工程体系——需求评审确保人理解对了需求,代码评审确保人没写错逻辑,CI/CD 确保人没漏掉测试,发布审批确保人做出了负责任的决策。整个软件生命周期本质上是一套"人的责任链":谁写的、谁审的、谁批的、谁上的线,出了问题找得到人。

但 AI 编码工具的普及,正在 quietly 瓦解这个假设。

GitLab 最新发布的《AI 问责报告》调研了 1528 名 DevSecOps 从业者,一个数据格外刺眼:91% 的企业已经在同时使用两个以上的 AI 编码工具,54% 使用三个以上。AI 不再是程序员的"辅助插件",而是正在演变为研发基础设施的一部分。更关键的是,代码的构成正在发生结构性变化——过去一万行代码对应一万行人工输入,现在同样的一万行代码可能来自 30% 的人工、50% 的 Copilot 补全、20% 的 Agent 自动生成。

软件组织第一次面对一个根本性问题:我们不知道生产环境里的代码到底是谁产生的

这不是危言耸听。当一个 Agent 在凌晨自动提交了一个修复补丁,经过自动化测试后自动合并到主分支,第二天自动部署到生产环境——这个过程中,传统的"责任链"已经断裂了。没有人在代码评审时逐行看过这段代码,没有人明确签署过"我确认这段代码安全",甚至没有人知道这段代码是基于什么上下文生成的。我们获得了一个更快的交付流程,却失去了一个可追溯的责任体系。

这引出了报告的核心命题:AI Accountability(AI 问责制)——当 Agent 开始大规模参与代码生产,组织必须有能力回答三个问题:这段代码从哪来?它应该做什么?上线后谁对它负责?


二、写代码已经不是瓶颈,验证代码才是

报告中最具反直觉的一组数据:

  • 78%
     的 DevSecOps 人员认为,AI 编码工具让开发者写代码的速度显著提升;
  • 73%
     认为,进入生产环境的代码质量也有所改善;
  • 60%
     认为 AI 编码的投资回报超出预期。

看起来一切向好。但紧接着的另一组数据揭示了问题的另一面:

  • 85%
    受访者认为,AI 已经把软件开发的瓶颈从"写代码"转移到了"审核和验证代码";
  • 79%
     认为,虽然个人生产力提升了,但整体软件交付速度并没有同比例加速;
  • 82%
     担心 AI 生成的代码正在制造一种"新型技术债务",而大多数组织还没有准备好应对。

这组数据的矛盾性值得深思。AI 确实让代码生产更快了,但代码生产只是软件生命周期的一个环节。当代码生成速度翻倍,下游的代码评审、安全扫描、测试验证、部署审批并没有自动翻倍。相反,它们承受了更大的压力——因为 AI 生成的代码量更大、来源更杂、上下文更缺失。

报告中的一个细节很说明问题:开发者平均只把 16% 的时间花在写新代码上,其余时间分布在安全扫描、部署管理、故障响应、代码评审等环节。AI 优化了那 16%,却让剩下的 84% 变得更加复杂。这不是效率提升,而是瓶颈转移——从生产端转移到了验证端。

更深层的含义是:当代码生成成本趋近于零,"代码本身"开始贬值。过去一个工程师一天写 200 行代码,每一行都经过深思熟虑;现在一个 Agent 一小时生成 2000 行代码,其中可能混杂了不同模型的输出、不同 Prompt 的结果、不同上下文的片段。代码的稀缺性消失了,但理解代码、验证代码、治理代码的稀缺性急剧上升

这意味着软件工程的价值正在发生一次范式转移:从"如何更快生产代码"转向"如何确保生产的代码可信"。


三、AI Agent 时代,缺失的不是能力,而是"上下文"

为什么 AI 生成的代码经常"看起来对,用起来错"?

不是模型不会写代码。GPT-4、Claude、Gemini 在编程基准测试上的表现已经证明了它们具备足够的编码能力。真正的问题是:它们缺乏上下文

想象一个场景:一个 Agent 接到任务——“优化订单模块的性能”。它打开了 OrderService.java,分析了代码结构,识别出一个可以优化的数据库查询,重写了查询逻辑,提交了代码。从局部看,这个优化是合理的。但从全局看,它可能完全忽略了:

  • 这个查询之所以这样写,是因为三年前有一个并发安全问题;
  • 订单模块的表结构即将在下个季度重构,这次修改会增加迁移成本;
  • 这个查询的结果被下游的报表系统依赖,修改后可能导致报表数据不一致;
  • 当前业务正在推行一个"订单分片"的新架构,这次优化方向与新架构冲突。

Agent 看到了代码,但没有看到代码背后的需求上下文、历史上下文、架构上下文、业务上下文。它在做局部优化,但局部优化的总和可能损害全局目标。

报告将 Context(上下文) 定义为软件工程的新核心资产:围绕代码存在的业务需求、依赖关系、安全问题、部署信息、变更历史等关联信息。当代码生成成为商品,谁能为 AI 提供最完整的上下文,谁就能让 AI 做出最正确的决策

这也解释了为什么报告强调"集成"如此重要。调研显示,只有 28% 的企业认为其软件生命周期工具是"完全集成"的,50% 认为"大部分集成",20% 认为"部分集成"。工具链的碎片化意味着上下文也在碎片化——需求在 Jira 里,代码在 GitHub 里,安全扫描在 SonarQube 里,部署在 ArgoCD 里,监控在 Datadog 里。每个工具都掌握了一部分上下文,但没有工具掌握完整的上下文。Agent 在这样的环境中工作,本质上是在信息孤岛中做局部决策。

未来的研发平台竞争,将不再是"谁的模型生成代码更快",而是"谁能为 Agent 提供最完整的软件上下文"。


四、Traceability:每一行 AI 代码都需要一张"身份证"

如果说 Context 是 AI 做正确决策的前提,那么 Traceability(可追溯性) 就是事后问责的基础。

报告中的一个数据令人警醒:在过去一年经历过生产事故的企业中,34% 无法确定 AI 生成的代码是否参与其中。不是"确定参与了",也不是"确定没参与",而是"根本无从判断"。这意味着当线上出现故障时,有三分之一的企业连排查方向都无法确定——是 AI 写的代码出了问题?还是人写的代码出了问题?是 AI 的 Prompt 有问题?还是上下文理解有问题?

这个问题之所以严重,是因为传统的代码追溯体系假设所有代码都是人写的。Git 的提交记录告诉你谁改了哪行代码,但无法告诉你这段代码最初是 AI 生成的还是人工编写的;CI/CD 的流水线告诉你代码经过了哪些测试,但无法告诉你这些测试是否覆盖了 AI 生成代码的特殊风险;代码评审记录告诉你谁审了这段代码,但无法告诉你评审者是否知道这段代码来自 AI。

未来的代码需要一张"身份证",包含以下信息:

Code Artifact├── Origin(来源)│   ├── 生成工具:Copilot / Claude Code / 自定义 Agent│   ├── 模型版本:GPT-4o / Claude 3.5 Sonnet│   └── 生成时间:2025-07-10 14:23:07├── Intent(意图)│   ├── 关联需求:JIRA-2847 订单性能优化│   ├── 业务目标:降低 P95 延迟 30%│   └── 约束条件:不影响现有报表逻辑├── Agent Trace(执行轨迹)│   ├── 使用的 Tools:文件搜索、数据库查询、测试运行│   ├── 中间步骤:识别瓶颈 → 重写查询 → 运行测试 → 提交代码│   └── 人工干预点:第 3 步由人类确认查询逻辑├── Review History(评审历史)│   ├── AI 预评审:Security Agent 扫描通过│   ├── 人工评审:张三,重点检查并发安全│   └── 合并审批:李四,确认符合发布窗口└── Deployment History(部署历史)    ├── 部署环境:staging → production    ├── 部署时间:2025-07-11 02:00 UTC    └── 回滚标记:可回滚至上一版本

这不是幻想,而是 AI 时代软件供应链的必然要求。就像今天的软件供应链安全要求追踪每一个依赖包的来源(SBOM),未来的 AI 代码供应链也需要追踪每一行代码的"生成谱系"。报告将其称为 Code Attribution(代码归因)——确定一段代码是人写的还是 AI 生成的,以及是哪个工具、哪个模型、哪个 Prompt 生成的。这是可追溯性和治理的基础。


五、Governance:AI 时代需要新的研发控制体系

Governance(治理)在软件工程语境中常常被误解为"管理制度"或"合规流程"。但在 AI 时代,Governance 首先是一个技术体系——一套能够约束、验证、审计 AI 生成代码的工程机制。

传统的软件治理基于一个简单模型:

Human Developer → Code Review → CI/CD → Production

每个环节都有明确的"人"作为责任主体。但 AI 时代的研发流程变成了:

Human  ↓Agent(理解需求)  ↓Tool(生成代码)  ↓Model(补全逻辑)  ↓Generated Code  ↓Validation Agent(自动测试)  ↓Security Agent(安全扫描)  ↓Review Agent(代码评审)  ↓Human Approval(人工审批)  ↓Deploy Agent(自动部署)  ↓Production

这个链条中,“人"的节点被大量"Agent"和"Tool"替代。传统的治理机制——比如"代码必须经两人评审”——在 Agent 参与的场景下失去了意义:如果评审者也是 Agent,谁来评审评审者?

报告调研显示,77% 的企业已经建立了某种形式的 AI 代码治理政策,但其中只有 41% 是"全面的正式政策",37% 只是"一些指导原则"。更关键的是,80% 的受访者认为企业采用 AI 编码工具的速度超过了治理政策的制定速度78% 认为现有的代码评审流程不是为 AI 生成代码的规模设计的

这意味着我们需要构建一套AI-Native SDLC(AI 原生软件开发生命周期),至少包含三个层面:

1. Agent 身份与权限管理

每个参与代码生产的 Agent 都需要一个"数字身份":它是谁?被授权做什么?可以调用哪些模型?可以访问哪些代码库?可以执行哪些操作(读/写/提交/部署)?这类似于微服务架构中的服务身份认证,但应用于 Agent 层面。

2. AI 代码审计日志

每一次 AI 生成代码的行为都需要被记录:输入的 Prompt 是什么?提供的 Context 是什么?调用了哪些 Tool?生成了哪些文件?修改了哪些逻辑?测试结果如何?这不仅是合规要求,更是故障排查的基础——当一段 AI 代码引发问题时,审计日志是唯一的"黑匣子"。

3. 自动化质量门禁

传统的质量门禁(Quality Gate)基于人工规则,比如"代码覆盖率必须达到 80%"、“SonarQube 评分不能低于 A”。AI 时代需要更智能的门禁:

Agent 生成代码    ↓Security Scan Agent(检查 AI 常见安全漏洞模式)    ↓Test Agent(生成针对性测试用例,尤其是边界条件)    ↓Context Consistency Agent(检查代码与需求文档的一致性)    ↓Review Agent(检查代码风格、设计模式、架构合规性)    ↓Human Approval(关键变更仍需人类最终确认)    ↓Deploy

这个门禁系统的核心不是"阻止 AI 生成代码",而是"确保 AI 生成的代码满足与人类代码同等甚至更高的质量标准"。


六、下一代研发平台:软件上下文基础设施的竞争

如果我们将视野从"如何治理 AI 代码"提升到"未来研发平台应该长什么样",一个更宏大的图景浮现出来。

今天的 AI 编码工具本质上是"IDE + LLM"——在编辑器里接入一个大模型,提供代码补全、生成、解释等功能。这种模式解决了"写代码"的问题,但没有解决"理解软件系统"的问题。Agent 在 IDE 里看到的是单个文件或片段,看不到整个软件系统的全貌。

未来的研发平台应该是这样的架构:

┌─────────────────────────────────────────┐│           Agent Layer                   ││  (Coding Agent / Review Agent /         ││   Security Agent / Deploy Agent)        │├─────────────────────────────────────────┤│         Context Graph                   ││  (代码-需求-测试-部署-监控的关联图谱)    │├─────────────────────────────────────────┤│      Software Knowledge Base            ││  (架构文档、业务规则、历史决策、技术债务)  │├─────────────────────────────────────────┤│        SDLC Data Plane                  ││  (统一的需求、代码、CI/CD、运维数据层)    │├─────────────────────────────────────────┤│   Code / Issue / Test / Deploy / Ops   │└─────────────────────────────────────────┘

这不是简单的工具集成,而是软件上下文基础设施的构建。它的核心是一个"软件知识图谱"——将代码、需求、测试、部署、监控、文档等所有软件生命周期数据关联成一个可查询、可推理、可更新的图结构。Agent 不是基于孤立的文件片段做决策,而是基于完整的软件知识图谱做决策。

报告在最后提出了 AI 问责制的四个支柱:

  1. Governance(治理)
    可扩展的 AI 代码审查、审批和部署控制体系;
  2. Traceability(可追溯性)
    连接每一行代码到其原始意图、生成过程和责任人;
  3. Integrated Tooling(集成工具)
    贯穿完整软件生命周期的统一平台,保持上下文不丢失;
  4. Maintainability(可维护性)
    在代码量指数级增长的背景下,保持文档、上下文和治理机制的可持续性。

这四个支柱共同指向一个结论:AI Coding 的第一阶段——让机器参与代码生产——已经基本完成。第二阶段——让机器参与软件决策——正在进行。但真正困难的第三阶段——建立一个能够约束机器、理解机器、审计机器的软件工程体系——才刚刚开始。


七、结语:从"谁写了代码"到"为什么允许这段代码存在"

回顾软件工程的历史,每一次生产力工具的革新都伴随着工程范式的调整。从汇编到高级语言,我们建立了编译器和调试器;从单体到微服务,我们建立了容器化和 DevOps;从人工测试到自动化测试,我们建立了 CI/CD 流水线。

AI 编码是又一次生产力革新,但它带来的挑战比以往任何一次都更深层——因为它不仅改变了"如何写代码",还改变了"代码是谁写的"这个根本假设。当 Agent 成为研发团队的一员,软件工程关注的问题也必须随之升级:

  • 过去我们问"这段代码是谁写的",未来我们需要回答"为什么允许这段代码存在";
  • 过去我们关注"代码有没有 Bug",未来我们需要关注"AI 生成这段代码时理解了什么、误解了什么";
  • 过去我们信任"经过人工评审的代码",未来我们需要建立"经过 AI 验证 + 人类确认的代码"的新信任机制。

GitLab 的这份报告最有价值的启示,不是"AI Coding 很有效"——这已经是行业共识。而是:AI Coding 已经完成从实验工具到研发基础设施的转变,而软件工程正在进入"AI 生成软件治理时代"。在这个时代,组织的竞争力不再取决于谁生成代码更快,而取决于谁能管理 AI 生成的软件系统——谁能提供完整的上下文、建立可追溯的责任链、构建可扩展的治理体系。

最终,软件工程回归到一个古老而常新的命题:快不是目的,可信才是


本文基于 GitLab《The AI Accountability Report》(2026)及作者对 AI 软件工程趋势的研究撰写。