AI-SDLC 实践 00|让 Coding Agent 参与整个项目周期:AI-SDLC 是什么、为什么要做

本系列讨论 AI-SDLC:让 Coding Agent 参与软件项目的整个周期,从需求理解、方案评审到开发、联调测试和交付,而不只停留在写代码这一环。

系列会讲清两件事:

  • 怎样把这条链路做成能跑完、能在中断后恢复、能证明结果正确的工程体系;
  • 每一处设计具体落在 Claude Code 和 Codex 的哪个机制上,包括 hooks、subagents、skills、MCP、权限与配置。

本篇是总纲,回答三个问题:

  • AI-SDLC 是什么;
  • 为什么要做,为什么是现在;
  • 要做成什么样。

AI-SDLC 是什么:让 Coding Agent 参与整个项目周期

SDLC(Software Development Life Cycle)指一个需求从提出到上线所经历的全部环节。

当前 Coding Agent 的提效集中在编码这一环:代码补全、对话式修改、按描述生成一个函数或一个页面。需求由谁理解、方案由谁评审、联调中暴露的问题由谁收口,仍然由人逐项完成。

问题在于,成熟的大型系统里,编码只是其中一环,而且不是最长的一环。前期的需求理解、方案评审,后期的联调测试,往往能占到一个项目周期的六成甚至更多。

公开调研的方向与此一致:微软 2024 年对 484 名开发者的调查(ICSE 2025 论文 Time Warp)显示,实际工作周里写代码的时间约占 11%;即使让开发者按理想状态分配,写代码也只占约 20%。

只在编码环节使用 AI,有两个局限。

第一个是效率有上限。被压缩的只是周期里不到一半的部分,需求理解多花的一周、联调多返工的一轮,编码再快也补不回来。

第二个局限更隐蔽,是上下文不足造成的质量问题。只参与编码的 Agent 拿到的是「改这段代码」的局部信息:

  • 它不知道需求为什么这样定;
  • 不知道方案评审时否掉了哪种做法、原因是什么;
  • 也不知道联调暴露了哪些接口约束。

在这种条件下,它写出的代码可以通过编译和单测,放进项目里却不对。

AI-SDLC 针对的正是这两个局限:让 Coding Agent 全流程参与项目开发,在每个阶段获取上下文,也把本阶段形成的上下文沉淀下来,以此提升交付质量。

需求清单与排除范围、技术方案与评审结论、改动与验证证据、联调记录与遗留问题,依次传给下一个阶段。人的工作集中到四类决策上:目标与范围、边界与授权、验收标准、外部动作。

这里真正的变化不在于 AI 做得多还是少,而在于阶段之间靠什么衔接。

AI 辅助编码时,衔接靠人:人读需求,人记住评审结论,人判断代码是否写完。AI-SDLC 里,衔接由落盘的产物承担,下一阶段和下一个 Agent 读的是产物,不是某个人对需求的理解。

所以 AI-SDLC 是工程问题,不是工具选型问题:必须定义每个阶段读什么、写什么、写完怎么检查。

它和我之前那篇《谈谈 AI-Ready 和 AI-SDLC》讨论的 AI-Ready 是上下层关系:AI-Ready 解决「AI 能不能看懂这个工程」,AI-SDLC 解决「AI 能不能参与并做完一次交付」。

为什么要做:编码提速之后的三个变化

第一个变化是压力转移到编码前后的环节。 编码越快,单位时间里进入评审、测试和合入的改动越多,这些环节原有的容量很快不够用。

OpenAI 在 2026 年 11 月 2 日的工程博客里给出了一个公开案例。Codex 让工程师可以并行推进更多工作,一名工程师往往同时有几个改动在等 CI,每次 push 又会触发多个任务拉取同一个提交。

从 2025 年底开始,承载其 monorepo 的系统跟不上这种负载,可靠性一度低于 90%,最终他们重写了 Git 后端。

源码管理这种过去不被视为瓶颈的环节,在编码提速之后成了瓶颈。前后环节不跟着改造,编码节省下来的时间会被积压吃掉。

第二个变化是个人用法的差异被放大。 每个人使用 AI 的方式不同:有人先让它出方案,有人直接让它写代码;有人逐行审查,有人看到测试通过就合入。

同一个需求交给两个人,过程和质量都不一样。好的做法停留在个人习惯里,出了问题也定位不到是哪一步出的错。把交付过程写成明确的阶段、产物和检查之后,做法才能在团队内共享,结果才能度量,改进才有对象。

第三个变化是问题从「AI 能不能写」变成「能不能放手让它做」。 Agent 一次运行可以持续很长时间,中途还会派出多个子 agent,人不可能逐步盯着。

