全文目录:

摘要

当云原生开发进入“深水区”,单纯把页面“做出来”已经远远不够:
前端需要同时扛住 复杂业务控制台智能交互体验 两座大山。
DevUI 和 MateChat,正是华为云在这一背景下给前端开发者准备的“双引擎”。

相关官方地址汇总如下:

一、云原生进入深水区:为什么需要 DevUI 与 MateChat

云原生的“深水区”有两个典型特征:

  1. 控制台与中后台越来越复杂

    • 数十乃至上百个菜单模块
    • 表格动辄上万行、复杂筛选、嵌套详情
    • 多云 / 多集群视角切换
  2. AI 能力开始深度融入产品本身

    • 日志 / 告警需要 AI 帮助分析与归因
    • 复杂配置希望通过自然语言引导
    • 开发者期待在 IDE / DevOps 平台中随时“叫醒”智能助手

在这种背景下,前端如果仍然是“每个项目各自维护一套组件、一套智能入口、一套风格”,不仅开发成本高,而且体验割裂严重。

DevUI 提供的是:

一套面向企业中后台产品的开源前端通用解决方案,包含设计体系与组件库,可开箱即用,支持云控制台等复杂场景。
MateChat 提供的是:

一套面向智能化场景的前端 UI 解决方案,用于轻松构建 AI 应用,已服务华为内部多个智能化改造,并支撑 CodeArts、InsCode AI IDE 等智能助手能力。

两者结合,构成从 中后台界面 → 智能对话体验 的完整链路:

  • DevUI:专业的 企业级 UI 基座 + 设计体系 + 丰富组件
  • MateChat:专注 GenAI 对话体验与智能化场景的 UI 套件

接下来,我们先从 DevUI 组件生态讲起,再切换到 MateChat 智能体验,最后合并成一套统一的实践蓝图。

二、DevUI 组件生态:使用、实践与创新

2.1 DevUI 的定位与技术全景

从官方介绍来看,DevUI 的几个关键点可以总结为:

  • 面向 企业中后台 / 工具类产品 的开源前端解决方案

  • 设计价值观:高效、开放、可信、乐趣

  • 提供完整的 DevUI Design 设计体系(规则、语言、最佳实践)

  • 目前主要版本:

    • Angular 版本:ng-devui
    • Vue 版本:vue-devui(Vue DevUI)
  • 已沉淀 60+ 组件,覆盖表格、表单、弹窗、甘特图、Markdown、代码编辑、树表格等复杂场景

  • 拥有 DevUI Travel 等教学示例与 Admin 模板,方便快速搭建应用

DevUI 主要版本为 Angular 与 Vue 版本,下文的代码也将主要围绕这两条技术线展开。

Angular 生态:ng-devui 概览
  • 通过 npm i ng-devui 安装
  • 基于 Angular 官方 CLI 创建项目,按模块方式引入组件
  • 适配到当前主流 Angular 版本(如 ^18.0.0),拥有表格、表单、导航、布局等完整组件体系
Vue 生态:vue-devui / Vue DevUI
  • 基于 Vue3 + Vite + TypeScript + JSX 的企业级组件库
  • 安装方式(官方示例):
npm create vite my-vue-app --template vue-ts
cd my-vue-app
npm i vue-devui @devui-design/icons devui-theme

Vue DevUI 提供 60+ 组件、完整主题系统,并为研发工具场景做了专门优化。

2.2 高频组件进阶用法与避坑指南(表格 / 表单 / 弹窗)

在云控制台与 B 端系统里,表格、表单、弹窗 是绝对的高频组合。DevUI 在这些能力上已经做了大量沉淀,但也同样容易踩坑。

2.2.1 表格:大数据展示与复杂交互

DevUI datatable 提供了大量高级特性:树形表格、列拖拽、批量行拖拽、固定列、可编辑单元格、扩展行等。

典型场景:10w 级数据的集群资源列表

  • 要求:

    • 支持条件筛选(状态、命名空间、标签)
    • 支持多字段排序
    • 支持行展开查看 Pod 列表或事件
    • 支持列拖动、固定、宽度调整

