跳转至

00 总览与工作模型:AI 全流程开发到底在做什么

本章不教你任何具体命令。它要解决一个更根本的问题:你应该把 AI 放在什么位置,才能既快又不失控。


1. 先破三个误区

误区一:“AI 能自动完成整个项目,我只要说一句话”

这是最大的误解。AI 可以完成大量 执行 工作,但它不能替你承担 责任:

  • 它不知道你的真实商业目标;
  • 它不知道哪个功能可以砍、哪个不能砍;
  • 它无法判断你的用户会不会喜欢这个交互;
  • 它无法为线上事故负责;
  • 它会在信息不足时“合理地编造”。

所以正确的心智模型不是“AI 自动开发”,而是:

你是一支 AI 工程团队的技术负责人。你定目标、定边界、做验收;AI 负责需求分析、设计、编码、测试、部署和取证。

误区二:“模型越强,流程越不重要”

模型越强,单点能力越强,但 协调成本 也越高。一个 10 万行的项目,不是“一个超级模型从头写到尾”就能交付的。你需要:

  • 把大问题拆成小问题;
  • 让多个 Agent 在互不干扰的边界内工作;
  • 用契约保证它们能拼起来;
  • 用测试和证据保证它们没有骗你。

流程不是束缚,而是让强模型的能力可以被 并行、复用和验收。

误区三:“用了编译型语言,AI 就不会幻觉了”

编译型语言能消灭一类错误:类型不匹配、未定义变量、签名不兼容、明显的语法错误。它消灭不了另一类错误:

  • 业务规则理解错;
  • 权限判断漏了一个分支;
  • 并发场景下的竞态;
  • API 语义和前端预期不一致;
  • 数据迁移把历史数据弄丢。

编译器是测谎仪,但不是业务验收员。 编译型语言 + 单元测试 + 契约测试 + E2E + 人工验收,才是完整的质量体系。


2. AI 工程团队的工作模型

2.1 三种工作模式

模式 适用场景 人的参与度 风险
副驾驶(Copilot) 改一个函数、写一个脚本、解释代码 高,逐步确认 低
结对(Pair) 一个功能模块、一次重构 中,关键节点确认 中
团队(Team) 一个完整产品、多个功能并行 低,门禁确认 高,需要流程

本教程主要讲第三种。它要求你把 AI 当成“团队”来管理,而不是“工具”来使唤。

2.2 团队角色与交接物

┌──────────────────────────────────────────────────────────────┐
│                         人(产品负责人)                       │
│  目标 / 范围 / 优先级 / 审美 / 上线批准 / 最终验收              │
└───────────────┬──────────────────────────────────────────────┘
                │ 原始想法、约束、反馈
                ▼
┌──────────────────────────────────────────────────────────────┐
│  需求分析师 Agent                                             │
│  输出:spec.md / user-story.csv / user-story-details.md        │
└───────────────┬──────────────────────────────────────────────┘
                │ 已确认的需求与验收标准
                ▼
┌──────────────────────────────────────────────────────────────┐
│  架构师 Agent(强模型)                                        │
│  输出:tech-design.md / openapi.yaml / schema.sql / ADR        │
└───────────────┬──────────────────────────────────────────────┘
                │ 冻结的契约、模块边界、文件所有权
                ▼
┌───────────────┴──────────────────────────────────────────────┐
│  并行执行层                                                    │
│  ┌────────────┐  ┌────────────┐  ┌────────────┐               │
│  │ 后端 Agent │  │ 前端 Agent │  │ 测试 Agent │  ...          │
│  │ US-001     │  │ US-001     │  │ E2E        │               │
│  └────────────┘  └────────────┘  └────────────┘               │
│  输出:代码 / 单测 / 集成测试 / 功能报告                        │
└───────────────┬──────────────────────────────────────────────┘
                │ 合并后的可运行系统
                ▼
┌──────────────────────────────────────────────────────────────┐
│  质量与发布层                                                  │
│  代码审查 Agent → Chrome MCP E2E → Word 报告 → 部署 Agent       │
└───────────────┬──────────────────────────────────────────────┘
                │ 证据与报告
                ▼
