但很多公司的软件开发流程并没有同步改变:需求仍然要开会、设计仍然要层层交接、代码仍然等待人工逐行审查、测试仍然集中在流程末端,线上问题仍然要等人发现后再重新排进 backlog。结果是,AI 把代码写得更快了,但项目整体并没有快多少。Anthropic 最近发布了一份《AI-Native SDLC Playbook》,提出了一个核心判断:当代码不再是最慢的环节,软件开发真正的瓶颈就会转移到代码两侧。
也就是需求、设计、测试、审核、发布和维护这些仍然按照人类速度运行的环节。这份指南讨论的不是“如何让 AI 多写几行代码”,而是如何把整个软件开发生命周期改造成 AI 原生流程。一、传统软件开发流程为什么开始跟不上了?
每个阶段通常由不同角色负责:产品经理写需求,架构师出设计,工程师写代码,测试团队做验证,发布团队上线,运维团队监控生产环境。这种分工并没有错。它的优点是责任明确、流程可追溯,也方便在大型组织中控制风险。过去,一个功能可能要开发几周甚至几个月。需求文档、估算会议、设计评审和安全检查,都是为了减少昂贵的返工。现在,AI Agent 可能在几小时内生成大量代码。于是原本合理的流程开始暴露出新的矛盾:AI 一次生成大量代码,但人工审查能力没有同步增长;安全团队按人类产能配置,审查队列却被 AI 生成的代码迅速填满;因此,AI 带来的不是简单的“开发阶段提速”,而是整个流程的速度失衡。二、什么是 AI 原生 SDLC?
AI 原生 SDLC,可以理解为一套围绕 AI Agent 重新设计的软件开发生命周期。1. 从线性流程变成循环
传统流程通常像一条流水线:需求交给设计,设计交给开发,开发交给测试,测试交给发布,发布后进入维护。AI 原生流程更像一个循环:生产环境的监控结果可以自动生成新的需求,需求经过设计、开发、测试和审核后再次发布。2. 每个阶段都有 AI 参与
AI 不只负责写代码,还可以帮助整理需求、生成设计方案、制定实施计划、运行测试、检查 Pull Request、分析线上异常。3. 每个阶段都留下机器可读的成果
每个阶段结束时,都要提交一个版本化的文件或代码成果,供下一个阶段读取:这些成果共同构成一条审计链,记录“谁提出了什么、AI 做了什么、谁审核了什么、最后结果如何”。三、第一阶段:Plan,把想法直接变成 intent.md
在传统流程中,一个想法通常要经过 backlog、用户故事、需求评审、估算和多轮 refinement,最后才可能到达工程团队。问题是,经过多次转述之后,最初提出问题的人想要解决的事情,可能已经变形了。AI 原生流程的做法是,让想法的提出者直接和 AI 对话,把问题整理成 intent.md。例如,客服运营人员可以直接描述:客户经常打电话询问理赔进度,客服大量时间被状态查询占用,希望在门户中展示理赔状态、下一步和预计日期。AI 再通过提问,帮助补充用户范围、约束条件和成功标准,最后生成结构化的 intent.md。但这里有一个重要边界:AI 可以帮助整理,产品负责人仍然需要审核和修正,确认文件确实表达了真实意图。四、第二阶段:Design,把需求和设计放进同一个工作会话
传统流程中,需求分析和设计经常由不同团队分阶段完成。分析师先写需求,设计师再把需求转成界面和交互,过程中会发生多次信息损耗。AI 原生流程倾向于把这两部分压缩到一个工作会话中:AI 读取已经批准的 intent.md,结合组织的品牌、合规、安全和用户体验规范,生成 spec.md。关键变化是:政策不再等到代码写完后才被发现,而是在设计阶段就被作为约束加载进来。产品负责人不必亲自把整份设计文档写出来,但仍然需要检查:设计是否真的解决了最初的问题,AI 标出的风险是否得到处理,以及高风险事项是否交给了正确的负责人。五、第三阶段:Build,先计划,再写代码
AI 原生开发并不等于“让 AI 直接开始改代码”。相反,这份指南强调:没有被接受的计划,就不应该开始实现。
工程师可以让 Claude Code 先进入 Plan Mode,读取 intent.md 和 spec.md,生成一份 plan.md。工程师先审查和修改计划,确认一个没有参与前期讨论的人也能只看 plan.md 完成实现,然后才允许 AI 写代码。这样做的好处是,设计方向错误时,修改一份文档远比修改一大批代码便宜。把团队知识写进 CLAUDE.md
传统团队知识往往散落在 Wiki、聊天记录和老员工记忆中。AI 原生团队会把新成员需要知道的内容整理到仓库里的 CLAUDE.md,例如:一个实用原则是:如果 AI 在同一个问题上犯了两次错,就考虑把修正写进 CLAUDE.md。但文件不宜太长。它应该像一个新成员入职第一天需要的工作手册,而不是把整个公司知识库都塞进上下文。Skills 和 Hooks 分别负责什么?
Skill:把安全、品牌、接口规范等知识写成 AI 能读取和执行的规则;Hook:在 AI 即将执行某个动作时,自动允许、询问或阻止它。Skill 更像“提醒和指导”,Hook 更像“真正的门禁”。对必须无条件遵守的政策,不能只依赖提示词或 Skill,还需要确定性的脚本、测试或审批机制。六、第四阶段:Test,把反馈循环放进开发过程
传统流程往往在开发末尾集中测试。AI 原生流程则要求 AI 在工作过程中持续验证自己的结果。AI 完成一部分工作后,应该自己运行这些检查;失败后先修复代码,再让人看到结果。对于 Bug 修复,指南建议先写一个能复现问题的失败测试,确认测试确实因为预期原因失败,再让 AI 修改代码使其通过。这样,测试就不只是“检查结果”,也成为防止 AI 修改测试来掩盖问题的证据。Continuous Evals:给 Agent 做持续评测
对于 AI Agent 本身,普通单元测试还不够。团队可以收集 20—50 个真实任务,把“输入是什么、什么结果算通过”写成评测案例。只要模型、Prompt、CLAUDE.md、Skill 或 Hook 发生变化,就自动运行这些评测,确认 Agent 的能力没有倒退。线上发生的每个重要事故,也应该增加为新的评测案例,避免同类问题再次发生。七、第五阶段:Deploy,让 AI 做审查,但保留人的最终责任
当 AI 生成的代码越来越多,人工逐行审查会成为新的瓶颈。AI 原生流程的做法不是取消审查,而是把审查分层:例如,可以在仓库中维护 REVIEW.md,规定审查必须分为三类:- Compliance:是否符合 spec.md、plan.md 和团队设计原则。
AI 的审查结果本身不能替代代码所有者审批。真正重要的改变是:人类不必再把时间花在寻找机械性问题上,而是可以重点判断“这项变更是否值得上线,以及风险是否可接受”。Hooks 作为发布门禁
对于生产环境部署、数据库迁移和基础设施修改等动作,可以通过 Hook 设置审批门禁。AI 可以完成构建、测试、审查和准备发布,但在真正触及生产环境前,必须等待指定人员授权。这保留了人类责任,同时避免让人类参与每一个普通文件编辑。八、第六阶段:Maintain,让线上问题自动回到开发循环
传统维护通常是被动的:监控发出告警,某个人发现后创建工单,团队再决定什么时候处理。例如,当测试失败率、线上 5xx 错误率或部署后的某个指标超出控制范围时:- 后续工作重新进入计划、设计、开发、测试和审查流程;
- 需要高风险操作时,通过 PR 或预先批准的回滚流程处理。
严重偏差:允许 AI 提交修复建议或触发经过批准的运行手册;这样,维护不再是生命周期的终点,而成为下一轮开发的起点。九、AI 原生 SDLC 最核心的变化:从“审查动作”到“审查成果”
在 AI 编程早期,很多人会盯着 Agent 每一步做了什么:它打开了哪个文件、运行了什么命令、修改了哪一行。当 Agent 能够运行更长时间、并行处理更多任务时,这种方式很难扩展。这就是“人类仍然负责,但不必监控每一个动作”的治理方式。十、普通团队应该从哪里开始?
不要一上来就试图把六个阶段全部自动化。更现实的路径是从几个低风险动作开始。第一步:建立一份短小的 CLAUDE.md
先写清楚项目如何构建、测试、运行,以及 AI 最容易犯的错误。把它提交到版本库,并像代码一样接受审查。第二步:要求 AI 先给计划
对于中等以上的开发任务,先让 Agent 输出影响文件、实施顺序、风险和验证方式,再开始修改代码。第三步:给 AI 一个反馈回路
确保项目有简单、稳定、可重复运行的测试、构建和截图检查命令。第四步:让 AI 做基础 PR 审查
先从 Bug、明显安全问题和是否符合计划开始,不要一开始就让 AI 取代人工代码所有者。第五步:把重复错误沉淀为规则
把反复出现的修正写进 CLAUDE.md 或 Skill;把必须强制执行的规则放进 Hook 或 CI。第六步:再考虑自动触发
当前面的规则、权限、测试和回滚路径足够成熟后,再让监控、工单或合并事件自动触发 Agent。AI 原生不是“让 AI 写更多代码”
Anthropic 这份 AI-native SDLC 指南最值得关注的地方,是它没有把 AI 编程理解成一个孤立的工具升级。当代码生成速度发生数量级变化时,需求、设计、测试、审查、发布和维护也必须重新设计,否则效率只会堵在代码两端。真正的 AI 原生开发流程,至少包含四个关键原则:能自动化的规则交给测试、Hook 和 CI,不能只靠口头约定。未来的软件团队,可能不再是“一个人负责一个任务”,而是一个人同时协调多个 Agent、审查多个成果,并维护一套让 Agent 能安全工作的系统。AI 能不能替代工程师?
当 AI 可以承担更多执行工作后,我们如何重新设计一套让人类保持判断力、让系统保持可控性的开发流程?