实践建议:

  1. 尽量使用内置虚拟滚动与分页组合

    • 前端仅保留当前页 + 部分缓存
    • 与后端协商“分页 + 排序 + 过滤”协议,避免一次性加载全部数据
  2. 树形表格用于“集群 → 节点 → Pod”这类结构

    • 利用 nestedColumnchildren 字段组合构建树
    • 使用 $isChildTableOpen 控制节点展开状态,以减少 DOM 负担
  3. 批量行拖拽适合用在“任务优先级调整”类场景

    • 通过 DevUI 提供的 DragDrop 组件配合 datatable 实现
    • 需要注意:批量选中 + Ctrl 多选交互要与产品交互统一
  4. 常见坑点:

    • 坑 1:在 *ngFor 中直接绑定复杂函数

      • 会导致性能问题,尤其在大表格中;建议计算好数据,使用纯字段绑定。
    • 坑 2:在表格行中嵌套过多自定义组件

      • 需要关注变化检测成本,可考虑 OnPush 策略或虚拟滚动。

2.2.2 表单:动态配置与校验策略

DevUI 为表单提供输入框、选择器、时间日期、数字输入、多选、开关等组件,可支持复杂的配置面板、创建向导等。

实战建议:

  1. 统一“表单模型”与“后端 DTO”结构

    • Angular 使用 FormGroup + FormControl,Vue 使用 reactive / ref
    • 字段结构尽量贴近后端模型,方便序列化与回显。
  2. 采用表单 Schema 驱动复杂配置

    • 在云原生控制面板中,资源创建往往配置项很多,比如:

      • 容器资源限制
      • 挂载卷
      • 网络策略
    • 建议通过 JSON Schema 或自定义配置描述,将其映射到 DevUI 表单组件,便于后期动态扩展。

  3. 校验策略:前后端同时兜底

    • DevUI 表单提供必填、正则等基础校验,适合做即时反馈。
    • 核心配额、资源限制等规则仍需后端最终确认,避免绕过。

2.2.3 弹窗:从简单对话框到“弹窗表单”

在 DevUI 中,典型的组合是 modal + form + datatable

  • 使用 modal 作为容器

  • 内部是表单或表格

  • 常见场景:

    • “新建资源”
    • “批量编辑”
    • “选择资源 / 选择用户”的列表选择弹窗

借鉴常见的 Vue 弹窗 + 表格实现思路(如 Worktile 示例),我们可以在 DevUI 中做一套标准模式:

设计建议:

  1. 弹窗表单拆为独立组件(例如 ResourceFormDialog
  2. 父组件只负责控制弹窗开关与数据回填
  3. 弹窗内部统一暴露 onConfirm / onCancel 事件,并返回表单数据或选择结果
  4. 在 Angular 中通过 @Output + EventEmitter,在 Vue 中通过 emit('submit')

避坑要点:

  • 避免一个弹窗组件同时负责多种完全不同的表单结构,易变得难以维护
  • 跨业务复用时,适当引入插槽 / ng-template 来扩展布局,而不是硬编码字段

2.3 自定义组件与插件:让 DevUI 说“业务语言”

DevUI 提供的是一套通用的企业级前端组件与设计体系,但真正的业务往往需要在其之上进一步抽象——将 DevUI 组件组合成“业务组件”

2.3.1 基于 DevUI Design 的业务组件规范

基于 DevUI Design 的价值在于:

设计体系已经定义了色板、间距、字号、交互反馈等统一规范,开发者可以专注业务逻辑,设计师专注体验流程。

在团队内部,可以约定:

  • 业务组件命名以 Biz 前缀,例如

    • BizClusterSelector
    • BizNamespaceCascader
    • BizAlarmRuleEditor
  • 内部统一使用 DevUI 的 Button、Form、Select、Tree、Dropdown、Tabs 等组件

  • 输出稳定的属性 / 事件接口供上层页面引用

2.3.2 自定义插件与模块拆分

对大型云管控制台,可以将业务组件按 领域模块 拆分成多个 Angular / Vue 子包,例如:

  • @company/devui-biz-cluster
  • @company/devui-biz-monitor

每个包内部都基于 DevUI 实现业务组件,导出给各应用复用,从而让 DevUI 真正成为团队的 UI 底座。

2.4 主题与样式定制:品牌适配、暗黑模式与响应式布局

DevUI 在主题化方面提供了完整能力,尤其在 Vue DevUI 中通过 devui-theme 等包,实现按需切换与自定义主题。

2.4.1 品牌主题适配的三步法
  1. 确立品牌基础色板

    • 主色(Primary)、成功色、危险色、警告色、信息色
    • 对应 DevUI 中基础色变量
  2. 在 DevUI 主题中覆写变量

    • Vue DevUI 通常通过引入默认主题,然后在自定义主题文件中覆盖
    • 可定义“云控制台主题”“企业版主题”“运营后台主题”等
  3. 输出主题规范文档

    • 将主题变量与视觉稿对应关系整理,形成统一的设计资产
    • 方便新项目快速接入 DevUI + 统一主题
2.4.2 暗黑模式与 IDE 风体验

MateChat 官方提到其主题中内置 多种主题(如 ide-light / ide-dark 等),DevUI 也支持主题化体系,两者结合可以构建“IDE 风”的统一体验。

实践上可以:

  • 将 DevUI 的暗色主题与 MateChat 的 ide-dark 主题进行视觉对齐
  • 在云 IDE / 在线代码平台中,使用统一的暗黑背景、对比度与代码高亮风格
  • 通过 data-theme 或 CSS 变量切换统一主题,避免各组件库各玩一套
2.4.3 响应式布局技巧

在云原生多端访问场景中,控制台已不仅限 PC 宽屏,有时需要适配:

  • 窄屏笔记本
  • 嵌入 iFrame 的“小窗口”
  • 平板设备

DevUI 组件库本身有良好的栅格与布局能力,建议:

  • 统一使用 DevUI 栅格系统 + Flex 布局
  • 表格在窄屏时启用“列收缩”或水平滚动,而不是强行挤下所有列
  • 智能对话区域(如稍后会介绍的 MateChat 嵌入)在窄屏下可折叠为图标浮层

2.5 云原生场景落地:云控制台、企业级系统与 B 端应用实践

DevUI 的定位就是服务于 云控制台、研发工具、企业中后台,在这些场景中,它可以发挥出最大价值。

2.5.1 云控制台:多集群、多租户的复杂视图

典型使用方式:

  • 布局层面:导航 + 顶部工具栏 + 内容区域

  • 内容区域:

    • Tab 切换不同资源类型(集群、节点、工作负载、存储、网络)
    • 使用 DevUI datatable 展示资源列表
    • 使用 Drawer / Modal 展示详情与编辑界面
  • 辅助能力:

    • 使用 DevUI ECharts 封装可视化监控图表
    • 使用步骤条(Stepper),实现资源创建向导
2.5.2 企业级系统 / B 端应用:统一体验与快速交付

无论是内部运营系统、供应链管理,还是 DevOps 平台,DevUI 的价值体现为:

  • 统一的组件与交互体验
  • 减少“重复造轮子”的成本
  • 提高设计稿 → 前端实现的一致性

当团队拥有多条业务线时,DevUI 可以作为:

  • 企业内部 统一 UI 组件库
  • 搭配 CI/CD 实现自动发版与依赖升级
  • 逐步统一各遗留系统的交互与视觉

2.6 从 0 到 1 的入门实战教程

下面给一个尽可能贴近实战的 “Hello DevUI 控制台” 教程,分别以 Angular 与 Vue 为例。

2.6.1 Angular + DevUI 快速上手

官方推荐做法:使用 Angular CLI 创建项目,再引入 ng-devui

# 1. 全局安装 Angular CLI
npm install -g @angular/cli

# 2. 创建项目
ng new devui-console
cd devui-console

# 3. 安装 DevUI 组件库及图标库
npm i ng-devui
npm i @devui-design/icons

app.module.ts 中引入 DevUIModule:

import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgModule } from '@angular/core';
import { DevUIModule } from 'ng-devui';

import { AppComponent } from './app.component';

@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    BrowserAnimationsModule, // DevUI 部分组件依赖动画模块
    DevUIModule
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

app.component.html 中搭一个最小可用的控制台主界面:

<d-layout>
  <d-aside width="220px">
    <d-menu [mode]="'vertical'">
      <d-menu-item>集群管理</d-menu-item>
      <d-menu-item>工作负载</d-menu-item>
      <d-menu-item>存储卷</d-menu-item>
      <d-menu-item>告警与事件</d-menu-item>
    </d-menu>
  </d-aside>

  <d-layout>
    <d-header>
      <div class="console-header">
        <span class="logo">DevUI Cloud Console</span>
      </div>
    </d-header>

    <d-content>
      <d-card>
        <d-card-header>集群列表</d-card-header>
        <d-card-content>
          <d-datatable
            [dataSource]="clusters"
            [tableWidthConfig]="tableWidthConfig"
          >
          </d-datatable>
        </d-card-content>
      </d-card>
    </d-content>
  </d-layout>