┌──────────────────────────────────────────────────────────────┐
│                         人(最终验收)                         │
│  按 Word 报告走查 / 体验判断 / 签字 / 上线批准                  │
└──────────────────────────────────────────────────────────────┘

关键点:

  • 每个箭头都是一份文件,不是一段聊天记录。
  • 每个角色都有明确的“不做什么”,防止 AI 越权扩大范围。
  • 人只在门禁处介入,但门禁必须真实有效,不能走过场。

2.3 为什么必须“产物驱动”

聊天记录有三个致命问题:

  1. 不可检索:三天后你找不到“当时为什么这么定”。
  2. 不可并行:多个 Agent 不能可靠地共享同一段聊天上下文。
  3. 不可审计:出了问题,无法回溯是谁在什么假设下做的决定。

文件则有:

  • 版本历史:Git 记录每次变更。
  • 可引用:@docs/01-design/api/openapi.yaml 就能让 Agent 读取准确契约。
  • 可校验:CSV 可以用脚本校验,OpenAPI 可以 lint,SQL 可以迁移测试。
  • 可交接:新会话、新 Agent、新人都能从文件恢复上下文。

所以本教程的一个核心原则是:

不要让 AI “记住”,要让 AI “读文件”。


3. 上下文工程:AI 团队的“工作记忆”

3.1 上下文为什么会坏

一个 Claude Code 会话的上下文窗口是有限的。随着对话变长,会出现:

  • 注意力稀释:早期的重要约束被后来的闲聊淹没。
  • 错误累积:AI 前面说错了一句话,后面会围绕错误前提继续推理。
  • 成本上升:每轮都要重新发送大量历史 token。
  • 响应变慢:上下文越长,推理越慢。

3.2 五层上下文策略

层级 内容 生命周期 存放位置
L1 项目宪法 技术栈、目录、命令、禁止事项、完成标准 长期 CLAUDE.md
L2 契约 API、DB、模块边界、错误码 版本化 docs/01-design/
L3 当前任务 本次要做的用户故事、验收标准、文件所有权 一个会话 Agent 任务书
L4 工作记忆 搜索结果、代码片段、测试输出 临时 会话内,及时清理
L5 证据 截图、manifest、报告、日志 长期 docs/04-qa/

实践建议:

  1. CLAUDE.md 控制在 200-300 行以内。它是“宪法”,不是“百科全书”。细节放到 docs/ 里,用链接引用。
  2. 一个会话只做一个用户故事。做完就 /clear 或开新会话。
  3. 用 @文件 精确引用,不要让 AI “自己去找”。找文件的工作交给搜索 Agent。
  4. 大文件只读片段。先 rg 定位,再读 50-100 行,而不是整个文件塞进去。
  5. 让子 Agent 做脏活。搜索、批量读取、日志分析交给子 Agent,主会话只接收结论。
  6. 每次重要决策后写文件。不要依赖“AI 还记得”。

3.3 一个反例

你:帮我把用户模块做完。
AI:(读了 40 个文件,改了 15 个,跑了 3 次测试,上下文爆了)
你:登录接口的返回格式不对。
AI:好的,我把 UserResponse 改成……(但它已经忘了前面定的错误码规范)

正确做法:

你:@docs/00-discovery/user-story-details.md 中的 US-001(用户登录)。
     @docs/01-design/api/openapi.yaml 中的 POST /api/v1/auth/login。
     只修改 backend/internal/auth/ 下你拥有的文件。
     先写测试,再实现;完成后运行 go test -race ./internal/auth/...
     最后按 @模板/feature-report.md 生成报告。

4. 模型选择:好钢用在刀刃上

不同任务对模型能力的要求差异很大。一个实用的分工:

任务 建议模型档位 原因
需求访谈、架构设计、契约设计 最强模型 需要全局推理、发现矛盾、做权衡
复杂 bug 定位、并发问题 最强模型 需要深度推理
普通功能实现 中等/快速模型 有明确契约和测试,执行导向
模板化 CRUD、格式转换 快速模型 机械性强
代码搜索、日志摘要 快速模型 + 子 Agent 保护主上下文
最终代码审查 最强模型 需要发现隐蔽问题

