跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
TypeScriptAI大前端

AI 鸿蒙 App 开发:从页面到能力系统的架构变革

记录了在鸿蒙 App 中接入 AI 功能时的架构演变过程。最初仅增加 AI 页面,随后发现 AI 绕过页面直接调用业务逻辑,导致 Service 层成为核心。作者将能力服务化,引入 Tool 层和 Agent 编排,最终实现从“页面应用”向“能力系统”的转变。UI 地位下降,数据流由 AI 触发,思维方式从页面设计转向意图理解与任务组合。

活在当下发布于 2026/4/6更新于 2026/9/1283 浏览
AI 鸿蒙 App 开发:从页面到能力系统的架构变革

引言

一开始的目标是在鸿蒙 App 里接入一个 AI 功能,例如智能搜索、AI 助手或支持自然语言操作。但实际开发后发现,不是给 App 加 AI,而是 AI 在重写整个 App 的逻辑,这是架构级别的变化。

一、最开始,我只是加了一个'AI 页面'

最初的实现很典型:首页新增一个 AI 页面,调用大模型接口,展示结果。

@Entry
@Component
struct AIPage {
  @State input: string = ""
  @State reply: string = ""

  async send() {
    this.reply = await aiService.chat(this.input)
  }
}

当时以为这样完成了,但很快问题就来了。

二、AI 开始'绕过页面'

用户开始提一些请求,如帮我查一下订单、推荐几个商品、看看今天有什么安排。这些需求本来应该对应订单页、商品页、日程页,但现在用户根本没有进入这些页面,AI 直接返回了结果。

这时候第一次意识到:页面,不再是唯一入口了。

三、Service 层突然变成核心

以前代码结构是 Page → Service → API,但现在变成 AI → Service → Page → Service。也就是说 Service 被两个入口调用:UI 和 AI。

1 有些 Service 写在页面里
// Page 内部逻辑
async loadOrders() {
  return await api.get("/orders")
}

AI 根本调不了。

2 有些逻辑和 UI 强绑定
this.loading = true
this.orders = await api.get()
this.loading = false

AI 也用不了,于是我不得不重构:把所有业务逻辑从页面里'抽出来'。

四、我开始把能力'服务化'

做的第一步是拆 Service。

export class OrderService {
  async getOrders(userId: string) {
    return await api.get("/orders")
  }
}

然后 UI 和 AI 都调用:

await orderService.getOrders(userId)

这一刻变化很明显:App 不再是页面集合,而是能力集合。

五、我又加了一层:Tool

很快发现一个新问题,AI 并不知道该调用哪个 Service。于是加了一层 Tool。

export class OrderTool {
  async execute(params) {
    return await orderService.getOrders(params.userId)
  }
}

AI 只需要调用 Tool,而不用关心底层实现,这时候架构变成:AI → Tool → Service。

六、我不得不引入'Agent'

再往后,用户输入开始变复杂,如帮我查订单,并推荐相关商品。这已经不是一个 Service 能完成的任务,需要多个步骤、多个能力组合执行。于是引入了 Agent。

export class Agent {
  async run(input: string) {
    const intent = await this.parse(input)
    if (intent === "order_and_recommend") {
      const orders = await orderTool.execute()
      const goods = await recommendTool.execute()
      return { orders, goods }
    }
  }
}

这时候才彻底意识到:AI 不只是调用接口,而是在'编排系统能力'。

七、UI 的地位明显下降了

以前 UI = 核心,现在 AI = 核心,UI = 展示。很多操作变成:用户一句话 ↓ AI 完成 ↓ UI 展示结果。甚至很多时候 UI 根本不参与流程。

八、数据流也变了

传统数据流:UI → Service → Data → UI。 现在变成:用户输入 ↓ AI ↓ Service ↓ Data ↓ UI(展示)。 变化很关键:数据流不再由 UI 触发,而是由 AI 触发。

九、最大的变化,其实是'思维方式'

做完这个项目后,最大的感受不是代码变了,而是思维方式彻底变了。

以前在想:这个页面怎么设计?这个按钮放哪?这个流程怎么走? 现在在想:用户会说什么?系统怎么理解?能力怎么组合?任务怎么完成?

十、本质总结

如果用一句话总结这次变化:我不再是在做'页面应用',而是在做'能力系统'。

维度传统 AppAI App
入口页面意图
核心UIAgent
逻辑固定流程动态任务
结构页面集合能力系统

结语

一开始只是想给鸿蒙 App 加一个 AI 功能,但最后得到的是一个完全不同的应用架构。建议不要把 AI 当成功能,而要当成系统入口来设计。否则很快就会遇到架构混乱、代码失控、AI 能力无法扩展的问题。

目录

  1. 引言
  2. 一、最开始,我只是加了一个“AI 页面”
  3. 二、AI 开始“绕过页面”
  4. 三、Service 层突然变成核心
  5. 1 有些 Service 写在页面里
  6. 2 有些逻辑和 UI 强绑定
  7. 四、我开始把能力“服务化”
  8. 五、我又加了一层:Tool
  9. 六、我不得不引入“Agent”
  10. 七、UI 的地位明显下降了
  11. 八、数据流也变了
  12. 九、最大的变化,其实是“思维方式”
  13. 十、本质总结
  14. 结语

更多推荐文章

查看全部
  • Llama-3.2V-11B-COT 模型视觉推理质量评估指南
  • Windows 本地运行 DeepSeek 大模型的三步指南
  • JavaScript 金额计算精度丢失与分摊方案
  • Qt Creator 18.0.2 跨平台 IDE:支持 Qt、QML 与 C++
  • Python 图像文字艺术:用代码生成专属表白图
  • Vue第四篇:组件通信 + DOM 更新 + 过渡动画
  • Whisper 模型国内镜像源汇总与快速下载指南
  • Agent 从入门到实践:与前端系统集成及 API 对接
  • JVM 运行时数据区域详解:从内存结构到面试考点
  • 当 Batch Size 增大时,学习率该如何随之变化?
  • GitHub Copilot 学生认证重验通过指南(2025 版)
  • Meson:现代 C/C++ 构建系统详解
  • 无人机基本组成与结构设计
  • WiFi模块AT指令全解析和智能家居APP制作
  • C/C++ 内存管理与分布详解
  • JWT 详解:原理、与 Session 区别及 Spring Boot 实战
  • 基于 Python 实现多浏览器并行注入的实战方案
  • FLUX.2[klein] 开源:本地部署 AI 绘画的轻量级方案
  • 树的基本概念与堆的功能实现
  • 前端音频录制工具:AudioRecorder 类实现与使用指南

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online