</d-layout>

这已经是一个具备中后台雏形的页面,新手在这个基础上可以逐步体验:

  • 如何增加表格列配置
  • 如何添加搜索条件、分页
  • 如何接入后端 API
2.6.2 Vue3 + Vue DevUI 快速上手

根据官方快速开始教程:

# 1. 使用 Vite 创建 Vue3 + TS 项目
npm create vite my-vue-app --template vue-ts
cd my-vue-app

# 2. 安装 Vue DevUI 与图标库、主题包
npm i vue-devui @devui-design/icons devui-theme

main.ts 中引入:

import { createApp } from 'vue';
import App from './App.vue';

import DevUI from 'vue-devui';
import 'vue-devui/style.css';
import '@devui-design/icons/icomoon/devui-icon.css';

const app = createApp(App);
app.use(DevUI);
app.mount('#app');

App.vue 中快速搭建一个 DevUI 页面:

<template>
  <d-layout>
    <d-aside width="220px">
      <d-menu mode="vertical">
        <d-menu-item>项目列表</d-menu-item>
        <d-menu-item>流水线</d-menu-item>
        <d-menu-item>制品仓库</d-menu-item>
      </d-menu>
    </d-aside>
    <d-layout>
      <d-header>
        <div class="header">
          <span class="logo">DevUI DevOps</span>
          <d-button type="primary" @click="onCreate">New Project</d-button>
        </div>
      </d-header>
      <d-content>
        <d-card>
          <template #header>项目列表</template>
          <d-table :data="projects">
            <d-column field="name" header="Name" />
            <d-column field="owner" header="Owner" />
            <d-column field="status" header="Status" />
          </d-table>
        </d-card>
      </d-content>
    </d-layout>
  </d-layout>
</template>

<script lang="ts" setup>
import { ref } from 'vue';

const projects = ref([
  { name: 'Cloud Console', owner: 'Team A', status: 'Running' },
  { name: 'DevOps Platform', owner: 'Team B', status: 'Idle' }
]);

const onCreate = () => {
  // TODO 新建项目弹窗
};
</script>

新手在此基础上可以继续练习:

  • 增加搜索条、筛选条件
  • 通过 Axios / Fetch 接入真实后端
  • 引入更复杂的 DevUI 组件(如表格扩展行、Tag、状态 Badge 等)

2.7 跨场景创新:DevUI × AI 可视化 × 低代码

DevUI 不只是“组件库”,更是一个可以嵌入 AI 可视化与低代码平台 的基础能力。

2.7.1 使用 DevUI + ECharts 搭建 AI 监控看板

Vue DevUI 官方提供了基于 ECharts 的图表集成组件,适合展示 AI 模型调用量、响应时间、错误率等指标。

典型做法:

  • 使用 DevUI Card 容器包裹 ECharts 图表

  • 通过 Tabs 在“调用量 / 延迟 / 错误率”之间切换

  • 在 AI 相关场景中可视化:

    • 模型 QPS 波动
    • 各租户 Token 使用量
    • 智能助手命中“知识库回答 / 大模型自由回答”的占比
2.7.2 DevUI 与低代码平台的结合

在社区实践中,DevUI 已经与如 H5-Dooring 之类的低代码平台有合作案例。

团队可以:

  • 将 DevUI 组件封装为低代码平台中的“物料组件”
  • 让产品经理 / 运营同学通过拖拽搭建简单的 B 端页面(报表、配置页)
  • 对复杂页面仍由前端工程师使用 DevUI 手写,以兼顾效率与灵活度
2.7.3 与 MateChat 的可视化协同

在后文会看到,MateChat 提供了多种对话与卡片组件能力。它们完全可以基于 DevUI 的设计体系与主题,与 DevUI 页面无缝融合,构建:

  • 控制台中的“智能分析卡片”
  • 监控看板中的“AI 建议浮层”
  • 低代码页面中的“智能配置助手”

这也为下一节的 MateChat 部分打下基础。

