今天上午有一个看起来不大的需求:调一下菜单分组、把一个内部页面对全员开放、再加一道权限。
10:58 我把需求扔给 AI,15:23 生产环境 ci-deploy = success。
中间 5 小时,我只做了 4 件事:
- 澄清需求(5 分钟)
- 批 plan(1 分钟)
- 给 4 套测试账号(1 分钟)
- 看 PR + 按 merge(2 分钟)
加上看一眼飞书审批卡的 30 秒,全部有效介入:约 15 分钟。
不是炫技,是想分享一种 「让 AI 把流水线的每个工位都跑完,人只守关键的批准门」 的协作姿势。这是一次杠杆实验------把自己挪到流水线最有杠杆的位置,剩下的让 AI 接力跑。一个人能干一个小团队的活。
一、核心思路:把交付拆成「专员」流水线
不是让一个超级 AI 做所有事,而是把交付拆成 专门职责 的小角色 (subagent),每个角色:
- 有自己的 目录边界(越界会被 hook 拦下)
- 有自己的 工具白名单(只调它该调的)
- 跑完写一份轨迹文件留在硬盘上,让下一棒能接上
整条链:意图 → 计划 → 编码 → 验证 → 审批 → 部署 → 收尾,每一棒都是独立 agent。
关键点:人不是中介,是审批节点。AI 之间的 handoff 走文件,不走对话。
二、全流程时间线(5 小时内闭环)
步骤 1️⃣ 澄清需求(10--15 分钟)
我把需求扔给 AI,它启动了一个「头脑风暴」流程------一次只问一个问题:
"Q1:菜单这个分组改完后,普通用户在哪个分组里看到这个新功能?给你 3 个方案 + 推荐 + 各自的 trade-off"
我选 C,它接着问 Q2、Q3。聊完输出一份完整设计稿,等我点头才动手。
这一步是整条流水线最贵也最便宜的一段------AI 帮我把模糊念头拧成精确规格,避免后面五个 agent 在错误前提上做无用功。
→ 产物:intents/<日期>-<slug>.md

步骤 2️⃣ 出实施计划(2 分钟)
派一个只读的「架构师」agent ,看完意图 + 项目元数据 + 最近 20 条踩坑日志,写出分阶段实施计划。每阶段都标:
- ✅ 完成判定(具体到一行命令的输出)
- ❌ 不做什么(明确范围之外的部分)
它不能改代码------这是设计上的边界,避免它边规划边乱搞。
→ 产物:runs/<slug>/plan.md
步骤 3️⃣ 我批 plan(1 分钟)
看 plan,没异议就回"批准"。这是第一道人类闸门。
步骤 4️⃣ 编码(约 10 分钟)
派项目专员 agent------它的工作目录被锁死在某一个 repo 里,碰其它 repo 会被 hook 弹回来。
它读 plan 后自己干:
- 改代码
- 跑类型检查
- 清前端构建缓存
- 写一份「我改了啥 + 你需要重启 dev server」的报告
不 commit、不 push、不开 PR------这些动作要等审批门。
→ 产物:runs/<slug>/dev-report.md
步骤 5️⃣ 浏览器验证(约 80 分钟,可放着不管)
派 「视觉验收 agent」。它用浏览器自动化工具:
- 拿 4 套测试账号轮流登录
- 每个账号下,每张关键页都拍 3 档屏幕尺寸(手机 / 平板 / 笔记本)
- 跑 5 类预设探针:CJK 文字截断、表格列宽溢出、flex 兄弟挤压、纵向堆叠、网络 4xx
最后输出 「GO / NO-GO」判定:
| 结果 | 数量 |
|---|---|
| 截图归档 | 21 张 |
| API 鉴权用例(是否 403?未登录 → 是否 401?) | 9 条全过 |
| pre-existing layout 警告(不阻塞) | 1 条,记录留到下次治理 |
→ 产物:runs/<slug>/verification-report.md + screenshots/

步骤 6️⃣ 审批门(这一步必须有人)
派**「部署看门人 agent」**。它干三件事:
- 把 diff、截图、curl 结果、安全审查凑成一张互动审批卡,推到飞书
- 写
gate.json标记status=pending - 然后就不动了------等人在手机上点"批准"
这是设计上最关键的"人类时刻"。AI 不能自批,无论多绿都不行。

步骤 7️⃣ 我点"批准"(30 秒)
收到飞书卡 → 我看一眼 5 个改动文件 + 9 条 curl 结果 + 截图 → 在主对话回 /approve <slug>。
gate.json 翻成 approved → 触发后续动作。
步骤 8️⃣ 提交 → PR → 自动部署(约 3 分钟)
批准后 AI 自己接着跑:
git checkout -b feat/...切 feature 分支- 英文 commit(写在 memory 里:PR 一律英文)
- push 到 GitHub
gh pr create开 PR
第二道人类闸门:merge 按钮我按。这条产线规则是 "merge=立即部署",所以我必须看清楚才合。
我 merge 完跟 AI 说一声 → 它立即:
- 把 GitHub 的 commit 镜像同步到镜像源(生产服务器从那边拉代码)
- 查 CI 流水线状态:
ci-deploy = success✅

