在鸿蒙(HarmonyOS)构建的“1+8+N”全场景生态中,设备形态从手机、平板延伸到手表、智慧屏乃至各类智能家居产品。面对如此多样化的跨设备场景,用户体验的挑战不仅在于操作的流畅性,更在于信息获取的智慧化——用户不再满足于被动的操作,而是期望设备能够理解其潜在意图,主动提供贴切的服务。
为应对这一挑战,HarmonyOS意图框架应运而生。它深度融合了系统的多维感知能力与先进的大模型等人工智能技术,构建起一套全局化的意图理解范式。这套框架不仅能精准捕获用户的显性指令,更能挖掘其深层需求,并通过高效的协同机制,将这些需求准确匹配给生态中的最合适服务。这实现了用户体验从“被动响应”到“主动适配”的跃升,同时也为开发者开辟了高效的流量分发与业务转化通道。

意图框架的核心运作基于“意图”这一概念。简单来说,一个“意图”就是开发者所实现的一项具体业务功能。系统通过理解用户输入和上下文,智能地调用或共享对应的意图,完成服务的智慧分发。接入意图框架的完整流程通常包括 意向、开发、验证和上架 四个关键阶段。

理论结合实践,下面我们通过一个具体的“播放歌曲”功能示例,来学习如何在HarmonyOS上进行基于意图框架的AI开发。
实战:基于意图框架开发播放歌曲功能
在HarmonyOS上利用意图框架实现歌曲播放,主要涵盖三个核心步骤:意图注册、端侧意图调用以及功能一步达。下面我们逐一解析其开发流程。
意图注册
开发者需要编辑一个名为 insight_intent.json 的配置文件来完成意图注册。该文件必须放置在模块(module)的 /src/main/resources/base/profile/ 目录下,且整个工程中只能存在一份此文件。
以下是一个意图注册的JSON配置示例:
{
"insightIntents": [
{
// 意图名称,应当遵循意图框架规范,当前仅支持预置垂域意图,不允许自定义
// 应用内意图名称唯一,不允许出现相同的名称定义
"intentName": "PlayMusic",
// 意图所属的垂域
"domain": "MusicDomain",
// 意图版本号,插件引用意图时会校验该版本号,只有和插件定义的版本号一致才
//能正常调用
"intentVersion": "1.0.1",
// 意图调用逻辑入口
"srcEntry": "./ets/entryability/InsightIntentExecutorImpl.ets",
// 选填字段,意图调用选择 uiAbility 为意图执行组件时填写
"uiAbility": {
"ability": "EntryAbility",
// UIAbility 支持前后台两种执行模式
"executeMode": [
"background",
"foreground"
]
}
}
]
}
端侧意图调用
完成注册后,开发者需要实现端侧的意图调用逻辑,以响应系统的功能调用请求。如果意图执行组件指定为 uiAbility,则需要开发者实现一个意图框架执行器 InsightIntentExecutor 来承接调用并执行业务逻辑。
具体实现可参考以下ArkTS代码。这段代码首先继承 InsightIntentExecutor,然后重写 onExecuteInUIAbilityForegroundMode 方法,最后在 playMusic 方法中处理参数并拉起对应的歌曲播放页面:
export default class InsightIntentExecutorImpl extends
InsightIntentExecutor {
private static readonly PLAY_MUSIC = 'PlayMusic';
onExecuteInUIAbilityForegroundMode(name: string, param:
Record<string, Object>, pageLoader: window.WindowStage):
Promise<insightIntent.ExecuteResult> {
// 根据意图名称分发处理逻辑。接入方可根据实际业务实现页面跳转
switch (name) {
case InsightIntentExecutorImpl.PLAY_MUSIC:
return this.playMusic(param, pageLoader);
default:
break;
}
return Promise.resolve({
code: -1,
result: {
message: 'unknown intent'
}
} as insightIntent.ExecuteResult);
}
// 实现调用播放歌曲功能
private playMusic(param: Record<string, Object>, pageLoader:
indow.WindowStage): Promise<insightIntent.ExecuteResult> {
return new Promise((resolve, reject) => {
// 实现意图调用,loadContent 的入参为歌曲落地页路径,如 pages/SongPage
pageLoader.loadContent('pages/SongPage').then(() => {
console.info('成功拉起落地页'); // 调用成功的情况
})
.catch((err: BusinessError) => {
console.error(err.message); // 调用失败的情况
});
})
}
}
功能一步达
“功能一步达”方案的接入,建立在完成意图注册的基础之上。开发者首先要在意图声明文件中明确声明应用支持的功能,然后针对端侧意图调用开发具体的功能页面,确保系统能够精准“拉起”目标界面。
该方案的交互流程如下图所示。

下图展示了 JumpFunctionPage 意图的具体参数定义,这是实现精准功能调用的关键。

通过以上步骤,一个基于HarmonyOS意图框架的AI驱动功能就基本实现了。实际上,除了意图框架,HarmonyOS AI还提供了基础语音、场景化视觉、昇思推理框架等丰富的服务能力。对于希望更系统、更深入学习鸿蒙应用与AI开发的开发者而言,参考权威的技术文档和系统教程至关重要。掌握这些核心能力,将帮助开发者在前端 & 移动的全场景时代构建出更智能、体验更佳的应用。