三、MateChat 智能应用:落地实践与创新探索

从这里开始,我们切换到“智能交互”视角,看看 MateChat 如何补齐 DevUI 在 AI 体验层的能力。

3.1 MateChat 的定位:前端智能化场景解决方案 UI 库

根据官方 README 与网站信息,MateChat 的核心定位是:

  • 前端智能化场景解决方案 UI 库,帮助开发者 轻松构建 AI 应用

  • 已服务于华为内部多个应用的智能化改造,支撑 CodeArts、InsCode AI IDE 等智能助手能力

  • 基于 DevUI / vue-devui 主题能力实现主题化,支持多种主题(如 IDE 风主题)

  • 提供丰富的智能场景组件:

    • 对话消息气泡(Bubble)
    • 头部 Header
    • 输入框/Input、快捷提示组件
    • 多种卡片模板(列表类、总览类、代码展示类等)
  • 支持国际化与响应式布局,适用 DevOps 平台、IDE、云控制台等多种场景

  1. MateChat 不提供 SDK 形式,它本质上是 纯前端 UI 组件库,不会替你完成模型对接。
  2. 要对接大模型(如盘古大模型 / OpenAI / 其他服务),需要在你的业务中通过 HTTP / WebSocket / SSE 等方式调用模型 API,然后将结果通过 MateChat 组件进行渲染和交互。

3.2 从 0 到 1:用 MateChat 搭建一个智能助手界面

MateChat 官方建议基于 Vite + Vue3 + TypeScript 搭建项目,再引入 vue-devui@matechat/core 等依赖。

3.2.1 项目初始化与依赖安装
# 1. 初始化 Vue3 + TS 项目
npm create vite my-ai-app --template vue-ts
cd my-ai-app

# 2. 安装 DevUI + MateChat + 图标库
npm i vue-devui @devui-design/icons devui-theme
npm i @matechat/core

main.ts 中同时引入 DevUI 与 MateChat(示意代码,具体包名以实际为准):

import { createApp } from 'vue';
import App from './App.vue';

import DevUI from 'vue-devui';
import 'vue-devui/style.css';
import '@devui-design/icons/icomoon/devui-icon.css';

// MateChat 样式
import '@matechat/core/style.css';

const app = createApp(App);
app.use(DevUI);
// MateChat 如果有 install 方法,可以直接 app.use(MateChat),
// 如无全局 install,则按需在组件内使用其组件。
app.mount('#app');

这里遵守“MateChat 无 SDK”的事实:我们只把它当作普通 UI 组件库使用,模型调用逻辑完全在自己的代码里实现。

3.2.2 组装基础对话界面

根据官方文档与示例,MateChat 提供了消息气泡 Bubble、Header 等组件,用于承载对话内容与应用头部。

一个最简版对话界面可以是:

<template>
  <div class="chat-page">
    <McHeader
      title="MateChat Demo"
      logoImg="/logo.svg"
      :logoClickable="true"
      @logoClicked="handleLogoClick"
    >
      <template #operationArea>
        <d-button size="sm" @click="clearMessages">Clear</d-button>
      </template>
    </McHeader>

    <div class="chat-body">
      <McBubble
        v-for="(msg, index) in messages"
        :key="index"
        :content="msg.content"
        :align="msg.from === 'user' ? 'right' : 'left'"
        :loading="msg.loading"
        :avatarConfig="msg.avatarConfig"
      />
    </div>

    <div class="chat-input">
      <McInput
        v-model="inputValue"
        placeholder="Ask anything about your cluster..."
        @submit="onSubmit"
      />
    </div>
  </div>
</template>

<script lang="ts" setup>
import { ref } from 'vue';

interface ChatMessage {
  from: 'user' | 'model';
  content: string;
  loading?: boolean;
  avatarConfig?: {
    name?: string;
    imgSrc?: string;
    displayName?: string;
  };
}

const messages = ref<ChatMessage[]>([]);
const inputValue = ref('');

const handleLogoClick = () => {
  // 可跳转到文档或帮助中心
};

const clearMessages = () => {
  messages.value = [];
};

