企业软件世界正活在一个悖论里,一方面我们认为Ai生成的软件不靠谱;另一方面,几乎所有的软件工程师都不再写代码了,不仅工业,就连金融、电信领域的软件供应商都开始全面AI Coding。
所以,如今工业用户就算找SI、产品供应商做软件系统,得到的也一定包含大量AI生成产物。关于可靠性的争辩已经失去意义。
与其讨论是否接受Vibe Coding进入工业软件世界,不如讨论如何生成靠谱的工厂软件。
TIER0 Appbuilder旨在成为”MES类软件生成器“,在构建TIER0 Appbuilder的过程中,我们总结了一系列让AI Coding变靠谱的最佳实践:
生成“MES”约等于生成Web App
**当文中说MES时,是泛指整个工厂运营层软件。
MES首先是记录系统(System of Record),这意味着它主要处理关系数据。
而这些关系数据又是以“单据”为载体的,比如工单订单、作业申请、开停车记录等。这种单据不可能包含成千万个字段,一个工厂也不可能在一秒内产生成百上千个单据。因此MES的后端性能需求不高。
同理,在UI、客户端方面,不会有千奇百怪的埋点、弹窗需求,一个工厂也不会出现成千上万并发。
这意味着在开发MES进行技术选型时,我们有足够空间选择更简洁、AI友好的技术。
在这个前提下,Web的繁荣生态及简洁令其成为无悬念的首选,或者说的更具体些:全栈Javascript/Typescript是Vibe Coding MES App的最佳技术栈。
AI生成软件的能力,取决于其自主编写、阅读、测试代码的效率。全栈Web项目天然在这方面具备优势。
以Tanstack Start框架为例,使用它开发WebApp时,UI、后端逻辑、鉴权在一个单体目录(Monorepo)下,以一种语言和共享依赖树完成,AI不需要跨目录、语言就能理解整个App。
测试时,一个Cli指令即可无感同时启动前后端,这也能让AI更高效的发现并处理错误。
在TIER0 Appbuilder中,生成一个MES其实就是生成一个Tanstack Start WebApp。
生成式集成
MES的难点在于与外部数据源的集成,没有ERP、设备、终端对接,MES根本无法上线。
因此,如果不能在Vibe Coding时一并生成集成,那也就没资格讲“生成式MES”开发。
实现集成的思路更简单:使用WebApp的默认标准——HTTP API。
HTTP API是所有LLM都充分训练并理解的通讯实现方式,AI能一次写对。
但很多古早系统、数据库、设备并不具备HTTP API,使用千奇百怪的通讯方式,如何将他们转化为REST呢?
此时就需要一个宽松的数据模型层——UNS,为不同数据源添加足够的上下文,并统一转换成HTTP API与App通讯。
“生产级”功能
一个MES跳出Demo,在生产环境跑起来,至少还需要设计三件事:
角色权限(RBAC)
MES存在多重用户身份,比如操作员、计划员、组长等。不同身份的用户在使用同一个MES时应具备不同的权限,甚至得到不同功能。
对于项目制开发的MES,实现RBAC没什么难度。但若要实现中心化单点登录(比如用企微、飞书扫码登录所有系统),为功能迭代留出空间,则必须将角色与权限在程序层面抽离出来标准化,让外部系统可以得到用户角色列表,且可以以标准方法对角色用户增删改查。
跨终端
MES系统的用户界面往往需要跨终端显示,比如报表需要被投放在车间的大屏幕,操作员需要在PDA/平板电脑上触控点击报工,计划与管理者需要在笔记本电脑上修改报表。
这是Web的天然优势,同一份代码可以在不同尺寸的设备上良好访问,甚至渲染性能丝毫不输设备系统原生的技术(比如C#、WPF)。
UI标准
对于工业软件,界面风格AI味重是不可接受的。毕竟会有肩负重任的操作员一天面对这些界面数个小时,界面上的一次报警可能代表影响安全的严重事件。此时必须考虑人体工学及阅读效率。
除了众所周知的红黄绿状态色,ISA101,高性能HMI等标准已经将工业UI的基本原则设计的很完善。只不过基于这些标准开发的视觉组件都还以SVG、JPG等古老格式流传,市面上还很难找到现成可用的Web组件。
我们为此设计了组件库,让Agent稳定生成工业场景友好的界面。

脚手架和Skill
不是所有人都有耐心和时间看到这里,对于工程师甚至AI而言都是如此。
所以我们要把前文提到的所有技术要求整理进模版和Skill,让AI自然具备开发靠谱MES的能力。
这也是TIER0 Appbuilder的核心资产,基于我们内部团队无数的测试、失败、调整,我们已经实现稳定生成功能复杂的MES应用。
当TIER0 Appbuilder得到足够的用户测试反馈后,我们将开源这份Skill与设计。
世界不会永远运行在SAP上

a16z的博客总结了所有人的好奇,为什么有了Vibe Coding,企业还是愿意付天价购买大概率失败的古老数字化技术。
我想这主要是“习惯”的巨大影响力,我们习惯了为一个看板招标,习惯了花5分钟点击卡顿的界面完成报销,习惯了库存和成本台账对不齐。
习惯扩散到一定程度会变成思想钢印,当有人试图用新方法解决这个中问题,反而会被怀疑。
但是我还是相信,世界不会永远运行在SAP上。
Try us at: https://tier0.app/zh/product/app-builder
夜雨聆风