借助机器学习套件的智能体工作流(com.google.mlkit:genai-agent,Alpha 版),您可以构建由 Gemini Nano 和 Android AICore 系统服务提供支持的自主多轮设备端对话体验。
AgentRunner 类基于 GenerativeModel 类(直接模型访问)构建,可直接在应用内自动执行完整、目标驱动的智能体循环:观察上下文、对用户输入进行推理、通过类型化 Kotlin 工具执行操作,并评估反馈,直到满足终止条件。
常见智能体模式
设备端 Agentic Workflows 经过优化,可实现专注、确定性的推理循环,将用户意图转化为结构化的应用操作。常见模式包括:
模式 |
示例 |
应用内操作执行和快捷方式 |
将自然语言请求转换为特定的应用命令,例如在编辑画布上应用照片调整、修改播放设置或切换应用偏好设置。 |
结构化查找和本地计算 |
按 ID 提取特定记录(例如订单状态或账号余额),并执行多步数学计算(例如贷款摊销或健身指标)。 |
对话式过滤和精选 |
以交互方式查询和优化本地应用内容,例如搜索本地任务列表、过滤播放列表或根据用户条件对目录内容进行排序。 |
引导式多步骤输入 |
引导用户逐步输入结构化数据,并在最终提交前使用本地工具验证中间输入。 |
设备端性能和隐私
Agentic Workflows 在 Android AICore 上运行,可直接在用户设备上提供私密、快速响应的执行:
- 本地推理和提示隐私:模型推理和规划循环完全在设备端执行,网络延迟为零。用户提示数据仅保留在设备上。不过,如果您的应用场景需要外部数据,应用中实现的各个工具仍然可以发出网络调用或查询 Cloud API。
- 代管式多轮对话:
AgentSession接口会在多轮对话中维护内存中的对话记录,因此您无需手动管理转录内容。您可以使用session.close()、deleteSession(sessionId)或clearAllSessions()方法随时回收内存。 - 执行护栏:智能体配置会强制执行最大轮次限制(
maxTurns限制,默认值为 10)作为资源终止条件,以防止失控的执行循环、节省电池电量并保护设备响应能力。
在自定义生成、智能体和特定于任务的 API 之间进行选择
机器学习套件会根据功能所需的自定义和编排程度来组织设备端生成式 AI 功能:
- 自定义生成和代理:如果您的功能需要自定义指令或特定于领域的逻辑,请直接使用 Gemini Nano 基础模型。如果您需要代管式多轮会话和自动化工具调用循环,请选择Agentic Workflows(使用基于
GenerativeModel类构建的AgentRunner类);如果您需要自定义提示、类型化结构化输出或客户端管理的多轮对话历史记录,请选择直接模型访问(使用GenerativeModel类)。 - 语音和音频:使用专用语音和 GenAI 模型(例如语音识别)将语音音频转写为文本。
- 文本和图片任务:在共享基础模型(例如图片说明、摘要、校对和重写)的基础上,使用预配置的特定任务特征类型和经过微调的 LoRA 适配器,无需提示工程即可实现一站式视觉和写作应用场景。
下表简要说明了这些方法的比较情况:
注意事项 |
Agentic Workflows ( |
直接模型访问 ( |
文本和图片任务 API |
架构 |
基于 |
直接连接到 Gemini Nano 基础模型,以便使用自定义提示。 |
在共享基础模型之上,由经过微调的 LoRA 适配器支持的特定于任务的特征类型。 |
多轮对话上下文 |
代管式多轮会话 ( |
客户端管理的多轮对话上下文。
|
无状态、单输入任务调用。 |
工具调用和操作 |
自动化工具调用循环。发现已注册的 Android AppFunctions,执行模型选择的调用,并自动将结果反馈给模型。 |
客户端管理的工具声明。
|
不适用(固定任务流水线)。 |
适用情形 |
适用于需要自动编排多步工具执行和托管式内存多轮对话的场景。 |
适用于自定义提示、多模态图片理解、类型化结构化输出 ( |
当您的功能与标准写作或视觉任务匹配,并且您希望通过经过微调的 LoRA 获得开箱即用的质量,同时只需进行最少的设置时,请使用此选项。 |
后续步骤
- 如需设置项目并构建您的第一个智能体,请参阅Agentic Workflows 使用入门。
- 如需了解如何向代理公开应用内函数,请参阅定义工具。
- 如需了解如何在 Android 生命周期中管理多轮会话和记忆,请参阅管理会话和生命周期。
- 如需收集流式响应并更新界面,请参阅流式事件和界面集成。