const onSubmit = async (value: string) => {
  if (!value.trim()) return;
  messages.value.push({
    from: 'user',
    content: value,
    avatarConfig: { displayName: 'Me' }
  });

  inputValue.value = '';

  // 这里调用后端模型服务,示例为占位逻辑
  messages.value.push({
    from: 'model',
    content: 'Thinking...',
    loading: true,
    avatarConfig: { displayName: 'AI' }
  });

  const index = messages.value.length - 1;
  const answer = await callModelAPI(value);
  messages.value[index].content = answer;
  messages.value[index].loading = false;
};

const callModelAPI = async (ques: string) => {
  // TODO: 替换为真实 HTTP / SSE / WebSocket 调用逻辑
  // 这里先返回一个简单字符串
  return `You asked: ${ques}. This is a mock answer from model.`;
};
</script>

这个示例体现了 MateChat 的几个核心点:

  • UI 结构全部由 MateChat + DevUI 组件完成
  • 对话状态由前端自行维护(messages
  • 模型调用逻辑完全由业务方控制(callModelAPI),MateChat 不承担 SDK 职责
3.2.3 与大模型服务对接示例

MateChat 官方文档给出了如何使用 OpenAI SDK 进行对接的示例逻辑:通过 openai.chat.completions.create 创建流式响应,并不断向前端追加内容。

我们可以参照其思想,用前端代码大致实现:

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: '',      // 由你自己提供
  baseURL: '',     // 可指向代理 / 网关
  dangerouslyAllowBrowser: true
});

const fetchData = async (ques: string) => {
  // 这里演示流式更新 messages 中最后一条 model 消息的 content
  const completion = await client.chat.completions.create({
    model: 'my-model',
    messages: [{ role: 'user', content: ques }],
    stream: true
  });

  for await (const chunk of completion) {
    const content = chunk.choices[0]?.delta?.content || '';
    // 将 content 追加到最后一条 model 消息上
  }
};

再次强调:MateChat 本身只负责 UI 交互,不攫取 API Key,也不封装模型 SDK。这保证了方案的灵活性与安全性。

3.3 落地实践:把 MateChat 嵌入现有产品的三类路径

MateChat 在官方站点中展示了一个比较典型的真实 case:InsCode AI IDE 使用 MateChat 作为 IDE 插件的 AI 助手 UI

基于此,我们可以抽象出三类常见嵌入模式:

3.3.1 模式一:DevOps / 云管平台中的“侧边智能助手”
  • 布局:

    • 左侧为主导航 + 资源列表
    • 右侧为可折叠的 MateChat 对话面板
  • 触发方式:

    • 固定入口按钮(如“AI 帮我看一下”)
    • 右下角浮动按钮
  • 能力示例:

    • 选中某个 Pod / 任务后,可以一键将上下文(日志片段、监控指标)发送给 MateChat
    • 让 AI 帮你解释某个告警、排查可能原因、推荐下一步操作

这个模式下,前端只需要:

  1. 在主页面布局中引入 MateChat 对话区域
  2. 将当前上下文封装为 prompt 或结构化 JSON,发送给后端模型
  3. 对话结果以 Bubble / 卡片形式展示
3.3.2 模式二:云 IDE / 代码平台中的嵌入式 AI 面板

InsCode AI IDE 的实践告诉我们:MateChat 可以很自然地与 IDE 的布局结构融合:

  • 常见布局:

    • 左侧文件树
    • 中间编辑器
    • 右侧或底部 MateChat 对话面板

在这种场景中,MateChat 可以承担:

  • 代码解释 / 重构建议
  • 单测生成辅助
  • 日志 / 控制台输出分析

MateChat 的优势在于:

  • 内置的对话交互体验与 IDE 风主题,与 DevUI 一致的设计语言
  • 可以通过卡片组件展示代码片段、Diff 结果等信息
3.3.3 模式三:知识库 / 帮助中心中的智能问答

对于已有文档中心,可以:

  • 使用传统 DevUI 页面展示目录与文档内容
  • 使用 MateChat 在页面侧边提供智能问答区
  • 将用户问题 + 当前文档上下文发送到后端的 RAG(检索增强生成)服务
  • 用 MateChat 的气泡与卡片展示回答,并附上引用文档段落链接(如“来源:安装指南 > 步骤 3”)

3.4 创新玩法:智能体、知识检索、自然语言生成 UI、工作流与多模态

MateChat 官方在预热文中提到:

  • 一站式智能对话解决方案
  • 丰富的卡片模板(列表、总览、代码展示等)
  • 支持主题定制、国际化、响应式等特性

