在这里插入图片描述

2026 年的鸿蒙开发,AI 不再只是"调一个 API"——它已经渗透到从写代码到跑模型、从意图理解到智能体调度的每一个环节。

一、两条 AI 路线:开发侧与运行侧

HarmonyOS 的 AI 能力分布在两个截然不同的层面,理解这种分层是把握全文的钥匙。

开发侧解决"怎么更快地写出鸿蒙应用"的问题。华为在 2025 年 HDC 上发布了 DevEco CodeDevEco CLI 两款 AI 编程工具,前者是开箱即用的终端 AI Agent,后者是面向企业现有工具链的原子化命令行能力。它们基于华为自研的毕方代码大模型,能完成从需求拆解到编译部署的全流程自动化 $TRAE_REF

运行侧解决"应用本身怎么具备 AI 能力"的问题。HarmonyOS 6.0 将 AI 能力从单个 SDK 升级为操作系统级的 HMAF(鸿蒙智能体框架),包含 11 个 AI Kit,覆盖从基础语音视觉到端侧大模型推理的完整链路 $TRAE_REF

这两条路线的交汇点在于:你可以用 DevEco Code 快速生成调用了 AI Kit 的鸿蒙应用代码,然后在这台设备上用 MindSpore Lite 跑端侧推理——AI 写 AI,这不再是科幻。

二、开发侧:DevEco Code 三种模式

DevEco Code 的设计理念是"开箱即用 + 开放扩展"。它默认提供三种工作模式,覆盖不同复杂度的开发场景 $TRAE_REF

Build 模式:全流程自动执行

输入一句话需求,DevEco Code 自动完成编码、语法检查、编译、打包、模拟器运行、问题修复的全部步骤。适合需求明确、逻辑简单的功能开发。比如输入"创建一个带下拉刷新的列表页面",它会直接生成 ArkTS 代码并推送到模拟器运行。

Plan 模式:交互式任务分解

对于复杂需求,Plan 模式会先将任务拆解为子任务列表,与开发者逐项确认后再执行。比如"实现一个电商首页"会被拆解为轮播图组件、商品分类网格、推荐瀑布流、底部导航等子任务,开发者可以调整优先级和实现方式。

Goal 模式:规格优先的工程化开发

Goal 模式遵循"先文档、后代码"的范式:先生成需求规格文档和系统设计文档,开发者确认后再按文档实现代码。这种模式保证代码质量稳定,适合团队协作和企业级项目。

Skill 机制:为什么 Token 消耗能降 70%

DevEco Code 的核心技术不是大模型本身,而是 Skill 体系。Skill 将高频开发操作(配置编译、签名、部署测试等)固化为精确的指令集,AI Agent 直接调用而不需要在提示词中反复加载冗长文档 $TRAE_REF

这种设计带来三个好处:

  • 模型无关性:任务成功率不依赖特定模型版本,确定性大幅提升
  • Token 消耗降低 70% 以上:不需要在历史对话中反复加载配置步骤
  • 知识实时更新:Skill 知识库随 IDE 版本同步更新,避免生成过时代码

三、运行侧:11 个 AI Kit 的分层架构

HarmonyOS 6.0 的 AI 能力经历了三个演进阶段 $TRAE_REF

阶段 API 版本 核心能力 开发模式
基础能力 API 12-14 文本/图像 Embedding、ASR/TTS、NLU、Intents Kit 单步工具调用
能力增强 API 15-17 多模态支持、Data Augmentation Kit(端侧 RAG) 管道式串联
智能体时代 API 18-21 HMAF、Agent Framework Kit、小艺开放平台 智能体自主编排

11 个 Kit 的分工如下:

Kit 起始 API 核心能力 典型场景
Agent Framework Kit API 20 智能体框架服务 应用内 AI 助手入口
Intents Kit API 12 系统级意图理解与调度 语音指令、系统功能调用
Data Augmentation Kit API 15 端侧 RAG 企业私域知识问答
Core Speech Kit API 12 基础 ASR/TTS 语音转文字、文字转语音
Core Vision Kit API 12 基础图像识别 OCR、物体识别
Natural Language Kit API 12 NLU 能力 分词、实体识别、情感分析
CANN Kit API 12 AI 推理加速 端侧模型加速推理
MindSpore Lite Kit API 12 昇思推理框架 自定义模型端侧部署
Neural Network Runtime Kit API 12 神经网络运行时 模型执行底层引擎

