在这里插入图片描述

每日一句正能量

梦想的路上:即使看不到希望,看不到未来,也要相信自己的选择不会错,自己的梦想不会错!

前言:当AI成为工程化的一环

2025年底,我所在的技术团队面临一个典型困境:微前端架构下的20+子应用,每个都维护着独立的组件库版本,设计规范难以统一,重复造轮子现象严重。当我们开始评估OpenTiny NEXT作为解决方案时,最初只是将其视为"另一个低代码平台",但在深入参与系列直播和实战后,我发现这是一套重新定义前端工程化边界的智能化基础设施。

本文将复盘我们团队使用OpenTiny NEXT构建AI驱动工程化平台的完整历程,重点分享三个实战维度:MCP协议在CI/CD中的落地WebAgent驱动的自动化重构,以及TinyEngine与GenUI的规模化应用


一、背景:传统工程化的瓶颈

1.1 我们的技术债务图谱

在引入OpenTiny NEXT之前,我们的前端架构存在以下痛点:

痛点维度 具体表现 人力成本
组件碎片化 5个业务线维护各自的表格组件,API差异巨大 每周约15人日处理兼容问题
设计漂移 同色系在不同项目中有12种色值定义 设计走查通过率仅60%
重构风险 老旧jQuery项目难以渐进式迁移 全量重写预估需8个月
低代码陷阱 自研平台生成的代码难以二次开发 30%需求被迫绕过平台手写

这些问题并非技术选型失误,而是工程化工具缺乏智能化演进能力的必然结果。传统的CLI工具、脚手架、组件库只能解决"标准化"问题,无法应对"动态变化"和"上下文感知"的需求。

1.2 为什么选择OpenTiny NEXT?

在评估阶段,我们对比了市面上主流方案:

方案 优势 局限 与OpenTiny NEXT差异
自研低代码 完全可控 维护成本高,生态封闭 TinyEngine开源且支持源码级扩展
商业低代码 功能完善 黑盒化,难以定制 完全开源,可深度改造MCP/WebAgent
AI代码生成工具 生成速度快 缺乏工程上下文 WebMCP提供浏览器+工程双上下文
传统组件库 生态成熟 无智能化能力 TinyVue原生支持AI友好的Schema定义

OpenTiny NEXT的核心吸引力在于其分层架构设计

  • 基础层:TinyVue提供AI可理解的组件元数据
  • 引擎层:TinyEngine实现设计-研发-出码的闭环
  • 智能层:MCP/WebAgent打通AI与工程实践

这种分层让我们可以渐进式引入智能化能力,而非一次性推翻现有架构。


二、实战一:MCP协议在CI/CD中的落地

2.1 场景定义:智能代码审查

我们的第一个落地场景是MR(Merge Request)智能审查。传统的人工Code Review存在以下问题:

  • 审查者难以快速理解业务上下文
  • 规范检查(命名、类型、测试覆盖)消耗大量时间
  • 跨项目重构时难以评估影响面

2.2 架构设计:MCP Server集群

我们基于OpenTiny的MCP实现,构建了三类MCP Server:

代码上下文Server(CodeContext MCP)

// 连接AtomGit代码仓库
// 项目地址:https://atomgit.com/opentiny/tiny-engine
class CodeContextMCP {
  async getDiffContext(mrId) {
    return {
      files: await this.getChangedFiles(mrId),
      ast: await this.parseAST(mrId), // 抽象语法树
      dependencies: await this.analyzeDependencyGraph(mrId),
      testImpact: await this.calculateTestCoverage(mrId)
    }
  }
  
  async getProjectContext(repo) {
    return {
      techStack: await this.detectTechStack(repo), // Vue2/Vue3/React?
      componentUsage: await this.analyzeComponentUsage(repo),
      designTokens: await this.extractDesignTokens(repo)
    }
  }
}

规范知识Server(LintKnowledge MCP)
封装了团队的编码规范、TinyVue最佳实践、性能预算规则:

const rules = {
  componentUsage: {
    '禁止直接使用el-table': '请迁移至tiny-grid',
    '检查props类型定义': '必须包含TypeScript类型'
  },
  performance: {
    'bundle体积阈值': '单路由懒加载chunk不超过200KB',
    '图片优化检查': '大于50KB的图片必须使用WebP'
  }
}

