读见

让 AI 看得见、判得准、改得对—— D2C 从设计稿到三端真机达标的自动化实践

约 31 分钟约 7,593 字

读前速览

5 个要点

本文介绍了 D2C(设计稿到代码)在移动端的自动化实践,构建端上 UI Harness 体系,实现 AI 从设计稿到三端真机达标的全流程闭环,解决了 AI 生码后验收难、三端差异大的问题。

  1. 移动端 D2C 验证闭环缺失

    AI 能生成代码,但无法在真机上验证视觉效果,导致布局错位、样式错误等问题。Web 端有 Playwright 等工具闭环,移动端却缺乏类似方案,导致交付质量不可靠。

  2. 构建端上 UI Harness 体系

    通过 CLI 化改造,将 66 个确定性步骤下沉到程序化流程,AI 仅负责少数需要推理的决策。实现'生码-编译-三端真机验证-自动修复'的全闭环,让 AI 自己看到真机、判断对错、修复代码。

  3. 多层信号融合提升视觉准确度

    构建四层信号系统:L1 像素 diff 定位差异、L2 结构对比期望值 vs 实际值、L3 像素采样验证、L4Vision LLM 语义复核。将设计稿 AST 与真机 DOM 树双向对比,显著提升视觉检测准确度从 60-70%提升至 91%+。

  4. CLI 前置校验+Stop Hook 双重拦截

    防止 AI 漏步骤或假交付:每步执行前 CLI 校验状态,AI 若跳过 verify 直接跑 done 则立即退出;AI 声称完成时 Stop Hook 最终校验交付契约,不满足则注入继续指令。将可靠性从 AI 可靠性转化为 CLI 可靠性。

  5. 五条可迁移的 AI Agent 方法论

    提炼出通用原则:1)分清 AI 与程序边界;2)CLI 化改造降低 AI 认知负担;3)多层信号融合提升判断准确度;4)结构化输入输出提升协作效率;5)闭环设计确保可靠交付。这些方法论不仅适用于 D2C 场景,也可迁移到其他 AI Agent 工作流。

完整摘要

本文聚焦 D2C(Design to Code)在移动端的自动化挑战,指出 AI 生码后缺乏真机验证闭环的核心问题。作者团队构建端上 UI Harness 体系,通过 Loop Engineering 实现'生码-编译-三端真机验证-自动修复'的全流程闭环。核心创新在于重新划分 AI 与程序边界:将确定性流程下沉至 CLI 骨架执行,AI 仅保留少量推理决策点;同时融合像素 diff、DOM 树对比等多层信号为 AI 装上'眼睛'。该方案已成功覆盖 DX、Weex、Muise 三条技术链路,用户仅需提交设计稿链接,即可实现全自动达标交付。文章还提炼出五条可迁移的 AI Agent 工程化方法论。

目录 · 23 节

本文介绍了 D2C(设计稿到代码)在移动端自动化落地的实践方案。针对 AI 生码后无法感知真机渲染效果、难以自我验收的痛点,团队构建了一套端上 UI Harness 体系,通过 Loop Engineering 让 AI 实现“生码-编译-三端真机验证-自动修复”的全流程闭环。核心思路是重新划分程序与 AI 的边界:将确定性流程下沉至 CLI 骨架执行,AI 仅保留少量推理决策点;同时结合像素 diff、DOM 树对比等多层信号融合技术为 AI 装上“眼睛”,并辅以交叉验证与独立门禁防止假交付。该方案已打通 DX、Weex、Muise 三条链路,用户只需提交设计稿即可全自动完成达标交付,并沉淀了五条可迁移的 Agent 工程化方法论。

图片

开场 · 一个现实的问题

先抛一个问题:

AI 已经能一句话生一张UI卡片代码,但你敢直接把 AI 生出来的代码提测上线吗?

大概率不敢,因为你大概率经历过这样的场景:AI 信心满满地报告"卡片已完成",你推到真机一看——布局错位了、badge 圆角被截了、价格符号 ¥ 和数字没对齐、 一端上正常但另一端上文字截断了。

