破界与重构:基于 DevUI 与 MateChat 打造“意图即应用”的下一代智能低代码平台!
本文提出一种基于DevUI和MateChat的"意图驱动开发"新范式,通过AI辅助实现从自然语言到企业级UI的自动化生成。系统架构包含两个核心组件:DevUI提供原子化组件构建动态渲染引擎,MateChat通过MCP协议将用户意图转换为DevUI规范的JSON Schema。文章详细介绍了动态表单引擎的Angular实现、Prompt工程实践以及无SDK情况下的AI集成方案,为
摘要
在云原生应用爆发式增长的背景下,传统的“手写代码”模式已无法满足企业级应用交付的速度需求。本文将深入探讨一种全新的开发范式——“意图驱动开发(Intent-Driven Development)”。我们将利用华为云 DevUI官网 提供的原子化组件能力构建高性能渲染引擎,并借助 MateChat 在无 SDK 模式下的 MCP(模型上下文协议)能力,让 AI 充当“架构师”,实现从自然语言到企业级 UI 的端到端自动化。本文将详细披露该平台的架构设计、动态渲染核心算法及 Prompt 工程实践。
如下是为MateChat的AI操作截图:
相关官方地址汇总如下:
- MateChat:https://gitcode.com/DevCloudFE/MateChat
- MateChat官网:https://matechat.gitcode.com
- DevUI官网:https://devui.design/home
第一章:困局与破局——为何我们需要“智能渲染引擎”?
1.1 传统低代码的“阿喀琉斯之踵”
现有的低代码平台往往受限于固定的组件堆叠,灵活性差,且生成的代码难以维护。
1.2 DevUI + MateChat:完美的互补
- DevUI 的角色:提供**“高保真、可配置的积木”**。DevUI 的组件(如
DataGrid,Tree,Gantt)具备极高的 API 丰富度,非常适合被序列化为 JSON Schema。 - MateChat 的角色:充当**“自然语言编译器”**。它不直接运行代码,而是通过理解用户意图,生成符合 DevUI 规范的 Schema 数据,驱动引擎渲染。
如下是官方开源项目:

第二章:DevUI 深度实践——构建动态渲染内核
本章核心: 抛弃硬编码,利用 DevUI 构建一个可以“吃” JSON 吐出界面的引擎。
2.1 核心架构:基于 Angular/Vue 的动态组件加载器
为了实现“配置即视图”,我们需要封装一层 Renderer。DevUI 的模块化设计使得按需加载成为可能。
2.1.1 动态表单引擎设计 (Dynamic Form Engine)
B 端应用 60% 的场景是表单。我们基于 d-form 构建了一个元数据驱动的表单生成器。
核心代码实现(Angular 动态组件工厂模式):
import { Component, OnInit } from '@angular/core';
import { TableWidthConfig } from 'ng-devui/data-table';
import { originSource, SourceType } from './shared/mock-data';
@Component({
selector: 'd-basic',
templateUrl: './app.component.html'
})
export class DatatableDemoBasicComponent implements OnInit {
basicDataSource: Array<SourceType> = JSON.parse(JSON.stringify(originSource.slice(0, 6)));
dataTableOptions = {
columns: [
{
field: 'firstName',
header: 'First Name',
fieldType: 'text'
},
{
field: 'lastName',
header: 'Last Name',
fieldType: 'text'
},
{
field: 'gender',
header: 'Gender',
fieldType: 'text'
},
{
field: 'dob',
header: 'Date of birth',
fieldType: 'date'
}
]
};
tableWidthConfig: TableWidthConfig[] = [
{
field: '#',
width: '50px'
},
{
field: 'firstName',
width: '150px'
},
{
field: 'lastName',
width: '150px'
},
{
field: 'gender',
width: '150px'
},
{
field: 'dob',
width: '150px'
}
];
ngOnInit() {
}
}
实际代码效果演示如下:

