Bu sayfada, Android projenizi nasıl oluşturacağınız, genai-agent kitaplığını nasıl yapılandıracağınız ve ilk cihaz üzerinde temsilcinizi nasıl oluşturacağınız açıklanmaktadır.
Ön koşullar
Gemini Nano ile temsilci tabanlı iş akışları oluşturmadan önce ortamınızın aşağıdaki koşulları karşıladığından emin olun:
- Android sürümü: AICore Geliştirici Önizlemesi programına kayıtlı Android 14 (API düzeyi 34) veya sonraki sürümler.
- Desteklenen cihazlar: Desteklenen cihazların ve Gemini Nano model sürümlerinin listesi için Özel içerik üretme ve temsilci cihaz desteği başlıklı makaleyi inceleyin.
- Minimum SDK:
minSdk 26veya sonraki sürümler. - Kotlin: Kotlin 2.3 veya sonraki sürümler.
Projenizi yapılandırın
Modülünüzün build.gradle.kts dosyasına genai-agent bağımlılığını ekleyin:
dependencies {
// Gemini Nano agentic workflows
implementation("com.google.mlkit:genai-agent:1.0.0-alpha1")
// Optional: Only required when defining tools using Android AppFunctions
implementation("androidx.appfunctions:appfunctions:1.0.0-alpha13")
ksp("androidx.appfunctions:appfunctions-compiler:1.0.0-alpha13")
}
İlk temsilcinizi oluşturma
Bir temsilcinin iki ana bileşeni vardır:
- Temsilci tanımı: Temsilcinin davranışını yapılandıran talimatlar ve güvenlik önlemleri.
- Temsilci çalıştırıcı: AICore ile iletişim kuran ve görüşmeleri yöneten yürütme motoru.
1. Temsilciyi ve çalıştırıcıyı yapılandırma
Aşağıdaki kod örneğinde, temsilcinizi sistem talimatlarıyla nasıl tanımlayacağınız ve AgentRunner sınıfını nasıl başlatacağınız gösterilmektedir:
import com.google.mlkit.genai.agent.Agent
import com.google.mlkit.genai.agent.AgentRunner
// 1. Build the agent configuration
val agent = Agent.builder()
.setName("Assistant")
.setInstructions("You are a helpful on-device assistant.")
.build()
// 2. Initialize the runner
val runner = AgentRunner(agent)
2. Sohbet başlatma
Çok aşamalı sohbetler, AgentSession örneği kullanarak aşamalar arasında diyalog geçmişini korur. İstem metninizi bir Content nesnesine sarmalayın ve akış yanıtını toplayın:
import android.util.Log
import androidx.lifecycle.lifecycleScope
import com.google.mlkit.genai.agent.textTokens
import com.google.mlkit.genai.prompt.Content
import kotlinx.coroutines.launch
// Create or retrieve a conversation session
val session = runner.getOrCreateSession("chat_session")
val prompt = Content.builder()
.text("Hello! Can you help me organize my day?")
.build()
// Collect streamed tokens in a coroutine
lifecycleScope.launch {
session.runAsync(prompt)
.textTokens()
.collect { token ->
Log.d("Agent", token)
}
}
Sohbet geçmişini saklamanız gerekmeyen tek seferlik sorgular için runner.runSingleTurnAsync(prompt) yöntemini doğrudan çağırabilirsiniz:
lifecycleScope.launch {
runner.runSingleTurnAsync(prompt)
.textTokens()
.collect { token ->
Log.d("Agent", token)
}
}
3. Kaynakları temizleme
AgentRunner sınıfı, AutoCloseable arayüzünü uygular. ViewModel veya Activity bileşeniniz yok edildiğinde, etkin oturumları serbest bırakmak ve arka plan eş yordamlarını iptal etmek için çalıştırıcıyı kapatın:
runner.close()
Sonraki adımlar
- Araçlarla özellik ekleme: Temsilcinize Android AppFunctions'ı kullanarak işlem yapma veya uygulama verilerini sorgulama özelliği ekleyin. Araçları tanımlama bölümüne bakın.
- Döndürme sırasında oturumları koruma: Oturumları ve yaşam döngüsünü yönetme bölümünde, yapılandırma değişiklikleri sırasında
ViewModelsınıfındakiAgentSessionörneğini nasıl koruyacağınızı öğrenin. - Compose'a bağlanma: Etkinlikleri yayınlama ve kullanıcı arayüzü entegrasyonu bölümünde etkinlikleri yayınlayın ve etkileşimli sohbet balonları oluşturun.