如果你通过兼容 Anthropic API 的第三方模型使用 Claude Code(例如 DeepSeek、Kimi、GLM 等),可以在 ~/.claude/settings.json 中分别设置主模型和子 Agent 模型。注意:

  • 架构和审查用更强的模型,不要为了省钱让弱模型冻结契约。
  • 子 Agent 可以用便宜模型,但任务书要写得更具体。
  • 模型能力差异会影响提示词效果,同一套提示词在不同模型上可能需要微调。

具体配置方式见 05 开发环境搭建 的“模型与 Claude Code 配置”一节。


5. 并行开发:什么时候可以并行,什么时候不能

5.1 可以并行的条件

同时满足以下条件,才可以开多个 Agent 并行:

  1. 契约已冻结:API、DB、错误码、鉴权方式不再变。
  2. 文件所有权清晰:两个 Agent 不会改同一个文件。
  3. 数据库迁移可串行:迁移文件按时间戳排序,避免同时改 schema。
  4. 依赖已声明:谁依赖谁、合并顺序是什么,写清楚。
  5. 测试可独立运行:每个 Agent 能在自己的 worktree 里跑测试。

5.2 不能并行的信号

出现以下任一情况,停下来,先串行解决:

  • 两个故事都要改同一张核心表;
  • 两个故事都要改同一个共享组件;
  • API 契约还在讨论;
  • 数据库迁移还没定;
  • 认证/权限模型还没定;
  • 前端还在等后端接口格式。

5.3 并行的正确姿势

串行阶段:
  架构师冻结契约
    ↓
  创建 N 个 git worktree + 分支
    ↓
并行阶段:
  Agent A(US-001)  Agent B(US-002)  Agent C(US-003)
    ↓                   ↓                   ↓
  各自单测 + 集成测试 + 功能报告
    ↓
串行阶段:
  按依赖顺序合并 → 跑全量测试 → 修复冲突 → 更新 CSV

不要一上来就开 10 个 Agent。 先从 2-3 个开始,跑通协作流程,再逐步扩大。


6. 质量门禁:把“AI 说完成了”变成“证据说完成了”

6.1 完成的定义(Definition of Done)

一个用户故事只有同时满足以下条件,才能标记为 qa_pass:

  • 代码已合并到集成分支
  • 单元测试通过,覆盖率达标
  • 集成测试通过(真实数据库/容器)
  • E2E 流程通过(Chrome MCP)
  • 每一步有截图,Word 报告可读
  • 控制台无未处理错误,无 5xx
  • 代码审查无 P0/P1 问题
  • 功能实现报告已生成
  • CSV 状态由脚本更新
  • 人已走查并确认

6.2 证据链

用户故事(CSV)
  └─► 实现报告(docs/03-dev/reports/US-xxx.md)
        ├─► 代码提交(git commit)
        ├─► 单元测试结果(CI 日志)
        ├─► 集成测试结果(CI 日志)
        └─► E2E manifest(docs/04-qa/manifests/US-xxx.json)
              ├─► 步骤截图(docs/04-qa/screens/US-xxx/)
              ├─► 控制台日志
              ├─► 网络请求记录
              └─► Word 报告(docs/04-qa/e2e-report-dev.docx)

原则:任何一个“完成”结论,都必须能沿着证据链追溯到原始验收标准。

6.3 门禁不是审批,是止损

门禁的目的不是让流程变慢,而是让你在 成本最低的时候 发现问题:

  • 需求阶段发现方向错:改几行文档。
  • 设计阶段发现接口不合理:改 OpenAPI。
  • 编码阶段发现契约冲突:改几个文件。
  • 测试阶段发现业务逻辑错:改代码 + 补测试。
  • 上线后发现方向错:公关、退款、加班、事故复盘。

越往后,修复成本越高。门禁就是把“发现”尽量往前推。


7. 风险登记册:AI 全流程开发最容易翻车的地方

