Tworzenie przepływów pracy opartych na agentach za pomocą Gemini Nano

Agentic Workflows w ML Kit (com.google.mlkit:genai-agent, wersja alfa) umożliwiają tworzenie autonomicznych, wieloetapowych trybów konwersacyjnych na urządzeniu, opartych na Gemini Nano i usłudze systemowej Android AICore.

Klasa AgentRunner, która jest oparta na klasie GenerativeModel (bezpośredni dostęp do modelu), automatyzuje kompletne, ukierunkowane na cel pętle agenta bezpośrednio w aplikacji: obserwuje kontekst, analizuje dane wejściowe użytkownika, działa za pomocą narzędzi Kotlin i ocenia opinie, dopóki nie zostanie spełniony warunek zakończenia.

Typowe wzorce agentowe

Procesy agentowe na urządzeniu są zoptymalizowane pod kątem ukierunkowanych, deterministycznych pętli rozumowania, w których intencje użytkownika są przekształcane w ustrukturyzowane działania aplikacji. Typowe wzorce to:

Wzór

Przykład

Wykonywanie działań w aplikacji i skróty

Tłumaczenie próśb w języku naturalnym na konkretne polecenia aplikacji, takie jak stosowanie korekt zdjęć na obszarze roboczym edycji, modyfikowanie ustawień odtwarzania lub przełączanie ustawień aplikacji.

Ustrukturyzowane wyszukiwanie i obliczenia lokalne

pobieranie konkretnego rekordu według identyfikatora (np. stanu zamówienia lub salda konta) i wykonywanie wieloetapowych obliczeń matematycznych (np. amortyzacji kredytu lub wskaźników kondycji).

Filtrowanie konwersacyjne i wybór treści

interaktywne wyszukiwanie i ulepszanie elementów aplikacji lokalnej, np. wyszukiwanie na lokalnej liście zadań, filtrowanie playlisty lub sortowanie elementów katalogu na podstawie kryteriów użytkownika;

Wieloetapowe wprowadzanie danych z przewodnikiem

Przewodnik dla użytkowników po ustrukturyzowanym wprowadzaniu danych krok po kroku, sprawdzaniu danych pośrednich za pomocą narzędzi lokalnych przed ostatecznym przesłaniem.

Wydajność i prywatność na urządzeniu

Agentic Workflows działają na Androidzie AICore, aby zapewnić prywatne, szybkie wykonanie bezpośrednio na urządzeniu użytkownika:

  • Lokalne wnioskowanie i prywatność promptów: pętla wnioskowania i planowania modelu jest wykonywana w całości na urządzeniu, bez opóźnień sieciowych. Dane z promptów użytkownika pozostają prywatne na urządzeniu. Jednak poszczególne narzędzia zaimplementowane w aplikacji mogą nadal wykonywać wywołania sieciowe lub wysyłać zapytania do interfejsów Cloud API, jeśli Twój przypadek użycia wymaga danych zewnętrznych.
  • Zarządzane sesje wieloetapowe: interfejs AgentSession przechowuje historię rozmowy w pamięci, dzięki czemu nie musisz ręcznie zarządzać transkrypcjami. Pamięć możesz odzyskać w dowolnym momencie, korzystając z metod session.close(), deleteSession(sessionId) lub clearAllSessions().
  • Zabezpieczenia wykonywania: konfiguracje agenta wymuszają maksymalny limit tur (limit maxTurns, domyślnie 10) jako warunek zakończenia zasobu, aby zapobiec niekontrolowanym pętlom wykonywania, oszczędzać baterię i chronić czas reakcji urządzenia.

Wybieranie między generowaniem niestandardowym, agentami i interfejsami API do konkretnych zadań

Zestaw ML Kit porządkuje funkcje generatywnej AI na urządzeniu według stopnia dostosowania i orkiestracji, jakich wymaga dana funkcja:

  • Niestandardowe generowanie i agenty: pracuj bezpośrednio z modelem podstawowym Gemini Nano, gdy funkcja wymaga niestandardowych instrukcji lub logiki specyficznej dla domeny. Wybierz Agentic Workflows (używając klasy AgentRunner, która jest oparta na klasie GenerativeModel), jeśli chcesz korzystać z zarządzanych sesji wieloetapowych i automatycznych pętli wywoływania narzędzi, lub wybierz bezpośredni dostęp do modelu (używając klasy GenerativeModel), jeśli chcesz korzystać z niestandardowych promptów, wpisywanych danych wyjściowych o określonej strukturze lub historii wieloetapowej zarządzanej przez klienta.
  • Mowa i dźwięk: używaj specjalnych modeli mowy i generatywnej AI (takich jak rozpoznawanie mowy) do transkrypcji tekstu mówionego na tekst.
  • Zadania tekstowe i graficzne: używaj wstępnie skonfigurowanych, dostosowanych do konkretnych zadań typów funkcji i dostrojonych adapterów LoRA na podstawie udostępnionego modelu podstawowego (takich jak Opis obrazu, Podsumowanie, Korekta i Przepisywanie), aby korzystać z gotowych rozwiązań do rozpoznawania obrazów i pisania bez konieczności inżynierii promptów.

Tabela poniżej zawiera porównanie tych metod:

Rozważanie zakupu

Agentic workflows (AgentRunner)

Bezpośredni dostęp do modelu (GenerativeModel)

Interfejsy API do zadań związanych z tekstem i obrazami

Architektura

Warstwa administracyjna wysokiego poziomu oparta na GenerativeModel.

Bezpośredni interfejs do modelu podstawowego Gemini Nano na potrzeby niestandardowych promptów.

Typy cech dostosowane do konkretnych zadań, obsługiwane przez dostrojone adaptery LoRA na podstawie udostępnionego modelu podstawowego.

Kontekst wieloetapowy

Zarządzane sesje wieloetapowe (AgentSession). Automatycznie przechowuje historię rozmowy w pamięci, dzięki czemu nie musisz ręcznie zarządzać transkrypcjami (obsługuje też tymczasowe wykonywanie jednoetapowe).

Kontekst wieloetapowy zarządzany przez klienta. GenerateContentRequest obsługuje wieloetapowe List<Content> (role USER i MODEL) oraz sessionId dla deweloperów, którzy chcą bezpośrednio zarządzać własną historią czatu.

Bezstanowe wywołania zadań z jednymi danymi wejściowymi.

Wywoływanie narzędzi i działania

Zautomatyzowana pętla wywoływania narzędzi. Wykrywa zarejestrowane funkcje aplikacji na Androida, wykonuje wywołania wybrane przez model i automatycznie przekazuje wyniki z powrotem do modelu.

Deklaracje narzędzi zarządzanych przez klienta. GenerateContentRequest akceptuje schematy narzędzi i wysyła żądania wywołania funkcji, które aplikacja może wykonać i zwrócić ręcznie.

Nie dotyczy (stały potok zadań).

Kiedy używać

Używaj, gdy chcesz korzystać z automatycznej orkiestracji do wieloetapowego wykonywania narzędzi i zarządzanych sesji wieloetapowych w pamięci.

Używaj do niestandardowych promptów, multimodalnego rozpoznawania obrazów, wpisywania ustrukturyzowanych danych wyjściowych (@Generable) lub gdy chcesz bezpośrednio zarządzać własną historią czatu lub wysyłaniem narzędzi.

Używaj, gdy Twoja funkcja odpowiada standardowemu zadaniu związanemu z pisaniem lub widzeniem i chcesz uzyskać gotową jakość z dostrojonych modeli LoRA przy minimalnej konfiguracji.

Dalsze kroki