AI 不知道自己写错了。它没有眼睛,看不到真机上渲染出来到底是什么样。

背景 · AI 生码之后,谁来验收?

AI 会写代码,这在 2026 年已经不是新闻。真正的问题是:AI 写完之后,谁来验收?

行业正在形成一个共识:Agent = Harness + LLM —— 光有模型能力远远不够,Agent 能不能可靠工作,取决于外面套的那层工程脚手架(Harness)。而这层脚手架的质量,可以拆成三件事:

质量 = 输入约束 × 生成约束 × 验证闭环

  • 输入约束:给 AI 看什么上下文(读懂项目代码、拿到设计稿数据、了解业务规则)

  • 生成约束:让 AI 按什么规范写(编码规范、组件复用、目录约定)

  • 验证闭环:AI 写完之后,自己知道对不对、能自己迭代修复

前两项,业界已经有相对成熟的方案。但第三项 —— 验证闭环 —— 在移动端是断的。

Web 端早就闭合了这个环:Playwright 跑截图、Chrome DevTools 拿日志、Headless Browser 做回归 —— AI 生完码,自己跑一遍就知道对不对。但移动端呢? AI 写完一个 DX 卡片或 Weex 组件,它看不到真机上渲染成什么样、判不了对和错、更不会自己迭代优化。

具体到 D2C(Design to Code)场景,断裂带体现为三个具体问题:

  • 问题一 · AI 生完码就"闭眼交卷"  拿不到真机截图、判不了视觉还原度、不会自己迭代修复。常常"看起来 OK"就交付 —— 结果 badge 圆角被截了、暗黑模式颜色错了、鸿蒙上文字截断了。AI 自己完全不知道。

  • 问题二 · 三端渲染差异靠人肉  iOS、Android、鸿蒙 的字体栅格化、单位换算(px / dp)、暗黑模式行为各不相同 —— 同一份代码在三端上渲染出来是三个样子,上线前必须人工三端都验一遍,AI一个验证不了。

  • 问题三 · 端上 UI 技术栈碎片化  团队业务同时跑着 多套渲染框架,每接一条链路,都要从零造一遍验证工具 —— 工作量比较大。

这些都不是模型能力问题,是 Harness 工程问题 —— 验证闭环这一环,在移动端比较缺失。

所以我们决定做一件事:建一个 D2C Harness 打通三端真机验证闭环 —— 让 AI 自己看到真机、自己判断对不对、自己改到达标。把移动端的验证断裂带,像 Web 端一样闭合起来。

AI 生码不难,难的是让 AI 自己知道自己写对了 —— 这就是验证闭环。

结果

过去一段时间,我们做了一件事:把 D2C 从"设计稿生完码就结束",升级到"从设计稿出发,AI 一路自己走完生码、编译、三端真机验证,直到视觉还原达标"。

用户使用方式:内部研发平台创建Issue ,贴设计稿链接 和代码仓库,剩下的 AI 自动完成 —— 生码、编译、三端真机截图、diff 对比、迭代修复、代码提交 —— 全程不需要人。   

▐  3.1 真机交互体验

▐3.2 UI优化页面

设计思考 · 不只是生码工具,

而是一套端上 UI 的 Harness 体系

如果 D2C 只是一个生码工具,那 AI 生完码就结束了,剩下的编译、预览、验证、修复全靠人——断裂带还是断的。

我们要做的不是"更好的生码工具",而是一套面向端上 UI 的 Harness 体系——把 AI 生码之后的所有环节都工程化地闭合起来:

环节

AI 自由发挥能做到吗

Harness 做什么

编译

能写代码,但编译报错了不一定能自己修

编译门禁 + 自动重试 + 结构化错误反馈

真机预览

看不到真机

三端云真机自动推送 + 组件级截图

视觉验证

说不清"像不像"

像素级 diff + 热力图 + 90 分硬门槛

修复迭代

不知道哪里错、改完不知道有没有改好

AI 看 diff → 改码 → 再验 → 回退保护

交付

可能提前宣称"完成了"

门禁校验 + 自动 CR + 交付报告