HMAF 三层架构

HMAF 不是跑在应用进程里的 SDK,而是嵌入在操作系统内核层的框架 $TRAE_REF。这意味着智能体的对话框 UI、流式渲染、上下文管理全部由操作系统底层接管,不占用应用 CPU 和内存。

┌───────────────────────────────────┐
│ 应用层:Agent Framework Kit        │
│ FunctionComponent / AgentController│
├───────────────────────────────────┤
│ 框架层:HMAF                       │
│ 意图识别 / 工具调度 / 多Agent协同   │
│ 对话管理 / 知识检索 / 分布式软总线  │
├───────────────────────────────────┤
│ 能力层                             │
│ 端侧LLM / ASR/TTS / CV/OCR / Intents│
└───────────────────────────────────┘

四、实战一:用 MindSpore Lite 跑端侧图像分类

这是最基础的端侧 AI 能力——在设备本地完成模型推理,不需要联网,不向云端传输用户数据 $TRAE_REF

开发准备

使用 MobileNetV2 模型(mobilenetv2.ms),放置在 entry/src/main/resources/rawfile 目录下。模型的输入尺寸为 224×224,输出为 1000 类的置信度。

首先在 entry/src/main 下创建 syscap.json,声明 MindSporeLite 能力:

{
  "devices": {
    "general": ["default"]
  },
  "development": {
    "addedSysCaps": ["SystemCapability.AI.MindSporeLite"]
  }
}

推理核心代码

import { mindSporeLite } from '@kit.MindSporeLiteKit'
import { hilog } from '@kit.PerformanceAnalysisKit';

export default async function modelPredict(
  modelBuffer: ArrayBuffer, inputsBuffer: ArrayBuffer[]
): Promise<mindSporeLite.MSTensor[]> {
  // 1. 创建上下文,配置 CPU 推理参数
  let context: mindSporeLite.Context = {};
  context.target = ['cpu'];
  context.cpu = {}
  context.cpu.threadNum = 2;
  context.cpu.threadAffinityMode = 1;
  context.cpu.precisionMode = 'enforce_fp32';

  // 2. 从内存加载模型
  let msLiteModel: mindSporeLite.Model =
    await mindSporeLite.loadModelFromBuffer(modelBuffer, context);

  // 3. 设置输入数据
  let modelInputs: mindSporeLite.MSTensor[] = msLiteModel.getInputs();
  for (let i = 0; i < inputsBuffer.length; i++) {
    let inputBuffer = inputsBuffer[i];
    if (inputBuffer != null) {
      modelInputs[i].setData(inputBuffer as ArrayBuffer);
    }
  }

  // 4. 执行推理
  let modelOutputs: mindSporeLite.MSTensor[] =
    await msLiteModel.predict(modelInputs);
  return modelOutputs;
}

四步走:创建上下文 → 加载模型 → 填充输入 → 执行推理。context.cpu.threadNum = 2 设置推理线程数,precisionMode = 'enforce_fp32' 强制使用 Float32 精度。如果模型支持 Float16,可以切换为 'enforce_fp16' 减少内存占用。

图像预处理

从相册选图后,需要裁剪为 224×224 并转换为 Float32 归一化数据:

// 读取相册图片的 PixelMap
let imageSource = image.createImageSource(file.fd);
let pixelMap = await imageSource.createPixelMap();
let info = await pixelMap.getImageInfo();

// 缩放到 256×256,再中心裁剪到 224×224
await pixelMap.scale(256.0 / info.size.width, 256.0 / info.size.height);
await pixelMap.crop({
  x: 16, y: 16,
  size: { height: 224, width: 224 }
});

// 读取像素数据(RGBA 格式)
let readBuffer = new ArrayBuffer(224 * 224 * 4);
await pixelMap.readPixelsToBuffer(readBuffer);

