使用 Gemini Nano 建構 Agentic Workflows

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 (AgentRunner)

直接存取模型 (GenerativeModel)

文字和圖片 Tasks API

架構

建構於 GenerativeModel 之上的高階調度管理層。

直接與 Gemini Nano 基礎模型互動,自訂提示。

在共用基礎模型上,由微調的 LoRA 轉接器支援的特定工作特徵類型。

多輪對話情境

代管多輪對話工作階段 (AgentSession)。 自動在記憶體中維護各輪對話的記錄,因此您不必手動管理轉錄稿 (也支援暫時性單輪執行)。

用戶端管理的多輪對話脈絡。 GenerateContentRequest 支援多輪 List<Content> (USER 和 MODEL 角色) 和 sessionId,適合想直接管理自身對話記錄的開發人員。

無狀態、單一輸入的工作呼叫。

工具呼叫和動作

自動化工具呼叫迴圈。探索已註冊的 Android AppFunction、執行模型選取的呼叫,並自動將結果回傳至模型。

客戶管理的工具聲明。 GenerateContentRequest 接受工具結構定義,並發出函式呼叫要求,讓應用程式手動執行並傳回。

不適用 (固定工作管道)。

適用時機

如要自動調度管理多步驟工具執行作業,以及代管記憶體內多輪對話,請使用這個選項。

適用於自訂提示、多模態圖片理解、輸入結構化輸出內容 (@Generable),或想直接管理自己的對話記錄或工具調度時。

如果功能符合標準寫作或視覺任務,且您希望透過微調的 LoRA 獲得現成品質,並盡可能減少設定,請使用此選項。

後續步驟