▐4.1 传统 D2C vs 我们的 D2C

维度

过去的做法

我们的做法

输入要求

切好的设计稿 · 图层命名规范

给人看的 PRD + 设计稿链接

验证方式

H5 模拟预览

三端真机截图 + 像素级 diff

还原度判断

人肉看"差不多就行"

硬门槛 · 不达标自动迭代

修复方式

人工修改 → 重新生成

AI 看 diff 热力图 → 改码 → 重新验证

交付物

一份代码

代码 + 三端截图 + diff 报告 + CR

运行方式

人坐在 IDE 前操作

Issue 驱动 · 全自动 Agent

▐4.2 让 AI 少做事 · 结果反而更可靠

我们踩过一个坑:一开始,我们把所有步骤写进一份近千行的 SKILL 说明书,让 AI 照着一步步执行。逻辑很自然——步骤写得越细,AI 应该做得越好,对吧?

结果恰恰相反:

  • 漏步骤率 ~30%:明确写了"按 1→2→3→…→9 执行",AI 实际跑的是 1→2→4→7→9

  • 幻觉式完成:AI 自信地输出"步骤 3 已完成",但实际从未调用对应工具

  • 2 小时白干:其中 40 分钟卡在"等截图超时"——这种事根本不需要 AI 判断,一个 if file.exists() 就够了

根因只有一句话:把确定性流程塞进了概率性 prompt。

我们回头分析那份 SKILL,发现 大部分的内容是流程编排——分支切换、编译重试、URL 管理、截图轮询——这些操作的容都是可以固化为程序代码的。但我们把它们交给了一个本质上是"大概率会照做"的概率系统。

CLI化改造

改造的本质是让AI不那么听话也能得到正确结果

我们做了什么 —— 把原 74 个决策点里的 66 个确定性步骤从 SKILL 说明书下沉到 CLI 命令 · 状态持久化到磁盘(上下文压缩、中断、重启都不影响) 。分清 AI 与程序的边界 —— 确定性流程固化到程序,AI 只做真正需要推理的事。

AI 做(容错空间大 · 需要推理)

下沉到 CLI(零容错空间 · 要求 100%)

流程调度 · 基于 CLI stdout 的 hint 决定下一步走哪个命令(verify / iteration / done / finalize)

环境检测 · 分支切换 · AST 拉取

分析设计稿 AST 结构 · 推理布局方案

编译 · 重试计数 · 多层门禁

按 checklist 审查代码

预览截图 · diff 打分 · 回滚判定

看截图判断视觉 bug

状态持久化 · 报告生成 · CR 提交

编辑 TSX/CSS 修复

通过 stdout hint 引导 AI 下一步 · 流程调度不靠 AI 记忆

AI 漏步骤 / 假交付怎么办? —— 两层机制拦截:

  • 每步执行前 — CLI 前置校验 state , AI 若跳过 verify 直接跑 done CLI 立即 exit 3 + stdout 打 "必须先跑 verify" ,漏步骤根本执行不下去。

  • AI 声称"完成"时 — Stop Hook 最终校验交付契约(pxdiff 达标 / real_bugs=0 / MR 已建 / CDN URL 等等) 不满足则反注入指令让 AI 继续跑 ,假交付根本 stop 不了。

流程调度靠 AI · 校验靠 CLI 前置 + Stop Hook 兜底 —— 不寄希望于 AI 自觉把"AI 会不会漏"变成"CLI 会不会放行"。

具体链路实现 · 让 AI 写对

三条链路大体流程是类似的,这里就用D2Weex 为例具体介绍下。

▐5.1 D2Weex整体架构一览

一次 D2Weex 生码任务:9 个阶段 —— 从 AST(把设计稿解析成结构化数据)分析、到生码、到编译、到三端真机预览、到视觉迭代修复、到走查闭环 —— 其中大部分步骤由 CLI 骨架自动完成 · AI 只在少数需要推理的决策点介入。

下面挑三个最能体现"让 AI 写对"这条主线的能力展开讲。

▐5.2 代码架构 · AI 生的代码就是分层的

