AI 赋能鸿蒙开发:从 DevEco Code 到端侧推理的全链路实践

2026 年的鸿蒙开发,AI 不再只是"调一个 API"——它已经渗透到从写代码到跑模型、从意图理解到智能体调度的每一个环节。
一、两条 AI 路线:开发侧与运行侧
HarmonyOS 的 AI 能力分布在两个截然不同的层面,理解这种分层是把握全文的钥匙。
开发侧解决"怎么更快地写出鸿蒙应用"的问题。华为在 2025 年 HDC 上发布了 DevEco Code 和 DevEco 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...
}
归一化参数 means 和 stds 来自 ImageNet 数据集的统计值。如果你的模型使用了不同的训练数据集,需要替换为对应的归一化参数。
五、实战二:Intents Kit 接入系统意图框架
Intents Kit 是鸿蒙级的意图标准体系,连接应用内的业务功能与系统入口(小艺对话、小艺搜索、小艺建议) $TRAE_REF。接入后,用户可以通过对小艺说"帮我查一下订单"直接拉起你的应用的订单页面。
接入流程
意图框架的接入分五步:
- 应用开发:在应用中实现意图对应的 UIAbility 或 UI 页面
- 应用上架:在 AppGallery Connect 上传并上架应用包
- 意图注册:在小艺开放平台注册意图,配置触发条件和参数 Schema
- 审核:华为工程师审核意图配置(一般 3-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。它不再是锦上添花的特性,而是操作系统基础设施的一部分。掌握这些能力,就是在鸿蒙生态中构建竞争力的核心路径。
更多推荐



所有评论(0)