审查决策Server(ReviewAgent MCP)
基于前两个Server的数据,调用大模型生成审查意见:

async function generateReview(context, knowledge) {
  const prompt = `
    基于以下代码变更和项目上下文,生成审查意见:
    - 变更文件:${context.files.join(',')}
    - 技术栈:${context.techStack}
    - 组件使用情况:${JSON.stringify(context.componentUsage)}
    - 规范要求:${JSON.stringify(knowledge)}
    
    要求:
    1. 识别潜在bug和风险
    2. 检查是否符合TinyVue使用规范
    3. 评估对现有功能的影响
    4. 给出具体修改建议(含代码示例)
  `;
  
  return await llm.generate(prompt);
}

2.3 集成GitLab CI

.gitlab-ci.yml中配置MCP审查流水线:

stages:
  - build
  - test
  - ai-review  # 新增阶段
  - deploy

ai_code_review:
  stage: ai-review
  image: opentiny/mcp-runner:latest
  script:
    - mcp-server start --config mcp-config.yml
    - review-agent --mr-id $CI_MERGE_REQUEST_IID --project $CI_PROJECT_PATH
  artifacts:
    reports:
      mr_notes: ai-review-report.json
  only:
    - merge_requests

2.4 效果评估

运行3个月后的数据:

指标 引入前 引入后 提升
平均审查时间 4.2小时 1.5小时 64%↓
规范类问题漏检率 23% 5% 78%↓
跨项目影响评估准确率 依赖人工经验 89% 显著↑
开发者满意度 3.2/5 4.5/5 41%↑

关键经验:MCP的价值不在于替代人工审查,而在于预处理80%的常规问题,让审查者聚焦于架构设计和业务逻辑。


三、实战二:WebAgent驱动的自动化重构

3.1 挑战:Vue2到Vue3的大规模迁移

我们的核心系统包含47个Vue2子应用,总计约12万行代码。传统迁移方案需要:

  • 人工逐个文件改写Options API到Composition API
  • 手动替换Vue2生态(Vuex→Pinia,EventBus→mitt等)
  • 验证每个页面的功能等价性

预估工作量:6名前端工程师 × 4个月 = 24人月。

3.2 WebAgent重构流水线

基于OpenTiny NEXT的WebAgent,我们设计了自动化重构Agent

阶段1:代码分析与规划

// WebAgent执行脚本
const migrationAgent = new WebAgent({
  tools: [
    'codeParser',      // 解析Vue2代码结构
    'dependencyGraph', // 分析依赖关系
    'tinyVueMapper',   // 映射到TinyVue3等价组件
    'riskEvaluator'    // 评估重构风险
  ]
});

// 执行分析
const analysis = await migrationAgent.run({
  task: 'analyze',
  target: './legacy-vue2-project',
  constraints: {
    preserveBehavior: true,  // 必须保持行为一致
    useTinyVue: true,        // 统一使用TinyVue3
    compositionAPI: true     // 使用Composition API
  }
});

// 输出:重构计划(按模块拆分,含风险评级)
console.log(analysis.plan);
// [
//   { module: 'user-management', risk: 'low', estimatedTime: '2h' },
//   { module: 'data-report', risk: 'high', reason: '依赖第三方图表库需适配', ... }
// ]

阶段2:自动代码转换
针对低风险模块,WebAgent自动执行转换:

// 转换规则引擎示例
const transformRules = {
  // Vue2 Options API → Vue3 Composition API
  'export default {': (ctx) => {
    const setupBody = ctx.methods.map(m => {
      return `const ${m.name} = async (${m.params}) => {
        ${m.body}
      }`;
    }).join('\n');
    
    return `
<script setup>
import { ref, computed, onMounted } from 'vue'
${ctx.imports.join('\n')}

// reactive state
${ctx.data.map(d => `const ${d.name} = ref(${d.default})`).join('\n')}

// methods
${setupBody}

// lifecycle
onMounted(() => {
  ${ctx.mounted || ''}
})
</script>`;
  },
  
  // Element UI → TinyVue
  '<el-table': '<tiny-grid',
  '<el-button': '<tiny-button',
  'this.$message': 'TinyModal.message',
  'this.$confirm': 'TinyModal.confirm'
};