解决什么问题

如果 AI 生的代码是一个大文件 · UI / 数据 / 业务逻辑全混在一起 · 那接下来:

  • 想改一处 UI · 得在一堆逻辑代码里翻

  • 想加个数据接口 · 得动到 UI 组件

  • 想加个业务逻辑 · UI 层也得跟着改

一次生码不难 · 难的是生完之后还能持续迭代维护。所以我们从生码那一刻就给 AI 定了架构约束:代码必须分层、必须组件化。

我们做了什么

Step 1 · 页面自动组件拆分

复杂页面不是一个大文件。AI 先分析设计稿 AST · 识别出可独立的单元(卡片、区块、模块) · 把一个页面拆成多个组件:

  • 拆分候选评分 · AI 判断哪些单元该独立成组件

  • 每个组件都是一个独立目录 · 可以单独预览、单独维护

  • 页面组件 = 若干子组件的组合

Step 2 · 三层目录结构 · 数据 / UI / 业务逻辑分离

每个组件都遵循严格的三层目录:

层

内容

约束

contract/

数据类型定义 + Mock 数据

数据契约 · Mock 不进生产包 · 构建时自动剔除

ui/

纯 UI 组件(TSX + CSS Module)

只消费 Props · 不调服务、不访问网络、不调导航

logic/

业务逻辑(AI 留空)

开发填充真实数据获取逻辑

为什么这么分

  • UI 组件是"纯"的 —— 独立可预览 · 不依赖后端

  • Mock 和 UI 分离 —— preview 用 mock 数据 · 上线用真实数据 · 切换零代价

  • 逻辑层留空 · 支持并行开发 —— 业务开发写 logic/ 时 · UI 层不用动 · 两条线并行

  • Mock 不进生产包 —— 构建时自动剔除 · 零冗余

代码架构解决的是"AI 写得可维护" —— 通过 SKILL 规则 + rulePath 让 AI 每次生出来的代码结构统一。

同时交付门禁会check 修改的文件是否符合预期,不满足要求禁止提交不允许任务完成,打回修复。

▐5.3 视觉修复 · 多层信号融合

解决什么问题

Diff 只有一个分数不够 —— AI 会"看走眼"。举个真实案例:

一张订单卡片 · badge 圆角被截 —— badge "3" 圆角上半被白卡背景截切了。 AI 看到的 diff 只扣了 0.5 分(被截像素面积极小) · 心理锚定"分数高应该 OK" · 自评"96% 还原"、修了错的地方(marginLeft 微调) · 真结构 bug 一路漏诊到最终交付。

单靠像素 diff 分不清"渲染抖动"和"真 bug" · 单靠 AI 看图会被缩略图和分数误导。

我们做了什么

四层信号融合 · 每层回答一个不同的问题。关键点是 L2 —— 光有 diff 分数不够 · AI 还得知道实际渲染成什么样才能对症下药。所以我们不仅从设计稿拿到期望值(Pixelator AST) · 还从真机拿到 实际渲染的 DOM 树 —— 两者双向对比 · 定位到具体是哪个字段差了(位置?尺寸?颜色?字号?)    

层

回答什么

具体做法

L1 · 整图相似度

WHERE — 哪里有像素差异

像素 diff · 组件级截图

L2 · 结构对比 · 期望 vs 实际

WHAT SHOULD BE vs WHAT IS — 应该长什么样 vs 真机上实际长什么样

Pixelator AST(期望值) + weex-devtools DOM 树(真机实际值) · 逐字段对比

L3 · 像素采样验证

IS IT REALLY — 是算法瑕疵还是真 bug

局部像素抽样与颜色距离测算

L4 · Vision LLM 语义复核

IS IT ACCEPTABLE — 从语义层面判断是不是真 bug

Vision LLM(Gemini 多模态) 判定:algorithm_artifact / real_bug / mixed

同时 · 交付门禁的 7 项检查中 6 项有独立交叉验证 —— CLI 检测到 badge 被截、AI 却在门禁里填"badge 完整"?必须提供反驳理由说明为什么 CLI 判断有误。没有反驳 · 直接拒绝交付。

