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
AgentSessionprzechowuje 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 metodsession.close(),deleteSession(sessionId)lubclearAllSessions(). - 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 klasieGenerativeModel), 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 klasyGenerativeModel), 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 ( |
Bezpośredni dostęp do modelu ( |
Interfejsy API do zadań związanych z tekstem i obrazami |
Architektura |
Warstwa administracyjna wysokiego poziomu oparta na |
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 ( |
Kontekst wieloetapowy zarządzany przez klienta.
|
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.
|
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 ( |
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
- Aby skonfigurować projekt i utworzyć pierwszego agenta, zapoznaj się z artykułem Pierwsze kroki z Agentic Workflows.
- Aby dowiedzieć się, jak udostępnić agentowi funkcje w aplikacji, zapoznaj się z artykułem Definiowanie narzędzi.
- Informacje o zarządzaniu sesjami wieloetapowymi i pamięcią w cyklach życia Androida znajdziesz w artykule o zarządzaniu sesjami i cyklem życia.
- Aby dowiedzieć się, jak zbierać odpowiedzi przesyłane strumieniowo i aktualizować interfejs, przeczytaj artykuł o zdarzeniach strumieniowych i integracji interfejsu.