05|鸿蒙7·端侧AI实战:工具调用,给AI划清边界

本文集包含20篇独立短篇教程,对应封面编号01—20。前10篇讨论鸿蒙应用中的端侧AI应用层架构,不将通用架构包装成鸿蒙7独有API。模型加载、推理与分词需接入实际支持的框架。所有示例均为核心代码片段,本轮未进行编译或真机验证。封面为AI生成概念插画,界面和小字不作为官方功能、事实或API依据。
AI能够生成操作建议,和AI能够直接操作业务系统,是两个不同阶段。
当助手开始调用工具,模型输出就可能带来真实副作用。例如,把“清理旧记录”理解成删除,把“整理客户信息”理解成修改客户资料。
应用需要建立一个受控的工具入口。
enum ToolName {
SearchNotes = 'search_notes',
CreateDraft = 'create_draft'
}
interface ToolRequest {
name: ToolName;
requestId: string;
input: string;
}
工具应该采用明确的允许列表。不要提供“任意执行脚本”“访问任意路径”这样的通用入口,也不要把模型生成的工具名称直接映射为可调用函数。枚举只是开发期约束,来自模型的外部数据仍需运行时验证。
每次调用都应该检查三个问题:当前用户是否有权使用这个工具,参数是否在允许范围内,这次操作是否需要额外确认。
读操作与写操作可以使用不同策略。查找用户自己的笔记通常能够在既定授权范围内执行;覆盖原文、发送内容或删除记录,则应该先给出预览。
工具参数不能携带可信身份。模型可以提出“查询某条记录”,但用户身份、租户和权限范围必须由应用会话提供。
还要处理重复执行。模型超时重试、页面重复点击、网络重连,都可能再次触发同一个写操作。写入端应结合请求编号实现幂等控制,而不是只在页面禁用按钮。
工具返回值也需要限制。只返回模型完成任务所需的信息,不要把整份用户资料或内部调试数据全部塞回上下文。
验收时,主动提交未知工具名、越界记录编号、重复请求和失效会话。确认所有检查都发生在执行之前。
AI负责提出候选动作,应用负责决定能否执行。这个边界越清楚,后续增加能力就越容易。
官方参考资料
- 华为:读屏适配指南。https://developer.huawei.com/consumer/en/doc/harmonyos-guides-V14/screen-reading-adapt-guide-V14
- 华为:焦点位置设置。https://developer.huawei.com/consumer/cn/doc/HarmonyOS-Guides/scenario-focus-position-setting
更多推荐




所有评论(0)