एजेंटिक वर्कफ़्लो का इस्तेमाल शुरू करना

इस पेज पर, Android प्रोजेक्ट को सेट अप करने, genai-agent लाइब्रेरी को कॉन्फ़िगर करने, और उपयोगकर्ता के डिवाइस पर पहला एजेंट बनाने का तरीका बताया गया है.

ज़रूरी शर्तें

Gemini Nano की मदद से एजेंटिक वर्कफ़्लो बनाने से पहले, पक्का करें कि आपका एनवायरमेंट इन ज़रूरी शर्तों को पूरा करता हो:

  • Android वर्शन: Android 14 (एपीआई लेवल 34) या इसके बाद का वर्शन, जो AICore Developer Preview program में रजिस्टर किया गया हो.
  • इस्तेमाल किए जा सकने वाले डिवाइस: इस्तेमाल किए जा सकने वाले डिवाइसों और उनके Gemini Nano मॉडल के वर्शन की सूची देखने के लिए, कस्टम जनरेशन और एजेंट की सुविधा वाले डिवाइस पर जाएं.
  • SDK टूल का कम से कम वर्शन: minSdk 26 या इसके बाद का वर्शन.
  • Kotlin: Kotlin 2.3 या इसके बाद का वर्शन.

अपना प्रोजेक्ट कॉन्फ़िगर करना

अपने मॉड्यूल की build.gradle.kts फ़ाइल में, genai-agent डिपेंडेंसी जोड़ें:

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")
}

अपना पहला एजेंट बनाना

एजेंट के दो मुख्य कॉम्पोनेंट होते हैं:

  • एजेंट की परिभाषा: एजेंट के व्यवहार को कॉन्फ़िगर करने वाले निर्देश और दिशा-निर्देश.
  • एजेंट रनर: यह एक एक्ज़ीक्यूशन इंजन है, जो AICore के साथ कम्यूनिकेट करता है और बातचीत को मैनेज करता है.

1. एजेंट और रनर को कॉन्फ़िगर करना

यहां दिए गए कोड सैंपल में, सिस्टम से जुड़े निर्देशों के साथ अपने एजेंट को तय करने और AgentRunner क्लास को शुरू करने का तरीका बताया गया है:

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. बातचीत करना

सिलसिलेवार बातचीत में, AgentSession इंस्टेंस का इस्तेमाल करके, बातचीत का इतिहास सेव रखा जाता है. अपने प्रॉम्प्ट टेक्स्ट को Content ऑब्जेक्ट में रैप करें और स्ट्रीम किए गए जवाब को इकट्ठा करें:

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)
        }
}

अगर आपको किसी सवाल का जवाब एक बार में चाहिए और बातचीत का इतिहास सेव नहीं करना है, तो सीधे runner.runSingleTurnAsync(prompt) मेथड को कॉल करें:

lifecycleScope.launch {
    runner.runSingleTurnAsync(prompt)
        .textTokens()
        .collect { token ->
            Log.d("Agent", token)
        }
}

3. संसाधन मिटाना

AgentRunner क्लास, AutoCloseable इंटरफ़ेस को लागू करती है. जब आपका ViewModel या Activity कॉम्पोनेंट खत्म हो जाए, तो चालू सेशन को रिलीज़ करने और बैकग्राउंड कोरूटीन को रद्द करने के लिए, रनर को बंद करें:

runner.close()

अगले चरण