// 转换为 Float32 并归一化
const imageArr = new Uint8Array(readBuffer);
let means = [0.485, 0.456, 0.406];
let stds = [0.229, 0.224, 0.225];
let float32View = new Float32Array(224 * 224 * 3);
let index = 0;
for (let i = 0; i < imageArr.length; i++) {
  if ((i + 1) % 4 === 0) {
    float32View[index]     = (imageArr[i - 3] / 255.0 - means[0]) / stds[0]; // B
    float32View[index + 1] = (imageArr[i - 2] / 255.0 - means[1]) / stds[1]; // G
    float32View[index + 2] = (imageArr[i - 1] / 255.0 - means[2]) / stds[2]; // R
    index += 3;
  }
}

// 执行推理
let inputs: ArrayBuffer[] = [float32View.buffer];
let outputs = await modelPredict(modelBuffer.buffer.slice(0), inputs);

// 解析输出,取 Top-5 分类
for (let i = 0; i < outputs.length; i++) {
  let out = new Float32Array(outputs[i].getData());
  // 按 confidence 排序取前 5...
}

归一化参数 meansstds 来自 ImageNet 数据集的统计值。如果你的模型使用了不同的训练数据集,需要替换为对应的归一化参数。

五、实战二:Intents Kit 接入系统意图框架

Intents Kit 是鸿蒙级的意图标准体系,连接应用内的业务功能与系统入口(小艺对话、小艺搜索、小艺建议) $TRAE_REF。接入后,用户可以通过对小艺说"帮我查一下订单"直接拉起你的应用的订单页面。

接入流程

意图框架的接入分五步:

  1. 应用开发:在应用中实现意图对应的 UIAbility 或 UI 页面
  2. 应用上架:在 AppGallery Connect 上传并上架应用包
  3. 意图注册:在小艺开放平台注册意图,配置触发条件和参数 Schema
  4. 审核:华为工程师审核意图配置(一般 3-5 个工作日)
  5. 智慧分发:审核通过后,用户通过小艺即可触发应用功能

意图注册配置

在小艺开放平台创建意图时,需要定义意图的输入参数和执行动作。以"查询订单"意图为例:

  • 意图名称:queryOrder
  • 触发词:“查订单”、“我的订单”、“订单状态”
  • 输入参数:orderId(可选,用户可能直接说"查订单"而不带 ID)
  • 执行动作:拉起应用的 OrderDetailAbility

意图框架利用鸿蒙的大模型和多维设备感知能力,能理解用户的显性意图(“帮我查一下昨天买的那个东西到哪了”)和潜在意图(用户经常在下班后查物流,系统主动推荐物流信息)。

六、实战三:Agent Framework Kit 40 行代码接入智能体

这是 HMAF 最核心的接入方式。应用只需要声明一个 FunctionComponent,系统就会接管对话框 UI、流式渲染、上下文管理、网络通信的全部工作 $TRAE_REF

import { FunctionComponent, FunctionController } from '@kit.AgentFrameworkKit';
import { BusinessError } from "@kit.BasicServicesKit";
import { hilog } from "@kit.PerformanceAnalysisKit";
import { common } from '@kit.AbilityKit';

@Entry
@Component
struct AgentServicePage {
  private controller: FunctionController = new FunctionController();
  // 从小艺开放平台获取的 Agent ID
  private agentId: string = 'agentproxy65481da1fa2293a8482d45';
  @State isAgentSupport: boolean = false;

  async checkAgentSupport() {
    try {
      let context = this.getUIContext()?.getHostContext() as common.UIAbilityContext;
      this.isAgentSupport = await this.controller.isAgentSupport(context, this.agentId);
    } catch (err) {
      hilog.error(0x0001, 'AgentDevLog', `检查失败: ${err.code} ${err.message}`);
    }
  }

  aboutToAppear() {
    this.checkAgentSupport();
    // 监听对话框生命周期
    this.controller?.on('agentDialogOpened', () => {
      hilog.info(0x0001, 'AgentDevLog', '对话框已打开');
    });
    this.controller?.on('agentDialogClosed', () => {
      hilog.info(0x0001, 'AgentDevLog', '对话框已关闭');
    });
  }