第三章:MateChat 智能赋能——无 SDK 下的“隔空传功”
本章核心: 解决 MateChat 无法直接嵌入代码的问题,利用 MCP 和 Prompt Engineering 打造智能工作流。
3.1 架构设计:AI 作为独立的“Schema 生成服务”
我们不把 AI 视为库,而视为一个外部的 API 服务(或通过本地 MCP 连接)。
MateChat官网 虽然不提供 SDK,但我们可以通过**“结构化 Prompt”**来标准化它的输出。
3.2 实战:Prompt 驱动的 DSL 生成
我们需要让 MateChat 充当“翻译官”,将用户的自然语言翻译成我们在第二章定义的 JSON DSL。
3.2.1 提示词工程(Prompt Engineering)实录
为了让 MateChat 准确理解 DevUI 的配置项,我们设计了 CoT (Chain of Thought) 提示词。
Prompt 示例:
System: 你是一个精通 DevUI官网 规范的低代码架构师。你的任务是将用户的需求转化为符合以下 TypeScript Interface 的 JSON Schema。
Context:
- 涉及到表格时,必须开启
virtualScroll以保证性能。- 涉及到日期选择时,优先使用
d-datepicker-range。- 所有的颜色配置请引用
--devui-brand等 CSS 变量。User Input: “帮我生成一个运维工单查询页面,包含工单号(文本)、状态(下拉,包含处理中/已完成)、创建时间(日期范围),下方是一个展示工单详情的表格,支持按状态过滤。”
3.2.2 MateChat 的“思维链”输出分析
这里展示 MateChat 是如何一步步思考并生成 JSON 的。
比如说如下代码,仅供参考,我们可以通过它实现一个List列表的水平排列。
一般用于展示类场景。direction参数可设置列表的排列方式,variant参数可设置选项的展示形态,autoWrap参数可在列表水平排列时设置是否自动换行,selectable设置为false可禁用点击选项时的选中高亮。
<template>
<div style="display: flex; margin-bottom: 10px; align-items: center;">
<div style="margin-right: 10px;">展示形态</div>
<d-radio-group v-model="selectedVariant" direction="row">
<d-radio v-for="item in variantList" :key="item.value" :value="item.value">{{ item.label }}</d-radio>
</d-radio-group>
</div>
<div style="display: flex; margin-bottom: 10px; align-items: center;">
<div style="margin-right: 10px;">自动换行</div>
<d-switch v-model="autoWrap" size="sm"></d-switch>
</div>
<McList :data="options" :selectable="false" :autoWrap="autoWrap" direction="horizontal" :variant="selectedVariant"></McList>
</template>
<script setup>
import { defineComponent, ref } from 'vue';
const selectedVariant = ref('bordered');
const autoWrap = ref(true);
const variantList = ref([
{ label: '填充', value: 'filled' },
{ label: '边框', value: 'bordered' },
]);
const options = ref(new Array(10).fill(0).map((item, i) => ({ label: `Option ${i + 1}`, value: i + 1 })));
</script>
3.3 进阶玩法:基于 MCP 的本地文件联动
虽然没有 SDK,但我们可以利用 MateChat 的 MCP 协议支持,编写一个本地的 Python Server。
-
功能:读取本地项目的
schema.json文件。 -
流程:
- 开发者在 MateChat 网页端说:“优化当前的 Schema,将表格改为树形表格。”
- MateChat 通过 MCP 调用本地
read_file工具读取当前配置。 - MateChat 生成新的 JSON。
- MateChat 调用本地
write_file工具覆盖文件。 - 前端 HMR(热更新),界面自动变化。
这实现了“对话即编程”的闭环!

第四章:全链路场景演练——从草图到部署
4.1 场景背景:紧急上线的“双十一大屏”
模拟一个高压场景:老板要求 1 小时内上线一个展示实时交易数据的监控大屏。
4.2 步骤一:布局构建 (DevUI Grid System)
使用 MateChat 生成基于 d-row / d-col 的响应式布局 Schema。
- 难点:大屏在不同分辨率下的适配。
- DevUI 优势:利用 DevUI 的
dLayout断点系统(xs, sm, md, lg, xl)。
4.3 步骤二:数据可视化组件封装
我们将 ECharts 封装在 DevUI 的 d-card 中。
MateChat 交互:
“请在左上角的 Card 中插入一个折线图,配色要符合 DevUI 的暗黑主题
nebula-dark。”
4.4 步骤三:交互逻辑注入
低代码最难的是逻辑(Event Handling),这在任何开发中也是非常有挑战难度的,根据需求来代码实现逻辑。
但是,MateChat 能够极好地理解这种逻辑映射,自动生成点击表格行弹出 DevUI Modal 的配置。

第五章:未来展望——AI Native 的前端生态
5.1 从“组件库”到“语义库”
未来的 DevUI 可能不仅提供组件代码,还会提供一份标准的 LLM Description File,让 MateChat 等模型能原生理解组件的所有用法,无需人工 RAG(检索增强生成)。
5.2 结语
通过 DevUI 提供的坚实地基与 MateChat 提供的无限想象力,我们不仅是在开发一个应用,而是在重塑开发的边界。在云原生的深水区,这种**“组件原子化 + 编排智能化”**的模式,将是通往 10 倍开发效率的必由之路。
当然,最后还是要展示MateChat的AI助手,大家感兴趣的可以去体验下:


相关官方地址汇总如下:
- MateChat:https://gitcode.com/DevCloudFE/MateChat
- MateChat官网:https://matechat.gitcode.com
- DevUI官网:https://devui.design/home
特此声明:如上部分配图及内容来源官网及公开互联网,若有侵权行为,请联系删除。
-End-
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)