具体表现

  • 视觉检测准确度:60-70% → 91%+

  • 单个 badge 漏诊率:~50% → ~10%

  • 交付门禁防绕过覆盖:0/7 → 6/7

▐5.4 真机实时预览 · 让效果人人可体验

解决什么问题

Agent 自动生完了代码 · 也有了三端截图和 diff 报告 —— 但光看截图不够。

业务场景大多数带交互:点击进详情、滑动切 tab、加购弹动画、暗黑模式切换、异常态回退 —— 这些必须真机上跑才能体验。而传统链路是:研发拿到代码 → 打包 → 装机 → 打开对应页面 —— 每一步都得开发在真机边上操作。产品、运营、设计想看效果只能"喊人"。

我们做了什么

Agent 生完码 → 自动推真机 → 自动屏投到浏览器 —— 分享一个链接 · 任何人随时随地都能看到实时效果:

  • 产品看效果:不用找开发装机 · 浏览器打开链接直接看

  • 设计走查:不用回办公室摸真机 · 手机/电脑打开就能看

  • 复现问题:不用截图 + 文字描述 —— 直接把浏览器链接甩过去 · "自己看"

具体表现

  • 交互场景可验收:不只是静态截图 · 完整交互动线都能真机上体验

  • 无门槛访问:浏览器打开链接即可 · 不需要装 debug 手淘、不需要连真机、不需要 IDE

  • 实时反馈:Agent 改一次码 → 浏览器页面自动刷新 · 秒级看到最新效果

  • 开发角度:对于开发可能习惯在自己手机上看到或者操作,我们在issue 评论里面也准备了预览二维码,扫码可以一键预览到手机上确认。

▐5.5 走查即自动修复

同时这里也想说清楚一点,不是所有的视觉稿我们生码的时候都需要人工参与,实践的过程中,我们也有一些页面或者卡片AI直接完成,设计师走查一遍过的。我们目标还是追求AI自动闭环,现阶段的确还有一些问题没能彻底解决,在这前提下更好的辅助AI 快速完成修复。

解决什么问题

四层视觉门禁把准确度做到 91%+,但剩下的 5-10% 里藏着最难的问题。

实际跑下来我们发现,这些残留问题不是一种形态,而是三类完全不同的场景混在一起。机器一视同仁去修,有的修不动、有的修错方向、有的根本不该修。

实测数据也印证了这一点:AI 自修复在 3轮内 ROI 最高,3 轮以上必然要转人工——要么源头就是错的,要么是算法极限,要么是端上渲染必然差异。

三类典型场景:

场景

表现

为什么必须人介入

① 源头问题 · 设计稿不规范 + 生码折损

设计稿有调试残留 / 图层堆叠 / 分组语义错误;生码转换时 badge 被截、元素丢失、成组方向错

AI 按错误的源结构反复修,分数原地打转。人一眼看出"应该长这样",指一下,Agent 直接改最终代码,绕过源头问题

② 算法极限 · 人眼看不出的假偏差

字体像素级差异、5px 内偏移、抗锯齿边缘扣分——人眼几乎看不出区别,分数已到 91%+

改了也拿不到高分,还可能引入新 bug。人判定"这是精度问题不是 bug",直接放行

③ 端上必然差异 · diff 前提本身不成立

客户端行高 ≥1.2(设计稿可 =1)、三端字体 baseline 不同、mock 数据 vs 真机业务数据不一致、刘海屏安全区

设计稿 vs 真机的像素比对前提失效,AI 靠 diff 循环越修越糟。只能靠人的场景判断打破死循环——"这段文字改 1.2 倍行高",Agent 拿到提示直接微调

走查页的价值:把"3 轮后转人工"这个动作,从"现实中不标准化的流程(设计师钉钉上反馈一些信息,然后整体给到AI),压缩成一次浏览器里拖框标注、分钟级修复。

我们做了什么

一张流程图看清整个闭环(下图 6 步 · 对应本节 3 句话:01-03 → 人的输入结构化;04 → Agent 上下文精准;05-06 → 闭环全自动):