  aboutToDisappear() {
    this.controller?.off('agentDialogOpened');
    this.controller?.off('agentDialogClosed');
  }

  build() {
    Column({ space: 20 }) {
      // 圆形图标入口
      FunctionComponent({
        agentId: this.agentId,
        onError: (err: BusinessError) => {
          hilog.error(0x0001, 'AgentDevLog', `出错 ${err.code}`);
        },
        controller: this.controller
      })

      // 胶囊按钮 + 预填指令
      FunctionComponent({
        agentId: this.agentId,
        onError: (err: BusinessError) => {
          hilog.error(0x0001, 'AgentDevLog', `出错 ${err.code}`);
        },
        options: {
          title: '智能助手',
          queryText: '帮我制定本周运动计划',
          isShowShadow: true
        },
        controller: this.controller
      })
    }
    .width('100%')
    .padding(20)
  }
}

queryText:场景化 AI 触发

queryText 参数允许预填用户指令,用户点击按钮后直接发送,无需手动输入。这个设计在场景化 AI 中威力巨大:

// 电商商品详情页:点击直接问 AI
FunctionComponent({
  agentId: 'shopping_agent_id',
  options: {
    title: 'AI导购',
    queryText: '这款产品的详细参数和用户评价如何?',
    buttonType: 1
  }
})

// 办公项目管理页:一键生成周报
FunctionComponent({
  agentId: 'project_agent_id',
  options: {
    title: '项目助手',
    queryText: '帮我汇总本周项目进展',
    buttonType: 1
  }
})

开发者可以在用户到达特定页面时,通过 queryText 注入上下文信息——用户不需要知道怎么提问,按钮已经替他问好了。

开发约束

约束项 说明
模拟器 不支持,必须真机调试
地区 仅限中国境内,港、澳、台不支持
系统版本 HarmonyOS 6.0.0(API 20)及以上
元服务 API 21(6.0.1)开始支持
华为账号 设备必须已登录
网络 智能体配置在云端,必须联网

isAgentSupport() 的错误码处理是接入的关键。1022400012(未登录华为账号)需要提示用户登录,1022400013(网络错误)需要提示检查网络,1022400011(未同意隐私协议)需要引导用户同意——这些错误不应导致应用崩溃,而应降级为隐藏入口或显示提示。

七、小艺开放平台:四种编排模式

在小艺开放平台创建智能体时,有四种编排模式可选 $TRAE_REF

LLM 模式(单 Agent)

以大语言模型为理解中枢,结合意图识别、工具调用、对话上下文,动态选择插件和工作流。适合知识问答、内容生成。这是唯一支持知识库(端侧 RAG)和长期记忆的模式。

工作流模式

可视化画布编排,将复杂任务拆解为有序的规则化步骤。开发者预定义执行流程,Agent 按规则执行。适合订单处理、审批流程等需要精确控制的场景。

A2A 模式(Agent-to-Agent)

通过鸿蒙 Agent 通信协议,将企业已有的云侧智能体对接至小艺生态。前置条件是必须同时具备鸿蒙端应用和云侧智能体,面向企业开发者。

OpenClaw 模式

2026 年 3 月新增,快速创建个性化智能体。能力最轻量,不支持插件绑定、工作流、触发器等高级功能。

插件体系:云插件 / 端插件 / MCP 插件

三种插件类型扩展智能体能力:

插件类型 数据位置 通信协议 适用场景
云插件 云端 RESTful / SSE / WebSocket 调用外部 API 服务
端插件 设备端 Intents Kit 操控鸿蒙设备侧应用
MCP 插件 云端/混合 MCP 协议 兼容第三方 MCP 生态

端插件是鸿蒙特色——智能体直接操控设备侧应用,数据不离开设备。云插件调用外部 API 时,RESTful 方式的时延必须控制在 2.2 秒内,否则会被框架判定为超时。

八、DevEco Code 与 DevEco CLI 的选择

两款工具面向不同开发者群体 $TRAE_REF