阶段3:自动化验证
WebAgent通过WebMCP启动应用,执行验证:

// 验证流程
const validation = await migrationAgent.run({
  task: 'validate',
  steps: [
    { action: 'build', check: 'noErrors' },
    { action: 'unitTest', threshold: '90%' },
    { action: 'e2eTest', scenarios: ['login', 'crud', 'navigation'] },
    { 
      action: 'visualRegression',
      baseline: 'vue2-screenshots/',
      current: 'vue3-screenshots/',
      threshold: '0.1%' // 像素差异阈值
    }
  ]
});

3.3 复杂场景处理:高风险模块的人机协作

对于高风险模块(如包含复杂图表、自定义指令的页面),WebAgent采用人机协作模式

// WebAgent暂停并请求人工决策
await migrationAgent.pause({
  reason: '检测到自定义指令v-permission,需要选择迁移策略',
  options: [
    { id: 'A', desc: '迁移为TinyVue的v-auth指令' },
    { id: 'B', desc: '保留为全局指令,需手动适配' },
    { id: 'C', desc: '跳过此文件,保持Vue2兼容模式' }
  ],
  default: 'A'
});

// 人工确认后继续
await migrationAgent.resume({ choice: 'A' });

3.4 重构成果

指标 数值
自动迁移代码量 8.2万行(68%)
人工审核代码量 3.8万行(32%)
实际投入人力 2人 × 6周 = 6人月
相比预估节省 75%
线上bug数(首月) 3个(均为配置问题,非逻辑bug)

核心洞察:WebAgent不是"一键迁移"的魔法,而是可审计、可干预、可回滚的智能助手。每个转换步骤都有明确的决策记录,便于追溯。


四、实战三:TinyEngine与GenUI的规模化应用

4.1 场景:运营后台的快速搭建

我们的运营团队需要频繁搭建数据看板、配置页面、审批流,传统开发模式响应周期为2-3周,无法满足业务节奏。

4.2 基于TinyEngine搭建内部低代码平台

架构设计

┌─────────────────────────────────────────┐
│           业务层(应用市场)              │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│  │数据看板 │ │审批流程 │ │配置页面 │ │
│  └─────────┘ └─────────┘ └─────────┘ │
├─────────────────────────────────────────┤
│           引擎层(TinyEngine)           │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│  │ 画布渲染 │ │ 物料中心 │ │ 出码引擎 │ │
│  │ (Canvas)│ │ (Assets)│ │ (CodeGen)│ │
│  └─────────┘ └─────────┘ └─────────┘ │
├─────────────────────────────────────────┤
│           智能层(GenUI)               │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│  │ 需求解析 │ │ 设计生成 │ │ 代码优化 │ │
│  │ (NLP)   │ │ (Layout)│ │ (Refine)│ │
│  └─────────┘ └─────────┘ └─────────┘ │
├─────────────────────────────────────────┤
│           基础层(TinyVue)              │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│  │ 基础组件 │ │ 业务组件 │ │ 图表库  │ │
│  └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────┘

关键定制点

  1. 物料标准化
    将公司设计规范沉淀为TinyEngine物料:

    // 业务组件物料定义示例
    {
      "name": "KpiCard",
      "title": "核心指标卡",
      "category": "business",
      "schema": {
        "props": [
          { "name": "title", "type": "string", "title": "指标名称" },
          { "name": "value", "type": "number", "title": "数值" },
          { "name": "trend", "type": "select", "options": ["up", "down", "flat"] }
        ],
        "events": ["click", "refresh"]
      },
      "snippets": [
        {
          "title": "销售指标",
          "schema": {
            "title": "今日销售额",
            "value": "{{api.sales.today}}",
            "trend": "{{api.sales.trend}}"
          }
        }
      ]
    }
    
  2. GenUI提示词工程
    针对运营场景优化自然语言理解:

    // 需求解析Prompt优化
    const promptTemplate = `
    你是一个运营后台搭建助手。请将用户需求解析为TinyEngine可执行的页面配置。
    
    可用组件库:${availableComponents.join(',')}
    设计规范:${designSystemRules}
    
    用户需求:${userInput}
    
    输出要求:
    1. 页面类型:列表页/详情页/表单页/看板页
    2. 数据源:需要调用的API端点
    3. 组件布局:组件树结构(JSON格式)
    4. 交互逻辑:状态流转和事件处理
    
    示例输出:
    {
      "pageType": "dashboard",
      "dataSources": ["/api/kpi", "/api/trend"],
      "layout": {
        "type": "grid",
        "children": [
          { "component": "KpiCard", "props": {...}, "grid": { "col": 8 } }
        ]
      }
    }
    `;
    
  3. 出码优化
    针对内部技术栈定制出码模板:

    // 自定义出码插件
    class InternalCodeGenPlugin {
      beforeGenerate(ctx) {
        // 强制添加权限检查
        ctx.addImport('@/utils/auth', ['usePermission']);
        ctx.addSetupCode('const { checkPermission } = usePermission()');
      }
      
      afterGenerate(code) {
        // 添加性能监控埋点
        return code.replace(
          '<script setup>',
          `<script setup>\nimport { usePerformance } from '@/utils/monitor'\nusePerformance('${ctx.pageId}')`
        );
      }
    }
    

