单个 Skill 可以完成一次查询或操作,但真实需求往往包含多个步骤。例如,用户希望“帮我整理下周的考试复习计划”,应用需要知道考试科目、可用时间、现有资料和优先级,最后才能生成一份可执行的计划。
我希望通过 HarmonyOS 7 的 Skill 能力,将原本分散在应用内部的功能组织成更自然的任务流程。官方能力介绍显示,Skill 可帮助应用功能被系统级智能入口调用。其中的关键是在于把复杂需求拆成清晰的输入、执行和确认环节。
将一个大需求拆成几个业务步骤
在我的学习计划应用中,流程可以分成收集考试信息、查询已有资料、生成初步计划、用户确认和保存计划。每个步骤都有明确的输入输出,避免所有逻辑都依赖一次模型生成。
interface ExamInfo {
subject: string;
examDate: number;
difficulty: number;
}
interface StudyPlanItem {
date: number;
subject: string;
durationMinutes: number;
}
function validateExam(
exam: ExamInfo
): boolean {
return exam.subject.trim().length > 0
&& Number.isFinite(exam.examDate)
&& exam.difficulty >= 1
&& exam.difficulty <= 5;
}这里仅展示应用侧的数据结构与校验逻辑,不是 Skill 的官方协议或注册代码。真正接入时,需要根据平台支持的 Skill 参数、调用方式和返回结果规范进行实现。
处理信息缺失和计划冲突
如果用户只提供考试日期,却没有说明每天可以学习多久,系统就不应该直接给出看似精确的时间表。我会先检查必填参数,并在必要时让用户补充可用时间、科目优先级等信息。
生成计划之后,还需要做业务校验。例如,某一天安排的学习总时长不能超过用户的可用时间;同一时段不能安排两门课程;已经过去的日期不能被排入未来计划。
如果应用使用 AI 生成计划建议,我会把生成结果当作候选方案,而不是直接保存为最终计划。用户确认后,才进入持久化流程。这样可以减少错误安排,也让用户保留对学习节奏的控制权。
设计可恢复的任务状态
多步骤流程必须考虑中断。用户可能在信息收集阶段退出,也可能在计划生成后修改考试日期。应用需要明确记录当前处于哪个阶段,并在输入发生变化时重新计算受影响的结果。
我会测试缺少参数、多个考试日期冲突、生成失败、用户取消以及重复提交等情况。对于保存操作,还需要避免因重试产生重复计划。
这次实践让我认识到,Skill 不一定只对应一个简单动作,也可以成为更复杂任务的明确入口。但任务越复杂,就越需要把步骤、数据和确认点设计清楚。通过清晰的业务接口和可恢复的执行流程,才能把自然语言请求转化成真正可用的应用服务。
相关推荐
87年的鸿蒙开发者
25
0
22
0flower
我还没有写个人简介......
帖子
提问
粉丝
鸿蒙游戏增长臻享会:从获客到变现,鲸鸿动能呈现游戏行业全链路经营解决方案
2026-08-04 16:26:53 发布


京公网安备:11010502051901号