核心 3 句话:

  • 人的输入结构化:用户屏投手淘 · 在浏览器 走查页拖框标注(位置 + 一句问题描述) · 结果结构化写入 Agent 上下文 —— 不是自然语言 bug 单

  • Agent 上下文精准:标注已经指定"改哪个组件的哪个属性" · Agent 直接改 —— 不用重读全组件代码

  • 闭环全自动:标注 → Agent rerun → 修 TSX/CSS → 回写结果 → 页面实时刷新 —— 用户在同一个页面完成全流程 · 不切工具

具体表现

  • 主观项也能收敛:从"pxdiff 91% + Vision LLM 通过" 补齐到 "用户真机看着满意"

  • 人机协作范式升级:从"人在 Agent 外提 bug" 到 "人的判断变成 Agent 的一个决策节点"

这就是"走查即自动修复" —— 前面绝大多数问题靠机器自动化 · 最后一公里让人的判断结构化嵌入 Agent 决策循环 · 让整体的 ROI 更高。

方法论沉淀 · 让 AI Agent 变可靠的 5 条原则

前面讲的是 D2C 场景,但这套东西不只对 D2C 有用 —— 过去半年做的过程中,我们沉淀出了 5 条可迁移的方法论 · 任何 AI Agent 工作流都能用。

  • 方法论 1 · 分清楚哪些交给 AI · 哪些交给程序

流程编排是"每步每次必须正确"的任务 → 用代码做智能判断是"大部分时候正确就够"的任务 → 用 AI 做

如果你把两者混在一个 prompt 里 · 会发生什么?确定性被拖成概率性 · 概率性被要求确定性 · 互相拖累。

判断标准:如果一个步骤"AI 做对和做错的结果完全不同" —— 比如分支切换、状态持久化、编译门禁 —— 它就是确定性步骤必须代码化。

  • 方法论 2 · AI 决策点最小化

不是"AI 做得越多越好" · 而是"AI 用得越少 · 效果越好"。

为什么? 假设每步 AI 遵守率 95% · 74 步全流程正确率 = 0.95^74 ≈ 2%;缩到 8 步 · 全流程正确率 = 0.95^8 ≈ 66%。这不是模型能力问题 · 是数学事实。

实践:每次想让 AI 多做一件事之前 · 先问一句"这件事能不能用代码做?"能就不该让 AI 做。

我们的 AI 决策点从 74 降到 8 · 漏步骤率从 ~30% 降到 <5% —— 同一个模型 ,只是让它少做 89% 的事。

  • 方法论 3 · 动态数据比静态指令更有效

CLI 运行时输出的结构化数据(基于当前任务的实际检测结果) · 比 SKILL 说明书里的静态规则更能驱动 AI 行动。

对比一下:

  • 静态指令:"请检查 badge 是否被截切" → AI 可能忽略

  • 动态数据:"badge 截切置信度 85% · 证据:外侧像素 RGB=(255,87,34) 接近 badge 主色" → AI 必须回应

前者是建议 , 后者是事实,事实驱动行动。

对应到实践:视觉迭代前 , CLI 自动生成一份"诊断草表" —— 里面全是基于当前模板检测出来的具体证据 ,不是通用规则。AI 拿到这份草表 ,只能按证据回应 ,不能视而不见。

  • 方法论 4 · 交叉验证堵住 AI 的主观绕过

AI 可以在任何自然语言字段里填任何值。唯一能验证的方式是:代码有独立的检测手段 · 填写结果与检测结果矛盾时直接拒绝。

前面的方法论解决"AI 少做事" + "做对事" · 但没法防 AI 提前宣称完成。

比如 · 交付门禁里 AI 填"badge 完整" —— 你怎么知道它是真看见 badge 完整了 · 还是随手打了个 true 让流程通过?

我们的做法:CLI 有独立的像素检测。CLI 说"badge 被截 · 置信度 85%" · AI 却填"完整"?两者矛盾 —— 必须给出书面反驳理由说明为什么 CLI 判断有误,没反驳直接拒绝交付。