步骤 9️⃣ 收尾(1 分钟)
AI 自动:
gate.json.status = shipped- 写一份
done.md列出 PR / commit / CI / 截图位置 - 把"踩坑教训"追加到团队的
feedback-log.md(下次规划时其它 agent 会读) - 把意图文件归档到这次交付的目录里
- 给飞书发一条 SHIPPED 通知
三、用到的工具与技术手段
不讲实现细节,只讲用它解决了什么问题。
| 工具 / 手段 | 解决的痛点 |
|---|---|
| 专职 subagent(10+ 个角色) | 让每个 agent 专注一件事;上下文不污染;权限边界清晰 |
| 目录 / 工具白名单(hook 拦截) | 防止 agent 越界改错项目;权限即代码 |
| 文件作为唯一 handoff 渠道 | agent A 写 plan.md,agent B 读 plan.md;不靠"记忆传话" |
| 审批门 + 飞书互动卡 | 关键决策必须人类盖章;手机点一下就回到流水线 |
| 「头脑风暴」一次一问 | 强制把模糊需求收敛成精确设计,避免 AI 自由发挥 |
| 多档 viewport 自动截图 | 单分辨率会漏 50% 的 UI bug;CJK 在某些尺寸下会竖排 |
| 角色 × 视图矩阵自动跑 | 4 角色 × 3 屏幕 × N 页面,人工跑要 1 小时,AI 跑 80 分钟(包含登录、拍照、写报告) |
| 预设 probe(探针) | 把"上次踩的坑"沉淀成自动检查项,下次不再踩 |
| feedback-log(团队共享教训) | 每次交付沉淀一行经验,下一棒 planner 必读 |
| 多 remote 同步(CI 一边,生产一边) | 让 CI 触发与生产代码源解耦,便于跨网络环境部署 |
| 审批 KV + webhook 轮询 | 手机点了"批准",桌面上的流水线立刻继续 |
四、回到杠杆这件事
回到开头那 15 分钟 vs 5 小时的账。我具体是怎么花的:
| 我做了什么 | 时长 |
|---|---|
| 写需求 | 5 分钟 |
| 看 plan | 1 分钟 |
| 给 4 套测试账号 | 1 分钟 |
| 看飞书卡批准 | 30 秒 |
| 看 PR 内容点 merge | 2 分钟 |
| 小计 | 约 10 分钟(含等待切换的零碎时间约 15 分钟) |
剩下 5 小时,是 AI 在跑、在等我。
这不是"AI 取代我"------是我把自己挪到了流水线最有杠杆的位置:定方向、把关键、踩刹车。
杠杆点在哪?三个动作:
- 澄清 --- 决定要做什么、不做什么。一次决策影响后面 5 棒
- 批 plan --- 决定怎么做。看一遍计划,避免后面跑错方向
- 批审批卡 + merge PR --- 决定该不该上线。最终质量门
这三件事没法机械化 ,必须人来做。其它重复、可机械化、有明确判定标准的工作(写 boilerplate / 跑 4 角色登录截图 / 拼审批卡 / 同步镜像)全部交给流水线。
最让我满意的不是速度,是可追溯 ------runs/<slug>/ 这个文件夹里 11 个文件完整记录了这次交付的每一步:意图、计划、改了啥、测了啥、审批了什么、部署了什么、踩了什么坑。半年后再翻,整个故事都在。
AI 协作的下一步不是「prompt 写得多好」,而是「流水线设计得多清晰」。 让人守关键门、AI 跑工位,是当下能落地、效果可验证的最优解。
附:流程图源码(Mermaid)
(头脑风暴 agent)
10-15 min"] Brainstorm --> IntentMd[["intents/<slug>.md"]] IntentMd --> Planner["2. 出计划
(只读架构师 agent)
2 min"] Planner --> PlanMd[["runs/<slug>/plan.md"]] PlanMd --> Approve1{{"3. 我批 plan
👤 1 min"}} Approve1 -->|批准| Dev["4. 编码
(项目专员 agent)
10 min"] Dev --> DevMd[["runs/<slug>/dev-report.md"]] DevMd --> Verify["5. 浏览器验证
(视觉验收 agent)
80 min"] Verify --> VerifyMd[["verification-report.md
+ 21 截图 + 9 curl"]] VerifyMd --> Gate["6. 部署看门人
推飞书审批卡"] Gate --> Approve2{{"7. 我点批准
👤 30 sec"}} Approve2 -->|approved| Ship["8. commit/push/PR
(自动)"] Ship --> Approve3{{"merge PR
👤 2 min"}} Approve3 -->|merged| Sync["sync 镜像
+ 监控 CI"] Sync --> Done["9. 收尾
gate=shipped
+ feedback-log"] Done --> End([部署成功]) classDef human fill:#ffe5e5,stroke:#c00,stroke-width:2px classDef agent fill:#e5f0ff,stroke:#06f classDef file fill:#fff8d5,stroke:#999,stroke-dasharray: 3 3 class Approve1,Approve2,Approve3 human class Brainstorm,Planner,Dev,Verify,Gate,Ship,Sync,Done agent class IntentMd,PlanMd,DevMd,VerifyMd file
图例:
- 🔵 蓝框 = AI 自动跑的工位
- 🔴 红框 = 必须人类介入的审批门
- 🟡 黄虚线框 = 落盘的轨迹文件(agent 之间的 handoff 介质)
如果觉得有用,欢迎把这套流水线思路套到自己的项目上。 评论区聊聊你的"AI 工位编排"经验?