Google 於 9 月 9 日正式推出 AI 代理開發框架 Agent Development Kit(ADK)的 Kotlin 版本 1.0。此版本在功能上已追平先行的 Python 版與 Java 版,並且從一開始就備妥了嵌入 Android 應用程式所需的擴充模組。無論是伺服器端的 Kotlin,或是完全在裝置內完成推論的行動端 AI,都能以同一套寫法組建代理,這正是本次發布的重點。
正式版補齊了哪些能力
ADK for Kotlin 在 0.1.0 問世後僅數個月,就於 1.0 達到與 ADK 1.0 Core 相同的功能水準。實際營運所需的機制皆已標準內建:由上層代理將工作分派給專職子代理的階層式多代理架構、以摘要對話紀錄來控制在 token 上限內的脈絡壓縮、在執行敏感操作前暫停並等待使用者核准的 human-in-the-loop,以及保存中斷的互動並於日後接續的工作階段續行。框架也提供第一方的 Java 互通能力,既有的 Java 應用程式可直接呼叫以 Kotlin 撰寫的代理。
底層基礎是 Kotlin Multiplatform(KMP)核心。該核心不綁定特定的模型後端、工作階段儲存或記憶實作,因此要使用雲端的 Gemini 還是裝置內的模型,可以事後替換。針對企業情境,發布內容亦包含以 Vertex AI 為後盾的工作階段管理、RAG 記憶與記憶庫服務實作。
加上註解,工具就自動生成
開發者最先會碰到的,應該是定義代理可呼叫的工具。在 ADK for Kotlin 中,只要替一般的 Kotlin 函式加上 @Tool,並用 @Param 為參數補上說明即可。
@Tool
suspend fun getServiceMetrics(
@Param("目標服務或資料庫叢集") serviceName: String,
@Param("統計的時間區間(分鐘)") windowMinutes: Int? = 15,
): ServiceMetrics
KSP(Kotlin Symbol Processing)會在建置階段依此定義產生函式呼叫定義。由於完全不使用執行期反射,schema 的型別安全可在編譯期獲得保障,suspend 函式也能直接當作工具使用。避開反射的設計在啟動速度與行為可預期性上,與 Android 的契合度也較佳。
把作業手冊移到程式碼之外的「技能」
另一個支柱是技能(Skill)。想讓代理遵守的作業流程不再直接寫死在程式碼裡,而是寫進名為 SKILL.md 的文字檔放到外部,僅在需要時才載入。
以資料庫故障排除為例,可以用文字寫明:檢視遙測資料、與近期部署互相對照、確認安全規則後再行動、最後通知團隊。輔助資料也能一併打包,但模型只有在判斷確實需要時才會去取,因此無須始終把全文塞進提示詞。Google 將這種載入方式稱為漸進式揭露(progressive disclosure)。作業流程變更時只要改文字、不必重新建置,這一點在實務現場相當有感。
直接沿用 Android 的標準元件
Android 擴充的特色在於,它並未要求開發者去記一套全新的專屬機制,而是貼合既有的 Android 架構元件。對話工作階段的持久化使用 Room,裝置內附全文檢索的記憶使用 AppSearch,產生的檔案則存放在應用程式專屬儲存空間。也就是說,即使行程被終止,重新啟動後仍能從對話中斷處接續。
模型端同樣有選擇空間。雲端推論透過 Firebase AI Logic 呼叫 Gemini 3.8 Flash,若希望完全在裝置內完成,則可切換為 LiteRT-LM 或 ML Kit(beta)。依網路環境與機密性需求,可以在維持同一份代理定義的前提下,只改變執行位置。至於銀行轉帳這類無法撤銷的操作,只要在工具定義中指定必須確認,代理就會在執行前停下並於介面上跳出確認,待使用者點擊後才會繼續。
導入只需新增相依套件
開始使用只要在 Gradle 中新增相依套件。
dependencies {
implementation("com.google.adk:google-adk-kotlin-core:1.0.0")
ksp("com.google.adk:google-adk-kotlin-processor:1.0.0")
// 針對 Android 的選用擴充
implementation("com.google.adk:google-adk-kotlin-firebase-android:1.0.0")
implementation("com.google.adk:google-adk-kotlin-litertlm:1.0.0")
implementation("com.google.adk:google-adk-kotlin-mlkit-android:1.0.0-beta")
}
核心與註解處理器這兩行是必要的,Android 擴充則依需求增加。原始碼與範例應用程式已公開於 GitHub 的 google/adk-kotlin 儲存庫,文件則整理在 adk.dev。
總結
ADK for Kotlin 1.0 的新意在於,它把 Python 版與 Java 版相同的多代理能力帶到 Kotlin,並以貼合 Room、AppSearch、LiteRT-LM 等 Android 標準元件的形式提供擴充。以註解與 KSP 定義工具,以及用 SKILL.md 把流程外置並漸進式揭露的做法,反映出將代理拆成程式碼與文字、分別維護的思路。從把「在手機內部完成的 AI 代理」視為現實選項這一點來看,這次更新值得留意。