风险 表现 预防措施 兜底
需求幻觉 AI 自己加了没要求的功能 非目标写清楚;需求评审;契约冻结 砍功能,回到 G1
契约漂移 前后端字段对不上 OpenAPI 单一来源;生成类型 契约测试
并行冲突 两个 Agent 改同一文件 worktree + 文件所有权清单 串行合并
测试造假 AI 写“永远通过”的测试 审查测试;变异测试;E2E 人工走查
上下文污染 AI 越写越糊涂 一故事一会话;/clear;文件化 重开会话,读契约
截图刷屏 token 爆炸,成本失控 文本/JS 优先;截图只留证 降低截图频率
生产误操作 测试数据污染、误删 测试租户;数据前缀;只读优先 备份 + 回滚
凭证泄露 Syncthing 同步了长期密钥 用 SSO 短期凭证;加密同步 轮换密钥
过度并行 合并地狱 先 2-3 个 Agent 降并行度
AI 过度自信 “已完成”但没有证据 DoD + 证据链 门禁拒收

8. 度量:怎么知道这套方法有没有用

不要只盯着“AI 写了多少行代码”。建议跟踪以下指标:

指标 定义 目标
需求返工率 因需求变更导致的返工故事数 / 总故事数 < 20%
缺陷逃逸率 上线后发现的 P0/P1 缺陷数 / 总缺陷数 < 5%
门禁一次通过率 首次进入门禁即通过的比例 > 60%
故事周期时间 从 ready 到 qa_pass 的中位时间 逐月下降
人工评审时间 人花在走查/评审上的时间 逐月下降
Token 成本/故事 总 token 成本 / 完成故事数 稳定或下降
E2E 覆盖率 有 E2E 证据的 P0/P1 故事 / P0/P1 总故事 100%
回归缺陷数 修复后再次出现的问题数 趋近 0

注意:AI 可能让“代码产出量”暴涨,但如果缺陷逃逸率和评审时间也暴涨,说明流程有问题,而不是 AI 不行。


9. 成熟度模型:你现在在哪一级

级别 特征 典型问题
L0 手工作坊 让 AI 写片段,人工复制粘贴 上下文断裂,返工多
L1 结对开发 一个会话做一个功能,人工测试 质量不稳定,难并行
L2 流程化 有需求文档、契约、测试、报告 流程成本高,但可控
L3 并行化 多 Agent + worktree + 契约冻结 合并冲突,协调复杂
L4 流水线 CI/CD + 自动 E2E + Word 报告 + 监控 需要维护自动化资产
L5 自适应 根据风险动态调整门禁和并行度 需要长期数据和复盘

本教程的目标是把你从 L1 带到 L3/L4。不要一开始追求 L5,那需要团队级的工程文化。


10. 一周工作节奏示例

假设你是一个人 + AI 团队,做一个中等规模的产品:

时间 人的工作 AI 的工作 产物
周一上午 讲清目标、约束、非目标 需求访谈、生成 spec 和故事 G1 通过
周一下午 确认 UI 方向 Figma 设计、生成 ui-spec G2 通过
周二上午 确认视觉还原 生成 HTML/CSS 原型、Vue SPA G3 通过
周二下午 评审架构 技术设计、OpenAPI、DB schema G4 通过
周三 处理例外、评审契约 多 Agent 并行实现 + 单测 功能报告
周四 走查 Word 报告 E2E、修 bug、重新取证 G6 通过
周五上午 批准发布 CI/CD 部署、冒烟测试 G7 通过
周五下午 线上走查 线上 E2E、Word 报告、监控 发布验收
周末 复盘 整理反模式、更新模板 流程改进

关键:人的时间要集中在周一、周四、周五的“判断”上,而不是周三的“搬代码”上。


11. 本章小结

  • AI 全流程开发的本质是 管理一支 AI 工程团队,而不是使用一个更快的编辑器。
  • 产物驱动、契约冻结、门禁验收,是让 AI 的产出可控的三个支柱。
  • 上下文是稀缺资源,文件是可靠记忆。
  • 编译型语言能减少低级幻觉,但不能替代测试和人工判断。
  • 并行不是目的,减少返工才是目的。
  • 门禁不是官僚流程,而是成本最低的止损点。

下一章:01 需求调研 —— 把模糊想法变成可验收的用户故事。