شروع به کار با گردش‌های کاری عاملی

این صفحه نحوه راه‌اندازی پروژه Android، پیکربندی کتابخانه genai-agent، و ایجاد اولین عامل درون‌دستگاهی را شرح می‌دهد.

پیش‌نیازها

قبل‌از ساختن گردش‌های کاری عاملی با Gemini Nano، مطمئن شوید که محیط شما الزامات زیر را برآورده می‌کند:

پیکربندی پروژه

وابستگی genai-agent را به فایل build.gradle.kts واحدتان اضافه کنید:

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 ارتباط برقرار می‌کند و مکالمه‌ها را مدیریت می‌کند.

۱. پیکربندی عامل و اجراکننده

نمونه کد زیر نحوه تعریف عامل با دستورالعمل‌های سیستم و مقداردهی اولیه کلاس 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)

۲. اجرای مکالمه

مکالمه‌های چندنوبتی سابقه گفتگو را در نوبت‌ها بااستفاده از نمونه 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)
        }
}

۳. پاک‌سازی منابع

کلاس AgentRunner میانای AutoCloseable را پیاده‌سازی می‌کند. وقتی مؤلفه ViewModel یا Activity شما ازبین می‌رود، اجراکننده را ببندید تا جلسه‌های فعال آزاد شوند و کوروتین‌های پس‌زمینه لغو شوند:

runner.close()

مراحل بعدی