虽然 MateChat 本身并不直接提供智能体编排或知识检索引擎,但我们完全可以基于它构建更加“聪明”的前端体验。

3.4.1 智能体(Agent)与工具调用的前端呈现

后端可以运行真正的智能体框架,负责:

  • 根据用户意图选择工具(如“查日志”“查监控”“变更配置”)
  • 串联多个调用步骤并记录思维链(Chain-of-Thought)

而前端 MateChat 则:

  • 将每一步调用结果以卡片形式展示,如:

    • “已为你查询最近 5 分钟的错误日志”
    • “正在为你回滚到上一版本的配置”
  • 在气泡下面用“时间线 / 步骤条卡片”将调用过程可视化

这种设计同时实现了:

  • 过程可监督(用户知道 AI 在做什么)
  • 结果可解释(每一步有具体证据与操作)
3.4.2 知识检索(RAG)与证据展示

在 RAG 场景下,我们希望让用户明白:

  • AI 的答案引用了哪些文档
  • 是否存在多份可能冲突的说明

MateChat 可以通过以下方式呈现:

  • 用一个“知识引用卡片”列出相关文档:

    • 标题 + 摘要 + 来源链接
  • 对关键句高亮显示,并允许一键跳转到全文

  • 在对话气泡中显示类似“回答依据:安装手册 V2.1、第 3 章”

前端只需:

  • 约定后端返回结构化格式(如 citations 字段)
  • 在 MateChat 卡片组件中渲染这些信息
3.4.3 自然语言生成 UI(NL → UI)的尝试

结合 DevUI + MateChat,可以做一些非常有趣的探索:

  • 用户用自然语言描述需求:

    • “帮我创建一个 CPU 限制为 2 核、内存 4G 的 Deployment”
  • 后端根据语义生成:

    • k8s YAML
    • 或 DevUI Form 的默认值配置
  • 前端使用 DevUI 表单组件渲染这些值,并通过 MateChat 展示“生成结果预览卡片”。

MateChat 在这里承担两个角色:

  1. 与用户对话,收集自然语言需求
  2. 渲染 AI 生成的 UI 结果预览,如卡片式呈现 YAML 片段、表单截图说明等
3.4.4 工作流与多模态交互

在更复杂的场景中,用户可能希望:

  • 上传日志文件、截图或配置文件
  • 让 AI 分析问题并给出解决方案

MateChat 可以通过以下方式配合:

  • 在输入区域集成“文件上传”按钮,将文件信息传入模型上下文

  • 使用多模态模型(图像 + 文本)分析截图(如错误弹窗、拓扑图)

  • 将分析结果通过卡片 / 表格方式展示:

    • 错误类型统计表
    • 可疑时间段列表
    • 建议操作步骤清单

前端只需在 MateChat 消息结构中增加对附件与多模态结果的渲染逻辑,UI 层仍然由 MateChat + DevUI 统一承载。

3.5 未来趋势:从“单一聊天组件”到“GenAI 体验系统”

从 MateChat 官网的描述可以看到,它的目标并不仅仅是做一个“聊天气泡组件库”,而是:

  • 构建通用 GenAI 交互体系

  • 在多元业务场景下,提供高度一致的 GenAI 语言交流系统

  • 强调:

    • 快速唤醒(固定入口、情境建议、快捷键)
    • 轻松使用(适时引导与提示)
    • 自由表达(专为 GenAI 对话打造的输入区域)
    • 过程监督(帮助用户理解 AI 状态)
    • 可读性强的 Markdown 渲染与布局

结合行业趋势,可以预见:

  1. “AI 入口”将成为所有云原生产品的标配

    • 如同“搜索框”“通知中心”一样
    • MateChat 可以成为这个统一入口的前端实现形态
  2. 前端体验将成为智能化产品竞争力的重要维度

    • 同样是调用大模型 API,谁的前端交互更贴合场景、信息呈现更清晰,谁就更具可用性
  3. DevUI 与 MateChat 生态将进一步融合

    • 统一的设计语言与主题
    • 统一的组件风格与布局范式
    • 统一的智能交互模式(提示词模板、推荐问题、智能补全)

四、DevUI × MateChat:一体化智能前端体验蓝图

