Criar fluxos de trabalho com agentes usando o Gemini Nano

Os Agentic Workflows do Kit de ML (com.google.mlkit:genai-agent, Alfa) permitem criar experiências de conversação autônomas e multiturno no dispositivo, com tecnologia do Gemini Nano e do serviço de sistema Android AICore.

Criada com base na classe GenerativeModel (acesso direto ao modelo), a classe AgentRunner automatiza loops de agentes completos e orientados a metas diretamente no seu app: observando o contexto, raciocinando sobre as entradas do usuário, agindo com ferramentas Kotlin tipadas e avaliando o feedback até que uma condição de encerramento seja atendida.

Padrões comuns de agentes

Os Agentic Workflows no dispositivo são otimizados para ciclos de raciocínio focados e deterministas, em que a intenção do usuário é traduzida em Ações no app estruturadas. Alguns padrões comuns incluem:

Padrão

Exemplo

Execução de ações no app e atalhos

Traduzir solicitações em linguagem natural em comandos específicos do app, como aplicar ajustes de fotos em uma tela de edição, modificar as configurações de reprodução ou alternar as preferências do app.

Pesquisa estruturada e cálculo local

Buscar um registro específico por ID (como o status de um pedido ou o saldo de uma conta) e realizar cálculos matemáticos de várias etapas (como amortizações de empréstimos ou métricas de condicionamento físico).

Filtragem e curadoria conversacionais

Consultar e refinar de forma interativa itens de apps locais, como pesquisar em uma lista de tarefas local, filtrar uma playlist ou classificar itens de catálogo com base nos critérios do usuário.

Entrada guiada em várias etapas

Orientar os usuários passo a passo na entrada de dados estruturados, validando as entradas intermediárias com ferramentas locais antes do envio final.

Desempenho e privacidade no dispositivo

Os Agentic Workflows são executados no Android AICore para oferecer uma execução particular e responsiva diretamente no dispositivo do usuário:

  • Raciocínio local e privacidade de comandos: o loop de raciocínio e planejamento do modelo é executado inteiramente no dispositivo, sem latência de rede. Os dados de comandos do usuário permanecem privados no dispositivo. No entanto, as ferramentas individuais implementadas no seu app ainda podem fazer chamadas de rede ou consultar APIs do Cloud se o caso de uso exigir dados externos.
  • Sessões multiturno gerenciadas: a interface AgentSession mantém o histórico de conversas na memória entre os turnos, para que você não precise gerenciar as transcrições manualmente. É possível recuperar memória a qualquer momento usando os métodos session.close(), deleteSession(sessionId) ou clearAllSessions().
  • Proteções de execução: as configurações do agente aplicam um limite máximo de turnos (o limite maxTurns, que é 10 por padrão) como uma condição de encerramento de recursos para evitar loops de execução descontrolados, economizar bateria e proteger a capacidade de resposta do dispositivo.

Escolha entre geração personalizada, agentes e APIs específicas para tarefas

O Kit de ML organiza os recursos de IA generativa no dispositivo de acordo com o nível de personalização e orquestração que seu recurso precisa:

  • Geração e agentes personalizados: trabalhe diretamente com o modelo de fundação Gemini Nano quando seu recurso exigir instruções personalizadas ou lógica específica do domínio. Escolha Agentic Workflows (usando a classe AgentRunner, criada com base na classe GenerativeModel) quando quiser sessões multiturno gerenciadas e loops automatizados de chamada de ferramentas ou escolha acesso direto ao modelo (usando a classe GenerativeModel) para comandos personalizados, saída estruturada digitada ou histórico multiturno gerenciado pelo cliente.
  • Fala e áudio: use modelos dedicados de fala e IA generativa (como Reconhecimento de fala) para transcrever áudio falado em texto.
  • Tarefas de texto e imagem: use tipos de recursos pré-configurados e específicos para tarefas e adaptadores LoRA ajustados sobre o modelo base compartilhado (como Descrição de imagem, Resumo, Revisão e Reescrita) para casos de uso de visão e escrita prontos para uso sem engenharia de comandos.

A tabela a seguir compara essas abordagens:

Consideração

Agentic Workflows (AgentRunner)

Acesso direto ao modelo (GenerativeModel)

APIs de tarefas de texto e imagem

Arquitetura

Camada de orquestração de alto nível criada com base no GenerativeModel.

Interface direta com o modelo de fundação Gemini Nano para comandos personalizados.

Tipos de recursos específicos de tarefas com suporte de adaptadores LoRA ajustados no modelo base compartilhado.

Contexto de vários turnos

Sessões gerenciadas de várias interações (AgentSession): mantém o histórico de conversas na memória automaticamente entre as interações para que você não precise gerenciar as transcrições manualmente. Também oferece suporte à execução efêmera de uma única interação.

Contexto multiturno gerenciado pelo cliente. O GenerateContentRequest oferece suporte a List<Content> de vários turnos (papéis USER e MODEL) e sessionId para desenvolvedores que querem gerenciar o próprio histórico de chat diretamente.

Chamadas de tarefas sem estado e de entrada única.

Chamada de ferramentas e ações

Loop automatizado de chamada de ferramentas. Descobre AppFunctions do Android registradas, executa chamadas selecionadas pelo modelo e envia os resultados de volta para o modelo automaticamente.

Declarações de ferramentas gerenciadas pelo cliente. GenerateContentRequest aceita esquemas de ferramentas e emite solicitações de chamada de função para que seu app execute e retorne manualmente.

Não relevante (pipeline de tarefas fixas).

Quando usar

Use quando quiser uma orquestração automatizada para execução de ferramentas em várias etapas e sessões multiturno gerenciadas na memória.

Use para comandos personalizados, compreensão de imagens multimodais, saída estruturada digitada (@Generable) ou quando quiser gerenciar seu próprio histórico de chat ou envio de ferramentas diretamente.

Use quando o recurso corresponder a uma tarefa padrão de escrita ou visão e você quiser uma qualidade pronta para uso de LoRAs ajustados com configuração mínima.

Próximas etapas