Bắt đầu sử dụng quy trình làm việc dựa trên tác nhân

Trang này mô tả cách thiết lập dự án Android, định cấu hình thư viện genai-agent và tạo tác nhân đầu tiên trên thiết bị.

Điều kiện tiên quyết

Trước khi xây dựng quy trình làm việc dựa trên tác nhân bằng Gemini Nano, hãy đảm bảo môi trường của bạn đáp ứng các yêu cầu sau:

Định cấu hình dự án

Thêm phần phụ thuộc genai-agent vào tệp build.gradle.kts của mô-đun:

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

Tạo tác nhân đầu tiên

Một tác nhân có hai thành phần chính:

  • Định nghĩa tác nhân: Hướng dẫn và rào chắn định cấu hình hành vi của tác nhân.
  • Trình chạy tác nhân: Công cụ thực thi giao tiếp với AICore và quản lý các cuộc trò chuyện.

1. Định cấu hình tác nhân và trình chạy

Mã mẫu sau đây cho biết cách xác định tác nhân bằng chỉ dẫn hệ thống và khởi chạy lớp 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. Điều hành cuộc trò chuyện

Các cuộc trò chuyện nhiều lượt sẽ giữ lại nhật ký cuộc trò chuyện qua các lượt bằng cách sử dụng một thực thể AgentSession. Gói văn bản câu lệnh trong đối tượng Content và thu thập câu trả lời được truyền trực tuyế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)
        }
}

Đối với các truy vấn một lần mà bạn không cần giữ lại nhật ký trò chuyện, bạn có thể gọi trực tiếp phương thức runner.runSingleTurnAsync(prompt):

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

3. Dọn dẹp tài nguyên

Lớp AgentRunner triển khai giao diện AutoCloseable. Khi thành phần ViewModel hoặc Activity bị huỷ, hãy đóng trình chạy để giải phóng các phiên hoạt động và huỷ coroutine trong nền:

runner.close()

Các bước tiếp theo