前面我们分别从 DevUI 与 MateChat 的角度展开,最后一节把它们合在一起,给出一个面向云原生与智能化的“一体化前端体验蓝图”。

4.1 设计与体验层:统一语言,减少割裂

  • 使用 DevUI Design 作为统一设计系统
  • DevUI 承担大部分中后台页面与控件
  • MateChat 承担所有 GenAI 对话与智能卡片体验
  • 统一主题(浅色 / 深色 / IDE 风)与组件风格

这样做的好处:

  • 用户在不同系统、不同页面、不同产品之间切换时,始终感受到一致的视觉与交互体验
  • 团队内部“UI 语言”统一,设计与开发沟通成本下降

4.2 工程层:组件库 + 智能 UI 的模块化治理

建议采用 monorepo + pnpm 的方式管理 DevUI 业务组件库与 MateChat 集成层,这也与 MateChat 仓库本身的 monorepo 结构相契合。

可能的工程结构:

packages/
  devui-biz-components/   # 基于 DevUI 封装的业务组件库
  matechat-integration/   # MateChat 与公司模型网关集成的中间层(前端)
  console-app/            # 云控制台应用
  ide-app/                # 云 IDE / 代码平台
  help-center-app/        # 文档 & 知识库应用
  • devui-biz-components 中只依赖 DevUI,与业务领域强绑定

  • matechat-integration 中封装:

    • MateChat 封装组件
    • 与后端智能服务网关之间的协议(如统一的 POST /ai/chat 接口)
    • 常用 prompt 模板 / 卡片渲染逻辑
  • 各应用(console / ide / help-center)只需按需引入这两个包

4.3 架构层:云原生 BFF + 智能服务网关

在后端架构上,推荐:

  • 使用 BFF(Backend for Frontend)为各前端应用提供聚合接口

  • BFF 后面再连接到:

    • 传统业务微服务集群
    • 智能服务网关(统一接入大模型、RAG、Agent 等)

前端调用链路:

  1. DevUI 页面 → 业务 BFF(传统查询 / 修改)
  2. MateChat 对话 → 智能服务网关(自然语言交互)

通过统一的网关与接口规范,可以让:

  • MateChat 的 UI 与交互逻辑基本保持稳定
  • 底层切换不同大模型、RAG 服务、智能体框架时对前端影响最小

4.4 团队协作层:设计、前端、算法三方共建

在 DevUI + MateChat 体系下,一个健康的团队协作模式可以是:

  • 设计:

    • 负责 DevUI 主题与组件规范
    • 负责 MateChat 交互模式与对话 UX 设计
  • 前端:

    • 负责基于 DevUI 构建页面、编写业务组件
    • 负责基于 MateChat 实现智能 UI 与调用协议
  • 算法 / 后端:

    • 负责模型选择、大模型能力接入、RAG Pipelines、Agent Orchestration
    • 与前端一起定义“消息格式与卡片结构”

这使得智能化不再是“算法的专利”,而成为“前端 + 算法 + 设计共同塑造的体验能力”。

五、结语:云原生前端进入“智能体验工程化”时代

如果把云原生发展看成一条时间轴:

  • 第一阶段:基础设施云化
  • 第二阶段:平台化与 DevOps 工具链
  • 第三阶段(现在):平台 + 智能助手 + 统一前端体验

在这个阶段,前端的价值不再只是“还原设计稿”,而是:

  • 搭建一套可以被 复用、扩展、智能化 的体验基础设施
  • 在每一个复杂业务场景里,为用户引入 清晰、可控、可信的智能能力

DevUI 给了我们一个稳固的 企业级前端基座
MateChat 则在这个基座上,提供了面向 智能化交互 的专用能力与体验标准。

只要我们沿着:

  • DevUI:组件生态 → 主题定制 → 云原生实践 → 与低代码协同
  • MateChat:对话 UI → 模型对接 → 落地案例 → 创新玩法与未来趋势

这两条轨迹不断演进,云原生“深水区”的前端,不再是负担,而会是整个智能化产品的 关键抓手创新舞台。✨

❤️ 如果本文帮到了你…

  • 请点个赞,让我知道你还在坚持阅读技术长文!
  • 请收藏本文,因为你以后一定还会用上!
  • 如果你在学习过程中遇到bug,请留言,我帮你踩坑!

声明:如上部分内容及配图来源官方及公开互联网,若有侵权,还请联系删除。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