Library Agent Development Kit (ADK) untuk Android memungkinkan Anda membuat dan mengintegrasikan agen AI canggih langsung ke aplikasi Android. ADK adalah framework developer open source untuk membangun agen yang didukung AI yang berjalan secara lokal, di layanan yang dihosting, dan di perangkat seluler Android. Framework ini mendukung bahasa pemrograman Kotlin dan Java, sehingga Anda dapat mulai membangun agen dengan cepat dan meningkatkan skala ke aplikasi multi-agen yang kompleks.
Library ADK untuk Android menyediakan dependensi khusus dan dukungan runtime yang disesuaikan untuk lingkungan seluler. Anda dapat membangun agen yang menjalankan model AI di perangkat menggunakan Gemini Nano menggunakan ML Kit GenAI API, sehingga Anda dapat membuat pengalaman AI yang berfokus pada privasi dan latensi rendah yang dapat berfungsi tanpa akses jaringan.
Menggunakan ADK Kotlin di project Android
Anda dapat menggunakan ADK Kotlin agent API untuk membangun agen AI yang berjalan di dalam aplikasi Android. Kode agen yang Anda tulis sama dengan panduan Memulai ADK Kotlin . Perbedaannya adalah dependensi Gradle, konfigurasi project, dan cara Anda memanggil agen saat runtime.
Prasyarat
Library ADK untuk Android memiliki persyaratan pengembangan berikut:
- Android Studio
- Android SDK (compileSdk 34 atau yang lebih tinggi, minSdk 24 atau yang lebih tinggi)
Mengonfigurasi project Android
Di build.gradle.kts project Android, tambahkan dependensi ADK Android dan pemroses anotasi KSP:
plugins {
id("com.android.application")
kotlin("android")
id("com.google.devtools.ksp") version "2.1.20-2.0.1"
}
android {
namespace = "com.example.agent"
compileSdk = 34
defaultConfig {
applicationId = "com.example.agent"
minSdk = 24
targetSdk = 34
}
}
dependencies {
implementation("com.google.adk:google-adk-kotlin-core-android:0.1.0")
ksp("com.google.adk:google-adk-kotlin-processor:0.1.0")
}
kotlin {
jvmToolchain(17)
}
Menentukan agen Anda
Kode agen sama dengan ADK Kotlin Quickstart. Contoh kode HelloTimeAgent dengan sintaksis @Tool, @Param, dan .generatedTools() berfungsi tanpa modifikasi di Android:
package com.example.agent
import com.google.adk.kt.agents.Instruction
import com.google.adk.kt.agents.LlmAgent
import com.google.adk.kt.annotations.Param
import com.google.adk.kt.annotations.Tool
import com.google.adk.kt.models.Gemini
class TimeService {
/** Mock tool implementation */
@Tool
fun getCurrentTime(
@Param("Name of the city to get the time for") city: String
): Map<String, String> {
return mapOf("city" to city, "time" to "The time is 10:30am.")
}
}
object HelloTimeAgent {
@JvmField
val rootAgent = LlmAgent(
name = "hello_time_agent",
description = "Tells the current time in a specified city.",
model = Gemini(
name = "gemini-flash-latest",
apiKey = System.getenv("GOOGLE_API_KEY")
?: error("GOOGLE_API_KEY environment variable not set."),
),
instruction = Instruction(
"You are a helpful assistant that tells the current time in a city. "
+ "Use the 'getCurrentTime' tool for this purpose."
),
tools = TimeService().generatedTools(),
)
}
Menjalankan agen dari aplikasi Android Anda
Di perangkat yang didukung Android, gunakan InMemoryRunner untuk memanggil agen dan mengumpulkan respons dari coroutine, seperti yang ditunjukkan dalam contoh kode berikut:
import com.google.adk.kt.runners.InMemoryRunner
import com.google.adk.kt.sessions.InMemorySessionService
import com.google.adk.kt.types.Content
import com.google.adk.kt.types.Part
import com.google.adk.kt.types.Role
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
// Create a runner and session service
val sessionService = InMemorySessionService()
val runner = InMemoryRunner(
agent = HelloTimeAgent.rootAgent,
sessionService = sessionService,
)
// Call the agent from a coroutine (e.g. in a ViewModel or Activity)
scope.launch {
runner.runAsync(
userId = "user-123",
sessionId = "session-123",
newMessage = Content(
role = Role.USER,
parts = listOf(Part(text = "What time is it in New York?")),
),
).collect { event ->
val text = event.content?.parts?.firstOrNull()?.text
if (!text.isNullOrBlank()) {
// Update your UI with the agent's response
}
}
}
Model di perangkat dengan Gemini Nano
Artefak ADK untuk Android menyertakan dukungan untuk inferensi di perangkat menggunakan Gemini Nano melalui ML Kit GenAI API. Pendekatan ini memungkinkan agen berjalan tanpa akses jaringan, sehingga data tetap berada di perangkat.
Untuk menggunakan model di perangkat, buat model GenaiPrompt, bukan Gemini, seperti yang ditunjukkan dalam contoh kode berikut:
import com.google.adk.kt.models.mlkit.GenaiPrompt
import com.google.mlkit.genai.prompt.GenerativeModel
// Create an ML Kit GenerativeModel for on-device inference
val generativeModel: GenerativeModel = // ... initialize using ML Kit
val onDeviceModel = GenaiPrompt.create(
generativeModel = generativeModel,
name = "gemini-nano",
)
val agent = LlmAgent(
name = "on_device_agent",
model = onDeviceModel,
instruction = Instruction("You are a helpful assistant."),
)
Anda juga dapat menggabungkan model cloud dan di perangkat dalam sistem multi-agen: gunakan Gemini berbasis cloud untuk orkestrator root dan model GenaiPrompt di perangkat untuk sub-agen yang menangani tugas yang sensitif terhadap privasi. Untuk mengetahui informasi selengkapnya tentang pola ini, lihat postingan blog ADK untuk Kotlin dan Android .
Untuk mengetahui Aktivitas kerja lengkap dan contoh lainnya, lihat contoh ADK Kotlin di GitHub.