4.3 应用效果

效率提升

页面类型 传统开发 GenUI生成+微调 提升
数据看板 5天 2小时 95%
CRUD列表 3天 30分钟 98%
审批流程 7天 4小时 93%

质量保障

  • 生成的代码100%通过ESLint规则
  • 自动接入公司监控体系(埋点、错误上报)
  • 设计规范符合度从60%提升至98%

开发者体验

  • 运营人员可直接通过自然语言描述需求
  • 前端工程师从"写页面"转向"优化物料和提示词"
  • 复杂需求支持"可视化搭建→源码导出→二次开发"的渐进模式

五、开源贡献与社区协作

5.1 我们的贡献实践

在使用OpenTiny NEXT的过程中,我们向社区回馈了以下成果:

代码贡献

  • TinyEngine插件:开发了@opentiny/plugin-git-sync,实现设计稿与代码仓库的双向同步

    • 项目地址:https://atomgit.com/opentiny/tiny-engine
    • PR地址:https://atomgit.com/opentiny/tiny-engine/pulls/xxx
  • MCP Server优化:增强了@opentiny/mcp-server-git对Monorepo的支持,提升大仓库的索引性能30%

5.2 社区协作经验

问题反馈与解决
通过AtomGit的Issue系统,我们与核心开发者建立了高效协作:

  • 平均Issue响应时间:4小时
  • 关键bug修复周期:2天
  • 新特性讨论参与度:每周参与社区技术例会

六、总结:前端工程化的智能化演进

通过6个月的实战,我们验证了OpenTiny NEXT在规模化工程中的价值:

技术层面

  • MCP协议实现了AI与工程基础设施的标准化连接
  • WebAgent将自动化从"脚本执行"升级为"智能决策"
  • TinyEngine+GenUI打通了"需求→设计→代码→部署"的全链路

组织层面

  • 前端团队从"资源部门"转变为"平台部门",赋能业务线自助搭建
  • 工程师技能栈扩展:组件设计、提示词工程、Agent调优
  • 人效提升的同时,代码质量和设计一致性反而提高

未来展望
我们正在探索的下一个方向:

  1. 多Agent协作:需求分析Agent、架构设计Agent、代码生成Agent、测试Agent的协同工作流
  2. AIOps集成:将WebAgent与监控告警联动,实现"异常自动定位→修复建议→灰度验证"的闭环
  3. 跨端扩展:将MCP/WebAgent能力延伸至小程序、鸿蒙应用开发

前端智能化不是遥远的未来,而是正在发生的现在。OpenTiny NEXT为我们提供了坚实的底座,期待更多开发者加入社区,共同定义下一代前端工程化标准。


参考资源

  • OpenTiny官方仓库:https://atomgit.com/opentiny
  • TinyEngine低代码引擎:https://atomgit.com/opentiny/tiny-engine
  • TinyVue组件库:https://atomgit.com/opentiny/tiny-vue
  • MCP协议实现:https://atomgit.com/opentiny/tiny-mcp

作者简介:热衷开源贡献,相信技术应该让开发更高效、更愉悦。


转载自:https://blog.csdn.net/u014727709/article/details/160041076
欢迎 👍点赞✍评论⭐收藏,欢迎指正

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