此时决定能否放手的不是模型能力,而是有没有机制保证四件事:

  • 中断后能接着做;
  • 失败后不会原地重试;
  • 报告完成时确实完成;
  • 每一处改动都有证据。

这些保证不会随着模型升级自动出现。

至于为什么是现在:构件已经齐了。 Claude Code 和 Codex 都提供了 subagent(隔离上下文、并行执行)、skill(按需加载的方法)、hook(在固定时机触发的脚本)、MCP(连接外部系统)和细粒度的权限配置。

缺的是组装方法:哪件事交给哪个机制,用到什么程度,哪里不能用。本系列每一篇都会专门讨论这一部分。

要做成什么样:可靠执行与正确交付两个目标

Agent 说「全部完成」,其实要分开看两件事:流程是不是走到了最后,产出是不是符合要求。这两件事经常不一致。

举一个典型的工作流:需求是给 App 新增一个列表页,五个阶段都标成了完成,编译和单测全部通过。但问题有两处:

  • 设计稿只画了有数据时的样子,没画列表为空、加载失败时怎么显示,Agent 没有问,自己猜了一个样式;
  • 验收标准里写了「网络断开时提示用户重试」,却没有任何测试覆盖这一条。

从流程上看,每个阶段都走完了;从交付上看,有两处不符合要求。

反方向的情况同样存在:某个子任务的代码写对了,但对话太长被自动压缩之后,负责调度的主 Agent 忘了这个子任务的结果存在哪里,后面的阶段拿着旧方案继续往下做,最终交付出错。

前一种失败出在正确性,后一种出在执行,两者的修复手段几乎没有交集。补再多测试,也找不回一份丢失的结果;状态管理做得再严密,也拦不住一个被猜出来的界面。

因此 AI-SDLC 要同时达成两个目标,二者互不替代:任务可靠地跑完,结果确实是对的。 每个目标下各有五个必须解决的问题。

可靠执行:每一步有依据,中断能恢复

问题 解决办法
对话太长,Agent 记不清做到了哪一步 阶段状态、产物和验证记录写进任务目录,不只存在对话里
不同类型的任务,流程不一样 用流程定义规定有哪些阶段、先后依赖;每个阶段写明输入、执行、输出和检查
多个 Agent 协作时信息丢失 派任务时写明目标、必要资料和允许修改的范围;交回时给出可核对的产物,而不是一句「完成了」
出错后反复重试,却没有进展 先判断问题出在哪一环(需求、设计、实现、环境、授权),退回对应阶段处理,每条通道限定次数
只做完一部分,却报告全部完成 按实际走到的阶段、必需产物、检查结果和未解决的问题计算完成状态,不以 Agent 的自述为准

这一侧最容易被低估的是上下文压缩。长任务里压缩是常态,阶段状态和产物路径只要存在于对话中,就会在某次压缩时丢失。所以它们全部写进任务目录,恢复时读文件,不读模型对前文的印象。

正确交付:每个判断能对照事实核验

问题 解决办法
用通用经验代替这条业务的规则 读取当前业务的规则,确认规则的适用范围和来源
设计稿不完整,Agent 自己猜界面 回到设计源头取设计,逐个核对组件状态和视觉规范,缺的就问
编造不存在的 API,或重复造已有的组件 动手前先查当前代码、已有组件和接口定义
把一个平台的写法照搬到另一个平台 复用业务行为,同时分别遵守各平台自己的架构和编码约束
测试通过了,但没覆盖真正的需求 按验收标准逐条安排验证,没覆盖的条目明确列出来

这五个问题有一个共同的失败模式:用通用经验代替具体事实。推测替代设计源,记忆中的 API 替代当前的接口定义,测试通过替代验收覆盖。

这也呼应了第一节:Agent 参与的环节越多,能拿到的事实越多,需要靠经验去猜的地方就越少。

两个目标的共同原则

两张表里的解决办法背后是同一条原则:判断依据落盘的事实,不依据聊天记忆,也不依据模型的自述。

两个目标在「完成」的判定上交汇:验证通过不等于已提交,已提交不等于已上线,没有获得授权的外部动作要明确写成未执行。第 07 篇会展开这套判定。

架构分层:Coding Agent 宿主、CLI 与 Agent

既然 Claude Code、Codex 这类 Coding Agent 宿主已经提供了这么多机制,一个自然的想法是把整套流程直接写进去:状态机写成一个 skill,门禁写成一个 hook。这两种做法都有结构性问题。

skill 的正文由模型理解后执行。同一段「先检查 A 再推进到 B」的说明,在不同的工作流里执行结果并不一致,模型会跳步,会在上下文压力下省略检查。

hook 的问题在另一侧:它是否运行,取决于宿主版本、用户配置和信任设置,同一份配置在不同机器上不保证都会执行。