DevEco Code 面向独立开发者和中小团队,开箱即用。终端交互界面,接收自然语言指令,自动完成编码、编译、推包、运行、调试。内置鸿蒙专属 Skill 库,覆盖工程创建、语法检查、编译打包、推包运行等高频操作。

DevEco CLI 面向已有自研 AI 工具链的大厂和成熟团队,提供原子化命令行能力。通过 init 命令将鸿蒙开发能力挂载到企业现有的 CI/CD 管线中。提供官方权威、人工校准的知识库,专为 Agent 设计。

两者的底层关系:DevEco Code 深度集成了 DevEco CLI 的全量能力,在其之上构建了 Agent 调度引擎、多 Agent 协作、上下文管理等高级能力。

九、性能与体验

端侧推理的延迟

MindSpore Lite 在端侧跑 MobileNetV2 模型(224×224 输入),在中端设备上的推理延迟约 30-50ms。这个速度足以支撑实时摄像头帧分类(30fps = 33ms/帧)。更复杂的模型如目标检测的 YOLO 系列,延迟会上升到 100-200ms,需要根据场景决定是每帧推理还是跳帧推理。

端侧 vs 云端的隐私优势

鸿蒙 6.1 的 AI 修图、录音转写、图文识别、智能摘要等功能全程在端侧完成,不向云端传输用户图片、文字、语音素材 $TRAE_REF。这对于涉及用户隐私的场景(医疗影像、财务文档、个人照片)至关重要——数据不出设备,合规风险为零。

DevEco Code 的效率提升

根据华为官方的技术报告,DevEco Code 的 Skill 机制使任务完成速度提升 3 倍以上,Token 消耗降低 70% 以上 $TRAE_REF。这意味着同样的 API 额度下,开发者可以用 DevEco Code 完成更多任务,或者在相同任务量下节省更多成本。

十、踩坑记录

MindSpore Lite 的动态 Shape 限制

ArkTS 暂不支持动态 Shape 模型。如果你的模型输入尺寸是可变的(如 NLP 模型的序列长度),需要改用 C/C++ 侧的 OH_AI_ModelResize 接口动态调整 inputs $TRAE_REF。对于固定 Shape 的模型(如图像分类),ArkTS API 完全够用。

Agent Framework Kit 的真机限制

Agent Framework Kit 不支持模拟器调试,必须使用真机。这是因为智能体的对话框 UI 和上下文管理依赖系统底层服务,模拟器没有完整实现这些服务。开发时需要准备一台 HarmonyOS 6.0.0 以上的真机,并确保已登录华为账号。

云插件超时限制

云插件的 RESTful 调用时延必须控制在 2.2 秒内。如果你的后端接口响应时间较长(如涉及大量数据库查询),需要做服务端优化(加索引、缓存、异步处理),或者改用 SSE 协议分步返回结果。

意图注册审核周期

意图注册需要华为工程师人工审核,一般需要 3-5 个工作日。建议在应用开发阶段就提前提交意图注册,避免应用上架后意图功能还无法使用的情况。

十一、AI 全栈能力的开发者价值

HarmonyOS 6.0 的 AI 全栈能力,从开发侧到运行侧形成了一个完整闭环:DevEco Code 用 AI 帮你写鸿蒙应用,MindSpore Lite 让应用在端侧跑 AI 模型,Intents Kit 让应用接入系统级意图理解,Agent Framework Kit 让应用内嵌系统级智能体,小艺开放平台让你创建专属智能体并分发到全生态。

对于开发者而言,三层能力各有接入门槛:

  • 入门层:Core Speech Kit / Core Vision Kit —— 几行代码调 API,适合所有开发者
  • 进阶层:MindSpore Lite / Intents Kit —— 需要理解模型推理或意图注册流程,适合有一定经验的开发者
  • 高级层:Agent Framework Kit / 小艺开放平台 —— 需要理解智能体编排和插件开发,适合深度参与鸿蒙生态的开发者

无论你处于哪个层级,2026 年的鸿蒙开发已经无法绕开 AI。它不再是锦上添花的特性,而是操作系统基础设施的一部分。掌握这些能力,就是在鸿蒙生态中构建竞争力的核心路径。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