AI Coding 项目生命周期管理:从探索到交付的 EMED 实战框架
Sprint 很"快",但没人能解释账单
一个四人团队使用 AI Coding Agent 把一个旧版 REST API 迁移到新 Schema。项目经理凭过去类似迁移的经验估算两周完成。开发者们对 Cursor 和 Claude Code 都很熟练。任务列表也很清晰。
两周后,60% 的迁移完成了。Token 成本是预估的三倍。两位开发者反映,他们花在审查和修正 AI 产出上的时间,比自己写代码还多。一位开发者在 Sprint 中途悄悄切换了模型,新模型的输出遵循了不同的模式。项目文档从未更新,因为"下次 AI 会做"。
这不是工具的失败——Agent 完全按照设计在工作。失败在于生命周期管理的缺口:团队把传统项目规划方法直接套用在 AI Coding 项目上,没有针对 AI 生成代码的独特属性做出调整——概率性输出、基于 Token 的成本、依赖上下文的质量,以及与人类开发根本不同的迭代模式。
本文提供一套完整的 AI Coding 项目生命周期框架。读完后,你将能够:
- 将任何 AI Coding 项目从初始想法结构化到验证交付;
- 用 Token 消耗模型而不是开发工时来估算成本;
- 管理 AI 生成代码的特有风险:幻觉、上下文漂移、质量隐性退化;
- 建立迭代控制机制,防止 Token 超支和范围爆炸;
- 为你的下一个 AI Coding 项目建立一份可复用的就绪检查清单。
本框架改编自 Managing AI Projects(Runtasewee & González Sánchez,O’Reilly,2026)中描述的 EMED(Exploration、Mobilization、Execution、Delivery)方法论,专门针对 AI 辅助软件开发的挑战进行了重新诠释。
一、建立正确模型:AI Coding 的 EMED 生命周期
EMED 把项目分成四个顺序阶段,每个阶段回答一个基本问题,确认后才进入下一阶段。
| 阶段 | 它回答的问题 | 何时结束 |
|---|---|---|
| 探索 Exploration | 该不该做?AI Coding Agent 能帮上忙吗? | 启动 / 不启动决策 |
| 动员 Mobilization | 项目环境是否已准备好让 AI Agent 高效工作? | 首份任务契约就绪 |
| 执行 Execution | Agent 是否在产出经过验证、边界受控、预算内的代码? | 所有验收条件满足 |
| 交付 Delivery | 结果是否已发布、文档化、可学习? | 回顾完成 |
这些阶段不是僵化的关卡。一个小 Bug 修复可能把探索和动员压缩到一小时。一次平台迁移可能仅在探索阶段就花上数周。价值在于问题本身,而不在于持续时长。
为什么 AI Coding 项目需要生命周期框架
传统软件项目管理假设实现过程是确定性的:给定明确需求和熟练开发者,产出是可预测的。AI Coding 在七个方面打破了这一假设。
这些转变不是理论推演。它们改变了你估算、规划和控制每个项目阶段的方式。EMED 框架在最关键的节点上逐一应对这些转变。
二、探索阶段:在花 Token 之前先做决定
探索阶段是大多数 AI Coding 团队跳过的阶段。诱惑太强了:“我们有工具,了解代码库,直接开干吧。“但探索阶段恰恰是你预防最昂贵失败的地方。
2.1 用 AI Coding 的语言定义问题
一个好的问题定义回答四个问题:
## 问题定义
### 我们期望的可观察结果是什么?
不是"重构认证模块",而是"新开发者在 30 分钟内就能添加一个 OAuth Provider,
无需阅读认证内部实现。"
### 什么在范围内,什么受保护?
范围内:认证 Provider 接口、配置、测试。
受保护:公开 API 契约、Session 存储格式、限流行为。
### "适合 AI"对这个工作意味着什么?
AI Coding Agent 擅长:基于模式的重构、样板代码生成、从规格生成测试、从代码生成文档。
AI Coding Agent 不擅长:全新架构决策、需要 Profiling 的性能优化、
边界不清晰的跨系统集成。
### 什么情况让我们在开始前就叫停?
- 修改需要理解运行时行为,而这些行为无法通过代码或测试捕获。
- 受保护的表面积大于变更面积。
- 团队没有在此领域审查 AI 产出的经验。2.2 在写第一个 Prompt 之前估算 Token 成本
Token 成本估算是 AI Coding 版本的工时估算。一个实用模型使用三个变量:
预估成本 = (单任务基础成本) × (预期迭代次数) × (上下文开销倍数)单任务基础成本取决于模型和任务复杂度。Aider 的多语言评测公开数据(225 道编码练习,涵盖六种语言,2026 年中)显示单任务成本从约 $0.03(Gemini 2.5 Pro)到 $0.13(GPT-5 高推理模式)不等。真实场景中由于携带完整仓库上下文,成本通常更高——Anthropic 的企业文档报告 Claude Code 平均每开发者每日活跃成本约 $13,换算为每日 5-8 个任务,约 $1.60-$2.60/任务(Aider 多语言基准,Claude Code 企业定价)。
预期迭代次数考虑了 AI Coding Agent 很少在首次尝试就产出正确输出的事实。对于熟悉领域中规格明确的任务,预期 1.5-2 次迭代。对于探索性或规格不清晰的工作,预期 3-5 次迭代。每次迭代都会重新发送完整上下文,因此迭代成本不是线性的——它是复合增长的。
上下文开销倍数是总消耗 Token 与实际任务相关 Token 的比率。在多轮 Agent 会话中,每一轮都包含完整的对话历史。一个 10 轮的调试会话,系统提示 4,000 Token + 仓库上下文 8,000 Token,意味着第 10 次 API 调用发送了约 120,000+ 输入 Token——即使新内容只有 200 Token。关于 Agent Token 消耗模式的研究显示,不同工具执行同一任务的上下文开销倍数差异可达 4.7×(How Do Coding Agents Spend Your Money?, 2026)。
一份实用的估算模板:
## Token 成本估算
任务类型:[规格明确 / 中等明确 / 探索性]
选定模型:[模型名称和推理级别]
单任务基础成本:$X.XX(来自基准或历史数据)
预期迭代次数:N
上下文开销倍数:M×(典型范围:2×–5×)
单任务预估成本:$X.XX × N × M = $Y.YY
Sprint 估算:Y 任务 × $Y.YY = $Z.ZZ
预算上限:$Z.ZZ × 1.5(应急缓冲)2.3 评估 AI 可行性
不是每个任务都适合 AI Coding Agent。使用这个决策矩阵:
| 因素 | 适合 AI | 不适合 AI |
|---|---|---|
| 规格清晰度 | 输入输出明确,验收条件清晰 | 需求模糊,边缘情况未定义 |
| 代码库熟悉度 | 团队了解领域且能审查产出 | 不熟悉的系统,无领域专家 |
| 变更范围 | 有边界:一个模块,清晰边界 | 跨切面:影响多个系统 |
| 验证方式 | 自动化测试存在或可编写 | 需要人工测试、用户观察 |
| 风险承受度 | 失败可恢复(分支、回滚) | 失败影响生产数据、用户、合规 |
当一个任务落入"不适合 AI"列,正确做法不是完全回避 AI,而是分解工作:把有边界、规格明确的子任务交给 AI,让人类处理需要判断力的部分。
2.4 探索阶段关卡
在进入动员阶段之前确认:
- 问题是用可观察结果定义的,而不是实现任务。
- 受保护表面已识别(API、数据格式、权限)。
- Token 成本估算已存在,包含应急缓冲。
- 团队至少有一人能审查目标领域的 AI 产出。
- 启动/不启动决策已记录,附有理由。
三、动员阶段:为 AI Agent 搭建项目环境
动员阶段为 AI Coding Agent 的高效、安全工作准备环境。这是 AI Coding 质量投入最多的地方——也是跳过步骤会制造最昂贵下游失败的地方。
3.1 构建上下文层
AI Coding Agent 在理解项目时产出更好。上下文层有三个组成部分:
项目规则(AGENTS.md 或等效文件)定义每个 Agent 会话必须遵循的工作契约:必需流程、命令、边界和完成定义。一份好的 AGENTS.md 是精炼的——它是一个指向被持有文档的索引,而不是复制所有规则的百科全书。
架构文档描述系统边界、模块归属和设计决策。这些信息人类开发者会在数周的工作中逐渐学到。对于 AI Agent,它必须被明确文档化并被引用。
任务级上下文(规格、验收条件、涉及文件)按任务加载而非全局加载。这防止了上下文窗口膨胀,同时确保每个任务拥有它需要的信息。
这些层之间的关系在AI Coding 如何在团队落地?中有深入探讨。生命周期管理的关键原则是:在第一个 Sprint 之前投资上下文,而不是在 Sprint 进行中。
3.2 定义自主权等级和任务契约
在任何 AI Coding 开始之前,建立谁可以用什么级别的监督做什么。自主权等级决定了 Agent(或使用 Agent 的开发者)在不需要额外批准的情况下可以采取的最大行动:
| 等级 | 允许的操作 | 所需审查 |
|---|---|---|
| 只读 | 查看代码、文档、测试输出 | 无 |
| 仅规划 | 生成计划、影响分析、方案 | 人类批准后才实施 |
| 分支实现 | 在功能分支上创建 AI 生成的代码 | Diff 审查和测试证据 |
| 已审查实现 | 合并经审查的 AI 生成代码 | CI 通过且负责人批准 |
| 专家审批 | 跨模块或高风险变更 | 领域专家加维护者审查 |
每份任务契约应明确:
## 任务契约
### 产出
完成时应该存在什么可观察的变化?
### 范围内 / 范围外
具体文件、模块和行为。
### 验收证据
- 必须通过的自动化测试
- 必须保持准确的文档
- 边界检查(什么绝对不能改变)
### 自主权等级
此任务适用哪个等级?
### 停止条件
- Token 预算超出
- 受保护表面受影响
- 意外的跨模块影响
- 同一子任务连续三次失败3.3 设置 Token 预算和迭代上限
Token 预算是 AI Coding 版本的时间预算。在三个层级设置:
单任务预算:单个任务的最大 Token(或美元成本)。超出时,开发者必须停下来分析原因,要么分解任务,要么调整方法。
Sprint 预算:一个 Sprint 的总 Token 分配。每天追踪消耗。当 70% 已消耗而剩余任务超过 30% 时,升级报告。
项目预算:项目总分配。包含应急缓冲(通常在估算基础上加 30-50%,因为探索阶段的估算对不熟悉的工作有高方差)。
迭代上限补充成本上限:**如果 Agent 在同一子任务上连续失败三次,停下来分析。**失败可能是上下文问题(信息缺失、规格模糊)或能力问题(模型无法很好地处理此类任务)。继续迭代只会消耗 Token,却不会带来相应进展。
3.4 配置工程约束
可执行控制比基于指令的规则更可靠。在第一个 Sprint 之前:
- 受保护分支拒绝未审查的 AI 生成代码;
- CI 运行聚焦测试、架构边界检查和格式化;
- Token 消耗被记录并可见(使用 ccusage 等工具);
- 禁止模式被检查(例如不更改公开契约、测试代码中不含生产凭证)。
3.5 动员阶段关卡
-
AGENTS.md和项目文档是最新且已验证的。 - 每种支持的 AI 工具的适配文件已配置并测试。
- Token 预算和迭代上限已在任务、Sprint 和项目三个层级设置。
- 自主权等级已定义并传达。
- 首份任务契约已编写,包含清晰的范围、验收和停止条件。
- CI 工程约束已激活并测试。
四、执行阶段:管理迭代循环
执行阶段是 AI Coding 项目花费最多时间的地方,也是 AI 生成代码的独特属性要求对传统项目管理做出最多调整的地方。
4.1 AI Coding 迭代循环
传统开发循环是:编写 → 测试 → 审查 → 合并。AI Coding 循环增加了两个关键步骤:
规格化 → 生成 → 检查 → 验证 → 调整上下文 → 重新生成(如需要)→ 审查 → 合并关键增加是检查和调整上下文。
检查意味着在运行测试之前阅读 AI 生成的代码。AI 输出可以通过测试的同时违反架构边界、在未测试路径中引入微妙 Bug,或遵循局部可行但规模化后出问题的模式。跳过检查只依赖测试的开发者正在接受他们看不见的风险。
调整上下文意味着当输出不满意时改进 Prompt、规则或任务规格。AI 输出不佳最常见的原因不是模型差,而是上下文不充分或模糊。每次失败的迭代都应触发上下文诊断,然后再重试:
第 1 次迭代失败 → 规格是否足够清晰?→ 改进规格
第 2 次迭代失败 → 模型是否有能力处理此类任务?→ 尝试不同模型或分解任务
第 3 次迭代失败 → 此任务适合 AI 吗?→ 考虑人工实现4.2 同时追踪成本和质量
传统 Sprint 追踪关注速度(完成的故事点)。AI Coding Sprint 追踪必须增加两个维度:
Token 成本速度:实际消耗 Token vs. 预算,每日追踪。单任务成本的飙升通常意味着上下文膨胀(Agent 加载了太多信息)或迭代螺旋(Agent 在无进展地反复重试)。
质量验收率:AI 生成输出通过审查无需重大修改的百分比。一个 Sprint 内持续下降的验收率意味着上下文层正在退化——也许项目规则正在过期,或者任务规格变得越来越不精确。
一个简单的追踪模板:
## Sprint 第 3 天报告
已完成任务:8 / 20
Token 预算消耗:$42 / $100 (42%)
每完成任务成本:$5.25(预算 $5.00)
质量验收率:75%(8 个中 6 个需要小修,2 个需要大改)
观察:
- 涉及支付模块的任务成本是平均的 3 倍。
- 根因:AGENTS.md 未描述支付状态机,Agent 加载了所有支付文件
(15,000+ Token)来推断行为。
- 行动:在下一个 Sprint 前向 docs/ 添加支付模块架构摘要。4.3 用 Spike 管理探索性实验
AI Coding 项目经常遇到可行性未知的任务。与其估算这些任务然后无法达成,不如使用探索性 Spike——有明确学习目标的时间盒调查:
## Spike:AI Agent 能否生成有效的迁移脚本?
时间盒:2 小时
Token 预算:$10
目标:确定 Claude Code 在当前文档条件下能否为我们的 Schema 变更
产出正确的迁移脚本。
成功标准:
- Agent 产出的迁移脚本通过 dry-run 测试。
- 开发者审查确认无数据丢失风险。
如果不成功:
- 记录缺失的上下文。
- 建议人工实现或补充文档。Spike 把不确定性转化为有边界的实验。它们防止了 AI Coding 中最昂贵的失败模式:Agent 在一个它无法完成的任务上烧穿 Token,而开发者在等待一个永远不会到来的结果。
4.4 处理范围变更和变更请求
AI Coding Agent 生成代码很快,这制造了一个微妙的风险:**生成的容易让范围变更感觉是免费的。**开发者可以让 Agent"顺便更新管理面板"或"趁你在这里,给边缘情况 X 加上错误处理”,而不考虑验证成本。
应用这条规则:**每个范围变更需要和原始工作一样的任务契约纪律。**一个范围增加必须有:
- 定义的产出和边界;
- 验收证据;
- Token 预算分配(从 Sprint 应急中扣除);
- 明确的停止条件。
没有这种纪律,AI Coding 项目会遭受一种新型的范围蔓延:不是"开发者多花了三天”,而是"Agent 生成了 2,000 行没人仔细审查的额外代码,其中三行破坏了构建。"
4.5 向利益相关方沟通进展
AI Coding 项目需要与传统项目不同的利益相关方沟通。习惯"完成 80%“报告的高层需要理解:
- 生成了什么(变更的文件、新增的功能、创建的测试);
- 验证了什么(测试通过、边界检查、审查完成);
- 未验证什么(已知差距、延后测试、风险区域);
- Token 成本 vs. 预算(消耗速率、预测总量、剩余应急)。
4.6 执行阶段关卡
- 所有任务契约都有验收证据。
- Token 消耗每日追踪且可见。
- 质量验收率被监控;下降趋势触发上下文审查。
- 范围变更遵循任务契约纪律。
- 利益相关方收到包含已验证/未验证区分的周报。
五、交付阶段:发布、文档化、学习
AI Coding 项目的交付包含传统软件交付的所有活动,外加三个针对 AI 生成代码的特定增加。
5.1 集成验证
AI Coding Agent 通常在分支内处理隔离的任务。集成——把多个 AI 生成的变更组合成连贯整体——需要明确验证:
- 组合变更是否保持内部一致性?
- AI 生成的变更之间是否有冲突?
- 集成结果是否仍满足原始架构边界?
在集成结果上运行完整测试套件、架构检查和边界验证,而不仅仅是在单个变更上。
5.2 文档同步
AI Coding 会话产生大量临时上下文:聊天记录、规划笔记、迭代日志。大部分不是持久的项目知识。在交付阶段,识别哪些决策和发现应该成为永久资产:
| 会话资产 | 处置方式 |
|---|---|
| AI 工作中发现的架构决策 | 升级为 ADR 或架构文档 |
| 新建立的模式或约定 | 添加到 AGENTS.md 或开发指南 |
| 任务级调试洞见 | 记录为评估案例供未来参考 |
| 临时的规划讨论 | 丢弃(不改变项目契约) |
| Token 消耗数据 | 汇总进项目成本报告 |
5.3 成本对账
将实际项目成本与探索阶段的估算进行对比。记录:
## 最终成本报告
预估 Token 成本:$350
实际 Token 成本:$485
偏差:+38.6%
分项:
- 计划任务:$310(在估算内)
- Spike 和实验:$45(不在原始估算中)
- 迭代超支(3 个任务超出预算):$80
- 上下文相关开销(支付模块):$50
经验教训:
- 支付模块文档缺口导致了 3× 上下文加载开销。
修复:架构摘要已添加到 docs/ ——预期可降低未来成本 30%。
- 两个探索性任务本应从一开始就是 Spike。
修复:Spike 标准已添加到动员阶段检查清单。这些数据输入下一个项目的探索阶段,使估算逐步变得更准确。
5.4 回顾:AI 改变了什么?
标准回顾问"做得好的和做得不好的”。AI Coding 回顾增加:
- 哪些任务适合 AI,哪些不适合? 更新可行性矩阵。
- 哪些模型在哪种任务类型上表现最好? 记录以供未来模型选型。
- 哪些上下文改进本可以减少迭代次数? 为下一个项目的动员阶段确定优先级。
- 哪些工程约束发现了问题,哪些问题逃过了? 加强薄弱的控制。
5.5 交付阶段关卡
- 所有验收条件都有证据满足。
- 集成测试在组合结果上通过。
- 文档与代码变更同步。
- 最终成本报告完成,包含偏差分析。
- 回顾发现已记录且可行动。
- 本项目的知识改善了下一个项目的探索阶段。
六、反模式:看起来有组织但会失败的做法
| 反模式 | 会发生什么 | 更好的做法 |
|---|---|---|
| 跳过探索,直接编码 | Token 预算在本该提前回答的可行性问题上耗尽 | 有时间盒的探索,附启动/不启动关卡 |
| 用人类任务的方式估算 AI 任务 | 估算遗漏迭代开销和上下文成本 | 基于 Token 的估算,附应急缓冲 |
| 不设迭代上限 | Agent 在一个任务上烧穿预算却无进展 | 三次迭代规则:停止、诊断、调整 |
| 被动添加上下文 | 每次失败触发一次上下文补丁;质量参差不齐 | 在动员阶段投资上下文,在第一个 Sprint 之前 |
| 所有任务同一自主权等级 | 高风险变更与低风险变更有同等自由度 | 基于任务风险和开发者能力的自主权等级 |
| “测试通过"是唯一质量关卡 | AI 输出通过测试但违反架构、引入技术债或遗漏边缘情况 | 检查 + 测试 + 边界检查 + 审查 |
| 范围变更不调整预算 | Token 预算在"快速添加"中无声超支 | 每个范围变更获得任务契约和预算分配 |
| Sprint 期间不追踪成本 | 期末才发现预算意外 | 每日 Token 消耗追踪,附升级阈值 |
| 每个项目从零开始 | 估算不改进;同样的错误重复 | 从交付到下一个探索的反馈闭环 |
七、端到端案例:迁移用户通知服务
为了让框架具体化,这里是一个真实风格项目的压缩演练。
项目:把用户通知服务从单体邮件发送器迁移到多通道调度器(邮件、短信、推送)。
探索(2 天)
- 问题定义:新通道可以在不修改调度器核心的情况下添加。
- 受保护表面:通知投递 API、用户偏好存储、限流。
- 可行性:调度器模式有充分文档;AI Agent 处理基于接口的重构表现良好。通道特定的业务逻辑(短信提供商集成、推送通知格式)不太适合 AI,可能需要人工审查。
- Token 估算:40 任务 × $5 平均 × 2 迭代 × 1.5 开销 = $600。应急:$900。
- 启动决策:继续,为短信和推送通道可行性规划 Spike。
动员(3 天)
AGENTS.md更新通知服务架构摘要。- 前 10 个任务(调度器接口、邮件适配器、测试)编写任务契约。
- Token 预算:总计 $900,每任务上限 $45,每 Spike $15。
- 自主权等级:调度器和邮件适配器为分支实现;短信和推送为仅规划(等待 Spike 结果)。
- CI 配置通知特定边界检查。
执行(2 周)
第 1 周:调度器接口和邮件适配器完成。Token 消耗:$280。质量验收率:85%。一个任务需要四次迭代,因为 AGENTS.md 没有描述重试策略——第二次失败后补充。
第 1 周 Spike:短信适配器。Agent 在两次迭代内产出了可行的实现。可行性确认;自主权从仅规划升级为分支实现。
第 2 周:短信适配器、推送适配器和集成测试完成。Token 消耗:$410(总计:$690 / $900)。推送适配器质量验收率较低(60%),因为供应商特定的 API 怪癖需要人工审查。
交付(2 天)
- 组合结果集成测试:所有 12 个通知场景通过。
- 文档更新:架构文档反映新调度器模式。
- 最终成本:$740(低于预算 18%)。短信 Spike 通过在全量实现前确认可行性,节省了估计 $100。
- 回顾发现:推送通知供应商文档应在类似未来工作前添加到项目上下文。
八、项目生命周期验收检查清单
当你能对以下问题回答"是"时,AI Coding 项目生命周期就是在有效运作的:
探索
- 每个项目从用可观察结果定义的问题开始,而不是实现任务。
- 在写第一个 Prompt 之前评估 AI 可行性。
- Token 成本估算存在,包含应急缓冲。
动员
- 上下文层(规则、架构、任务规格)在第一个 Sprint 之前建立。
- Token 预算和迭代上限在任务、Sprint 和项目三个层级设置。
- 自主权等级匹配任务风险和开发者能力。
- 工程约束是可执行的,而不仅仅是文档化的。
执行
- AI 输出在测试之前被检查,而不是仅在测试之后。
- 失败后调整上下文,而不只是重试。
- Token 消耗每日追踪,附升级阈值。
- 范围变更遵循任务契约纪律。
交付
- 集成验证覆盖组合的 AI 生成变更。
- 会话知识被提升为持久的项目资产。
- 最终成本报告包含偏差分析和经验教训。
- 回顾发现改善下一个项目的探索阶段。
结论:管理生命周期,而不只是工具
使用 AI Coding Agent 取得成功的团队,不是拥有最强大模型的团队,而是将项目管理适配到 AI 生成代码独特属性的团队。
EMED 框架提供了结构:
探索 → 在花 Token 之前先做决定
动员 → 在第一个 Sprint 之前投资上下文
执行 → 同时管理迭代、成本和质量
交付 → 发布、文档化、学习,并输入下一个项目从传统项目管理的转变不在于学习新工具。它在于认识到 AI Coding 改变了软件开发的基本经济学和风险——并相应地调整你的规划、估算和控制实践。
成熟的真正标志不是每个 Sprint 都用了 AI Agent。而是每个项目决策——从"该不该开始?“到"我们学到了什么?"——都考虑到了 AI 辅助开发的特定属性。
权威资料
- Malini Jain Runtasewee 和 Adrián González Sánchez,Managing AI Projects,O’Reilly Media,2026 年 5 月——EMED 方法论、ADRIAN 框架和 AI 项目管理生命周期。
- Paul Gauthier,Aider 多语言基准和成本数据——AI Coding 模型在六种语言中的公开单任务成本和通过率数据。
- Anthropic,Claude Code 企业文档——每开发者每日成本数据和使用模式。
- Kunal Ganglani,AI Agent 单任务成本:Token 预算与盈亏平衡数学(2026)——Agent Coding 会话的详细 Token 消耗分析。
- Coding Agent 如何花钱?(OpenReview,2026)——AI Coding Agent 中 Token 消耗模式和上下文开销的实证研究。
- Gartner,AI Coding 成本将在 2028 年超过普通开发者薪资(2026 年 6 月)——AI 辅助开发中 Token 消耗增长的行业预测。