所以分成三层,各层的职责按「是否需要每次结果一致」来划:

  • Coding Agent 宿主负责执行能力与兜底。 会话、工具、权限上限、子 agent 的生命周期和外部连接由宿主提供;hook 在启动、压缩恢复等时机注入最小上下文,拦截明确的危险操作,但不推进状态,不代替用户授权,也不凭一条提示宣告任务完成。
  • CLI 负责状态与确定性校验。 运行状态的读写、阶段推进、产物登记和各类检查都是普通命令,相同输入得到相同输出,版本随一次运行冻结。
  • Agent 负责判断与组织。 理解需求、拆分任务、选择角色、失败后决定返修路线、判断什么时候必须问人,这些需要理解和取舍。

每种宿主机制在这套体系里具体管什么、Claude Code 和 Codex 两边的配置和行为有哪些差异,第 01 篇用一张对照表逐项说明。

衡量 AI-SDLC 自动化程度的四级阶梯

衡量 AI-SDLC 的自动化程度,看的是人在做什么。按这个标准可以分为四级:

  • L0 全手工:人写代码。
  • L1 Spec Driven Development:人写 spec 并充当守门员,一条标准流程里人要在七个左右的节点上确认,Agent 才能继续。
  • L2 Harness 飞轮:人只调整约束本身(规则、skill、角色、hook),Agent 在约束内全自动跑完整条流程,运行轨迹和评测结果回流给人。
  • L3 自演化:Agent 从失败轨迹里起草新规则,人审批后升级,指标退化就回滚。

上一级沉淀的 spec、规则和模式是下一级的原材料,四级之间是沉淀关系,不是替代关系。

多数团队目前处在 L1,最容易被跳过的是 L2。自演化的前提是能判断一次修改是否让结果变好,这需要稳定的度量、可重放的评测和单一变量的对照;没有这些,所谓自演化只是规则在随机漂移。

本系列的重心因此放在 L2 需要的工程设施上。

系列篇介绍

系列按交付阶段展开,底座和横切能力单独成篇。

每个阶段篇回答同一组问题:Agent 在这个阶段拿到什么上下文,做什么,产出什么,人在哪里决策,怎么检查,落到 Claude Code 和 Codex 的哪个机制上。

篇 主题
00 总纲:AI-SDLC 是什么、为什么要做
01 机制地图:六种机制各管什么,一套资产怎么跑在两个宿主上
02 流程底座:阶段合同、状态机与恢复
03 需求理解:把需求文档、设计稿和仓库事实收敛成唯一规格
04 方案设计与评审:把方案变成可执行的任务图
05 开发:多 Agent 按任务图并行
06 验证与联调测试:在冻结的候选版本上收口
07 交付:逐动作授权,部分完成不报完成
08 知识:分层读取,随交付回写
09 度量与评测:怎么证明这套流程变好了
10 插件化:一套流程服务多个团队
11 飞轮:把每次交付的问题沉淀回 Harness

机制本身的基础知识(hook 有哪些事件、skill 怎么写)在之前的 Harness Engineering 系列里讲过,本系列直接引用,只讨论这些机制如何组合成一条交付流水线。

下一篇画机制地图:Agent、Skill、Hook、MCP、入口文件与配置、Checker 六种机制各管什么,以及一套资产如何同时跑在 Claude Code 和 Codex 上。

相关推荐
zilingyun20212 小时前
AI 编程工具的尽头,是软件工厂
ai编程
jerrywus3 小时前
你还在手动seo? 那你可以试试claude-seo skill
agent·claude·seo
无责任此方_修行中4 小时前
模型变强了,架构为什么反而要变?——从"折叠 subagent"到"Super-agent"
人工智能·ai编程·deepseek
孔令飞4 小时前
AI 岗位类别、要求、技能及学习路线
云原生·go·ai编程
一缕82年的清风4 小时前
智能体“自主决策”的虚假繁荣:当 Claude 5.5 与 GPT-6.1 深入生产,为什么顶级架构师都在重回“确定性状态机”?
gpt·claude
拆房老料4 小时前
【第四部分:Agentic 智能体设计模式】17. Agent 路由模式详解:从意图识别到动态模型选择
java·设计模式·ai编程·策略模式
狂师4 小时前
GitHub 上最值得装的 8 个 Agent Skill 仓库,亲测好用!
程序员·github·ai编程
长不大的杨瑞杰7 小时前
OpenCode v2 GitLab 集成实战:Issue 驱动开发、MR 审查与 CI/CD 最小权限
人工智能·ci/cd·gitlab·ai编程·opencode
重生之我在番茄自学网安拯救世界16 小时前
AI 开发者日报 第1期(本周精选)| 插件市场投毒、智能体搞出“官僚饥荒村”,十年前的 CNN 打赢大模型
人工智能·网络安全·大模型·ai编程·智能体