Агентные рабочие процессы ML Kit (com.google.mlkit:genai-agent, альфа-версия) позволяют создавать автономные многоэтапные разговорные интерфейсы на устройстве на базе Gemini Nano и системного сервиса Android AICore.
Класс AgentRunner, созданный на основе класса GenerativeModel (прямой доступ к модели), автоматизирует полные, ориентированные на цель циклы агентов непосредственно в вашем приложении: наблюдает за контекстом, рассуждает о входных данных пользователя, действует с помощью типизированных инструментов Kotlin и оценивает обратную связь до тех пор, пока не будет выполнено условие завершения.
Распространенные паттерны агентов
Агентные рабочие процессы на устройстве оптимизированы для целенаправленных детерминированных циклов рассуждений, в которых намерение пользователя преобразуется в структурированные действия приложения. Распространенные шаблоны включают:
Графический ключ |
Пример |
Выполнение действий в приложении и ярлыки |
Перевод запросов на естественном языке в команды для приложений, например для редактирования фотографий, изменения настроек воспроизведения или переключения параметров приложения. |
Структурированный поиск и локальные вычисления |
получение определенной записи по идентификатору (например, состояние заказа или баланс аккаунта) и выполнение многоэтапных математических расчетов (например, амортизация кредита или фитнес-показатели). |
Фильтрация и отбор в режиме диалога |
Интерактивные запросы и уточнение элементов локального приложения, например поиск по локальному списку задач, фильтрация плейлиста или сортировка элементов каталога на основе критериев пользователя. |
Пошаговый ввод данных |
Пошаговое руководство по вводу структурированных данных с проверкой промежуточных входных данных с помощью локальных инструментов перед окончательной отправкой. |
Производительность и конфиденциальность на устройстве
Агентные рабочие процессы выполняются в Android AICore, что обеспечивает конфиденциальность и высокую скорость работы прямо на устройстве пользователя.
- Локальные рассуждения и конфиденциальность запросов. Рассуждения и планирование модели выполняются полностью на устройстве без задержек в сети. Данные запросов пользователей остаются конфиденциальными на устройстве. Однако отдельные инструменты, реализованные в вашем приложении, могут выполнять сетевые вызовы или запрашивать облачные API, если для вашего сценария использования требуются внешние данные.
- Управляемые многоэтапные сеансы. Интерфейс
AgentSessionсохраняет историю разговора в памяти на протяжении всех этапов, поэтому вам не нужно управлять расшифровками вручную. Вы можете освободить память в любой момент, используя методыsession.close(),deleteSession(sessionId)илиclearAllSessions(). - Ограничения на выполнение. В конфигурациях агента задается максимальное количество реплик (
maxTurns, по умолчанию 10) в качестве условия завершения, чтобы предотвратить бесконечные циклы выполнения, сэкономить заряд батареи и обеспечить отзывчивость устройства.
Выбирайте между пользовательской генерацией, агентами и API для конкретных задач
В ML Kit возможности генеративного ИИ на устройстве разделены по уровню настройки и оркестрации, которые требуются для вашей функции:
- Пользовательская генерация и агенты. Работайте напрямую с базовой моделью Gemini Nano, если для вашей функции требуются пользовательские инструкции или логика, специфичная для домена. Выберите рабочие процессы с агентами (с использованием класса
AgentRunner, созданного на основе классаGenerativeModel), если вам нужны управляемые многоэтапные сеансы и автоматизированные циклы вызова инструментов. Если же вам нужны настраиваемые запросы, типизированные структурированные выходные данные или управляемая клиентом история многоэтапных сеансов, выберите прямой доступ к модели (с использованием классаGenerativeModel). - Речь и аудио. Используйте специальные модели речи и генеративного ИИ (например, распознавание речи), чтобы преобразовывать голосовое аудио в текст.
- Задачи с текстом и изображениями. Используйте предварительно настроенные типы функций для конкретных задач и оптимизированные адаптеры LoRA поверх общей базовой модели (например, описание изображения, краткий пересказ, проверка правописания и переписывание) для готовых сценариев использования зрения и письма без подготовки запросов.
В таблице ниже сравниваются эти подходы.
готовность; |
Рабочие процессы с агентами ( |
Прямой доступ к модели ( |
API для задач с текстом и изображениями |
Архитектура |
Высокоуровневый уровень оркестрации, построенный на основе |
Прямой интерфейс к базовой модели Gemini Nano для пользовательских запросов. |
Типы функций для конкретных задач, поддерживаемые оптимизированными адаптерами LoRA, которые работают на основе общей базовой модели. |
Контекст многоэтапного диалога |
Управляемые многоэтапные сеансы ( |
Контекст нескольких ходов, управляемый клиентом.
|
Вызовы задач без сохранения состояния и с одним вводом. |
Вызов инструментов и действия |
Автоматический цикл вызова инструментов. Обнаруживает зарегистрированные функции Android AppFunctions, выполняет вызовы, выбранные моделью, и автоматически передает результаты обратно в модель. |
Декларации инструментов, управляемых клиентом.
|
Неприменимо (фиксированный конвейер задач). |
Когда использовать |
Используйте, если вам нужна автоматическая оркестрация для многоэтапного выполнения инструментов и управляемых многоэтапных сеансов в памяти. |
Используйте для собственных запросов, мультимодального распознавания изображений, типизированных структурированных выходных данных ( |
Используйте, если ваша функция соответствует стандартной задаче по написанию текста или распознаванию изображений и вы хотите получить готовое качество от настроенных LoRA с минимальной настройкой. |
Дальнейшие действия
- Чтобы настроить проект и создать первого агента, ознакомьтесь с руководством по началу работы с агентными рабочими процессами.
- Чтобы узнать, как предоставить агенту доступ к функциям приложения, прочитайте статью Как определить инструменты.
- Чтобы узнать, как управлять многоэтапными сеансами и памятью в жизненных циклах Android, прочитайте статью Управление сеансами и жизненным циклом.
- Чтобы собирать потоковые ответы и обновлять интерфейс, ознакомьтесь с разделом Потоковая передача событий и интеграция с интерфейсом.