让 AI 看得见、判得准、改得对—— D2C 从设计稿到三端真机达标的自动化实践
读前速览
本文介绍了 D2C(设计稿到代码)在移动端的自动化实践,构建端上 UI Harness 体系,实现 AI 从设计稿到三端真机达标的全流程闭环,解决了 AI 生码后验收难、三端差异大的问题。
移动端 D2C 验证闭环缺失
AI 能生成代码,但无法在真机上验证视觉效果,导致布局错位、样式错误等问题。Web 端有 Playwright 等工具闭环,移动端却缺乏类似方案,导致交付质量不可靠。
构建端上 UI Harness 体系
通过 CLI 化改造,将 66 个确定性步骤下沉到程序化流程,AI 仅负责少数需要推理的决策。实现'生码-编译-三端真机验证-自动修复'的全闭环,让 AI 自己看到真机、判断对错、修复代码。
多层信号融合提升视觉准确度
构建四层信号系统:L1 像素 diff 定位差异、L2 结构对比期望值 vs 实际值、L3 像素采样验证、L4Vision LLM 语义复核。将设计稿 AST 与真机 DOM 树双向对比,显著提升视觉检测准确度从 60-70%提升至 91%+。
CLI 前置校验+Stop Hook 双重拦截
防止 AI 漏步骤或假交付:每步执行前 CLI 校验状态,AI 若跳过 verify 直接跑 done 则立即退出;AI 声称完成时 Stop Hook 最终校验交付契约,不满足则注入继续指令。将可靠性从 AI 可靠性转化为 CLI 可靠性。
五条可迁移的 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 生码之后,谁来验收?
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.1 真机交互体验
▐3.2 UI优化页面
▐3.2 UI优化页面


设计思考 · 不只是生码工具,
而是一套端上 UI 的 Harness 体系

设计思考 · 不只是生码工具,
而是一套端上 UI 的 Harness 体系
设计思考 · 不只是生码工具,
而是一套端上 UI 的 Harness 体系
如果 D2C 只是一个生码工具,那 AI 生完码就结束了,剩下的编译、预览、验证、修复全靠人——断裂带还是断的。
我们要做的不是"更好的生码工具",而是一套面向端上 UI 的 Harness 体系——把 AI 生码之后的所有环节都工程化地闭合起来:
|
环节 |
AI 自由发挥能做到吗 |
Harness 做什么 |
|
编译 |
能写代码,但编译报错了不一定能自己修 |
编译门禁 + 自动重试 + 结构化错误反馈 |
|
真机预览 |
看不到真机 |
三端云真机自动推送 + 组件级截图 |
|
视觉验证 |
说不清"像不像" |
像素级 diff + 热力图 + 90 分硬门槛 |
|
修复迭代 |
不知道哪里错、改完不知道有没有改好 |
AI 看 diff → 改码 → 再验 → 回退保护 |
|
交付 |
可能提前宣称"完成了" |
门禁校验 + 自动 CR + 交付报告 |
▐4.1 传统 D2C vs 我们的 D2C
▐4.1 传统 D2C vs 我们的 D2C
|
维度 |
过去的做法 |
我们的做法 |
|
输入要求 |
切好的设计稿 · 图层命名规范 |
给人看的 PRD + 设计稿链接 |
|
验证方式 |
H5 模拟预览 |
三端真机截图 + 像素级 diff |
|
还原度判断 |
人肉看"差不多就行" |
硬门槛 · 不达标自动迭代 |
|
修复方式 |
人工修改 → 重新生成 |
AI 看 diff 热力图 → 改码 → 重新验证 |
|
交付物 |
一份代码 |
代码 + 三端截图 + diff 报告 + CR |
|
运行方式 |
人坐在 IDE 前操作 |
Issue 驱动 · 全自动 Agent |
▐4.2 让 AI 少做事 · 结果反而更可靠
▐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 写对

具体链路实现 · 让 AI 写对
具体链路实现 · 让 AI 写对
三条链路大体流程是类似的,这里就用D2Weex 为例具体介绍下。
▐5.1 D2Weex整体架构一览
▐5.1 D2Weex整体架构一览
一次 D2Weex 生码任务:9 个阶段 —— 从 AST(把设计稿解析成结构化数据)分析、到生码、到编译、到三端真机预览、到视觉迭代修复、到走查闭环 —— 其中大部分步骤由 CLI 骨架自动完成 · AI 只在少数需要推理的决策点介入。

下面挑三个最能体现"让 AI 写对"这条主线的能力展开讲。
▐5.2 代码架构 · 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 视觉修复 · 多层信号融合
▐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 真机实时预览 · 让效果人人可体验
▐5.4 真机实时预览 · 让效果人人可体验
解决什么问题
Agent 自动生完了代码 · 也有了三端截图和 diff 报告 —— 但光看截图不够。
业务场景大多数带交互:点击进详情、滑动切 tab、加购弹动画、暗黑模式切换、异常态回退 —— 这些必须真机上跑才能体验。而传统链路是:研发拿到代码 → 打包 → 装机 → 打开对应页面 —— 每一步都得开发在真机边上操作。产品、运营、设计想看效果只能"喊人"。
我们做了什么
Agent 生完码 → 自动推真机 → 自动屏投到浏览器 —— 分享一个链接 · 任何人随时随地都能看到实时效果:
-
产品看效果:不用找开发装机 · 浏览器打开链接直接看
-
设计走查:不用回办公室摸真机 · 手机/电脑打开就能看
-
复现问题:不用截图 + 文字描述 —— 直接把浏览器链接甩过去 · "自己看"
具体表现
-
交互场景可验收:不只是静态截图 · 完整交互动线都能真机上体验
-
无门槛访问:浏览器打开链接即可 · 不需要装 debug 手淘、不需要连真机、不需要 IDE
-
实时反馈:Agent 改一次码 → 浏览器页面自动刷新 · 秒级看到最新效果
-
开发角度:对于开发可能习惯在自己手机上看到或者操作,我们在issue 评论里面也准备了预览二维码,扫码可以一键预览到手机上确认。

▐5.5 走查即自动修复
▐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 条原则

方法论沉淀 · 让 AI Agent 变可靠的 5 条原则
方法论沉淀 · 让 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 自己走完

未来 · 让 AI 自己走完

未来 · 让 AI 自己走完
-
持续打磨:从"能用"到"好用",稳定性和性能是长期投入 —— 拉高交付成功率 、缩短端到端耗时 、覆盖更多业务边界场景 ,让 Agent 在复杂场景下也能自己收敛
-
人人可用:让产品、设计、运营也能直接用 issue 触发生码并最终上线 ,而不只是研发的工具
-
能力标准化:让 D2C 从"独立生码链路" → 进化为"可插拔进任何项目 AI 生码流程"的能力

结尾

结尾
结尾
AI 生码不难 · 难的是让 AI 自己知道对不对。
我们没有造更聪明的 AI ,做的是三件事:
-
分清 AI 与程序的边界: 确定性流程固化到 CLI 里 · 概率性判断留给 AI · 各司其职
-
给 AI 装上眼睛:三端真机截图 + 多层信号融合(像素 diff、结构对比、Vision LLM) · AI 有了自己的"眼睛"
-
让 AI 自己迭代修复 :看到 diff、改码、重新验证 达标才停 不再是"生完就完"
AI 从设计稿到三端真机达标 ,中间的每一步都能自己感知、自己判断、自己修 —— 这就是我们在做的事情。

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