同样的思路可以推广:每一条 AI 可能"随手打勾"的字段 · 都应该有一个独立于 AI 的检测程序做交叉。覆盖率越高、能"随手绕过"的空间越小。

我们把这套交叉验证的通用契约沉淀成了 7 条硬约束(内部叫 Evidence Integrity R1-R7) —— 每一条都对应过一次真实翻车 —— 但这些具体规则不是关键 · "AI 填的每一个字段都要有代码验证"这个思路才是关键。

  • 方法论 5 · AI 决策之外要有独立看门人

AI 说"我完成了" · 不能由 AI 自己决定。要有一个运行在 AI 决策循环之外的独立校验 · 不满足就拒绝退出。

前四条方法论都是"让 AI 做对更多的事" ,但 AI 依然可能在最后一刻跳过校验直接宣称完成。这时候需要一个 AI 无法绕过的机制。

我们用了 plugin 的 Stop Hook —— 简单说 · 就是在 AI 会话即将结束的时候 ·,系统会调一个外部程序做校验:通过就放行 ,不通过就把 AI 拒回去继续工作。

  • Fail-open:hook 本身出错就放行(绝不让防护机制拖垮工具链)

  • 只拦当前工作流:不影响其他 Claude Code 使用

  • 超时自动过期:防止僵尸 hook 永远拦截

关键:这个机制不在 AI 的决策链路里。AI 说"完成了"不代表真完成 —— 得由外部的代码说了算。

5 条方法论一句话总结:把"必须每次都对"的事交给代码 · 把"大部分时候对就够"的事留给 AI · 用工程化手段交叉验证 AI 的输出。这不是让 AI 更聪明 —— 是重新划分代码和 AI 的职责边界。

未来 · 让 AI 自己走完

  • 持续打磨:从"能用"到"好用",稳定性和性能是长期投入 —— 拉高交付成功率 、缩短端到端耗时 、覆盖更多业务边界场景 ,让 Agent 在复杂场景下也能自己收敛

  • 人人可用:让产品、设计、运营也能直接用 issue 触发生码并最终上线 ,而不只是研发的工具

  • 能力标准化:让 D2C 从"独立生码链路" → 进化为"可插拔进任何项目 AI 生码流程"的能力

结尾

AI 生码不难 · 难的是让 AI 自己知道对不对。

我们没有造更聪明的 AI ,做的是三件事:

  • 分清 AI 与程序的边界: 确定性流程固化到 CLI 里 · 概率性判断留给 AI · 各司其职

  • 给 AI 装上眼睛:三端真机截图 + 多层信号融合(像素 diff、结构对比、Vision LLM) · AI 有了自己的"眼睛"

  • 让 AI 自己迭代修复 :看到 diff、改码、重新验证 达标才停 不再是"生完就完"

      AI 从设计稿到三端真机达标 ,中间的每一步都能自己感知、自己判断、自己修 —— 这就是我们在做的事情。

团队介绍

本文作者修易,来自淘天集团-用户&内容技术团队,该团队服务于淘宝基础用户产品,是淘宝最重要的业务线之一。首页、信息流推荐、消息、搜索、我淘、用增、互动、内容等亿级用户规模产品,为我们带来大量业务/技术挑战及机会。团队在保证业务的同时,以先进的跨端框架和研发模式不断完善自己,打造最极致的体验和工程技术,保障多端设备的适配和稳定运行,并探索端智能等创新机会,通过技术高效驱动业务的良性发展。持续探索以 AI 为底座构建从需求到上线的端到端自动化与产品化能力,使亿级规模的交付更快、更稳、更可控。

值得记下

  1. AI 已经能一句话生一张 UI 卡片代码,但你敢直接把 AI 生出来的代码提测上线吗?
  2. AI 生码不难,难的是让 AI 自己知道自己写对了
  3. 我们决定重构的不是代码,而是生产方式
  4. AI Friendly 不是指 AI 能快速写代码,而是指架构设计是否支持 AI 参与
  5. 把确定性流程下沉至 CLI 骨架执行,AI 仅保留少量推理决策点