ML Kit 的Agentic Workflows (com.google.mlkit:genai-agent,Alpha 版) 可讓您建構由 Gemini Nano 和 Android AICore 系統服務提供技術支援的自主、多輪裝置端對話式體驗。
AgentRunner 類別是以 GenerativeModel 類別 (直接存取模型) 為基礎建構而成,可直接在應用程式中自動執行完整的目標導向代理迴圈:觀察情境、推論使用者輸入內容、透過 Kotlin 工具執行動作,以及評估意見回饋,直到符合終止條件為止。
常見的代理模式
裝置端 Agentic Workflows 經過最佳化,可執行專注、確定性的推論迴圈,將使用者意圖轉譯為結構化應用程式動作。常見模式包括:
解鎖圖案 |
範例 |
執行應用程式內動作和捷徑 |
將自然語言要求轉譯為特定應用程式指令,例如在編輯畫布上套用相片調整、修改播放設定,或切換應用程式偏好設定。 |
結構化查詢和本機計算 |
依 ID 擷取特定記錄 (例如訂單狀態或帳戶餘額),並執行多步驟數學計算 (例如貸款攤銷或健身指標)。 |
對話過濾和精選 |
以互動方式查詢及調整本機應用程式項目,例如搜尋本機工作清單、篩選播放清單,或根據使用者條件排序目錄項目。 |
引導式多步驟輸入 |
引導使用者逐步輸入結構化資料,並在最終提交前,使用本機工具驗證中繼輸入內容。 |
裝置端效能和隱私權
Agentic Workflows 會在 Android AICore 上執行,直接在使用者裝置上提供私密、快速的回應:
- 本機推論和提示隱私權:模型推論和規劃迴圈完全在裝置端執行,網路延遲時間為零。使用者提示資料會保留在裝置上,不會外洩。不過,如果您的用途需要外部資料,應用程式中實作的個別工具仍可發出網路呼叫或查詢雲端 API。
- 代管多輪對話工作階段:
AgentSession介面會跨輪次維護記憶體中的對話記錄,因此您不必手動管理轉錄稿。您隨時可以使用session.close()、deleteSession(sessionId)或clearAllSessions()方法回收記憶體。 - 執行防護機制:代理設定會強制執行最大回合限制 (
maxTurns限制,預設為 10),做為資源終止條件,防止執行迴圈失控、節省電池電力,並保護裝置回應能力。
選擇自訂生成、代理和特定工作 API
ML Kit 會根據功能所需的自訂和自動化調度管理程度,整理裝置端 GenAI 功能:
- 自訂生成和代理:如果功能需要自訂指令或特定領域邏輯,請直接使用 Gemini Nano 基礎模型。如要使用代管的多輪對話和自動化工具呼叫迴圈,請選擇Agentic Workflows (使用
AgentRunner類別,建構於GenerativeModel類別之上);如要使用自訂提示、輸入結構化輸出內容或用戶端代管的多輪對話記錄,請選擇直接存取模型 (使用GenerativeModel類別)。 - 語音和音訊:使用專屬語音和生成式 AI 模型 (例如語音辨識),將語音音訊轉錄為文字。
- 文字和圖片工作:使用預先設定、工作專屬的功能類型,以及在共用基礎模型上微調的 LoRA 轉接器 (例如圖片說明、摘要、校對和重寫),不需提示工程,即可直接用於視覺和寫作。
下表列出這些方法的比較:
考慮度 |
Agentic Workflows ( |
直接存取模型 ( |
文字和圖片 Tasks API |
架構 |
建構於 |
直接與 Gemini Nano 基礎模型互動,自訂提示。 |
在共用基礎模型上,由微調的 LoRA 轉接器支援的特定工作特徵類型。 |
多輪對話情境 |
代管多輪對話工作階段 ( |
用戶端管理的多輪對話脈絡。
|
無狀態、單一輸入的工作呼叫。 |
工具呼叫和動作 |
自動化工具呼叫迴圈。探索已註冊的 Android AppFunction、執行模型選取的呼叫,並自動將結果回傳至模型。 |
客戶管理的工具聲明。
|
不適用 (固定工作管道)。 |
適用時機 |
如要自動調度管理多步驟工具執行作業,以及代管記憶體內多輪對話,請使用這個選項。 |
適用於自訂提示、多模態圖片理解、輸入結構化輸出內容 ( |
如果功能符合標準寫作或視覺任務,且您希望透過微調的 LoRA 獲得現成品質,並盡可能減少設定,請使用此選項。 |
後續步驟
- 如要設定專案並建構第一個代理,請參閱「開始使用 Agentic Workflows」。
- 如要瞭解如何向代理公開應用程式內函式,請參閱「定義工具」。
- 如要管理 Android 生命週期中的多輪對話和記憶體,請參閱「管理工作階段和生命週期」。
- 如要收集串流回應並更新 UI,請參閱「串流事件和 UI 整合」。