Streaming de tool calls: acumular argumentos sem executar pela metade
Como acumular argumentos entregues em deltas durante um stream e por que uma tool nunca deve executar antes do evento terminal do provedor.
Quer saber como está construído por dentro? Os dois agentes estão explicados passo a passo em Gymnasia: arquitetura de um agente de IA que roda no celular.
Baixar APK para Android
Apps de academia existem muitos, e de dieta também. O que muda aqui é o que ela carrega dentro: um agente de IA que faz de personal trainer.
E não é um chat pendurado ao lado do app para tirar dúvidas soltas. É um agente com acesso real aos seus dados: você diz «monta uma rotina de empurrar para três dias» ou «anota que comi dois ovos e uma torrada» e ele faz, busca na biblioteca de exercícios, escreve na dieta do dia, lê as suas medidas para decidir e lembra do que você contou na semana passada.
A segunda coisa que a torna diferente: esse agente roda inteiro no seu celular. Não há nenhum servidor meu por onde os seus dados passem, porque não há servidor. O app chama diretamente o fornecedor de IA com uma chave que você fornece, e todo o resto, decidir o que fazer, executar e guardar, acontece dentro do telefone. O seu peso, a sua dieta e as suas rotinas não saem dali.
É o agente com quem você fala. Opera o app através de um catálogo de tools: busca exercícios e alimentos, lê e escreve a sua dieta, cria rotinas, anota medidas e guarda o que você conta sobre si para ter presente na conversa seguinte. A sua capacidade de agir é exatamente essa lista, nem uma coisa a mais.
É BYOK (bring your own key): a chave de API é fornecida por você e fica guardada no dispositivo, então você escolhe qual fornecedor usar e controla quanto gasta. O system prompt é baixado remotamente com uma cópia embutida de reserva, de modo que pode ser corrigido sem publicar uma versão nova e o app continua funcionando sem conexão.
Deslize o grafo na horizontal para o ver inteiro.
O segundo agente, independente do primeiro: você tira uma foto do prato e ele devolve calorias e macronutrientes. Se houver um código de barras na foto, ele lê e consulta o OpenFoodFacts, então nos produtos de supermercado os números são os reais e não uma estimativa a olho. Nada é guardado na sua dieta até você aprovar.
Deslize o grafo na horizontal para o ver inteiro.
Rotinas de treino
Crie rotinas personalizadas com exercícios, séries, repetições e pesos. Cada rotina pode ser categorizada (força, cardio, flexibilidade, etc.) e personalizada com ícones. Durante o treino, um temporizador de descanso com alerta sonoro avisa quando continuar.
Biblioteca de exercícios
Repositório aberto de exercícios com imagens geradas por IA mostrando a execução correta, tanto na versão masculina quanto feminina. Os exercícios incluem grupo muscular, equipamento necessário, dificuldade e instruções detalhadas. Os usuários também podem criar exercícios personalizados.
Acompanhamento de dieta
Registro diário de refeições com cálculo de calorias e macronutrientes (proteínas, carboidratos e gorduras), objetivos nutricionais personalizados e leitura de códigos de barras contra o OpenFoodFacts.
Medidas corporais
Acompanhamento de peso e outras medidas corporais com histórico temporal para visualizar seu progresso.
O aplicativo não tem backend: os dois agentes são executados inteiramente no celular, então os dados do usuário nunca saem do dispositivo. O projeto é um monorepo gerenciado com npm workspaces contendo:
O app móvel utiliza AsyncStorage para persistência local e Expo SecureStore para chaves API. As imagens dos exercícios são servidas do repositório GitHub e cacheadas no dispositivo.
O projeto é open source e está disponível no GitHub.
Se você gostou do projeto, considere dar uma estrela no GitHub.
Se quiser mais informação sobre como o app é feito, os dois grafos acima explicados passo a passo, o laço de tools, a escolha de fornecedor e por que o system prompt vive em remoto, está tudo em Gymnasia: arquitetura de um agente de IA que roda no celular.
Como acumular argumentos entregues em deltas durante um stream e por que uma tool nunca deve executar antes do evento terminal do provedor.
Como transformar chamadas de tools de diferentes provedores de LLMs em uma interface comum sem perder os identificadores...
Guia prático para criar tools que um LLM consiga descobrir, adaptar para qualquer provedor de LLMs, executar com seguran...
Vamos conversar.
maximofn@gmail.com
Especialista em Machine Learning e Inteligência Artificial. Desenvolvo soluções com IA generativa, agentes inteligentes e modelos personalizados.
Agentes de IA, impulsionados por LLMs, prometem transformar aplicações. Mas eles são meros executores hoje ou futuros colaboradores inteligentes? Para...
Aprenda a criar um sistema de IA para executar eficientemente em um dispositivo
Os espaços do Hugging Face nos permitem executar modelos com demos muito simples, mas e se a demo quebrar? Ou se o usuário a deletar? Por isso, criei contêineres docker com alguns espaços interessantes, para poder usá-los localmente, aconteça o que acontecer. Na verdade, se você clicar em qualquer botão de visualização de projeto, ele pode levá-lo a um espaço que não funciona.
Vamos conversar.
maximofn@gmail.com
Especialista em Machine Learning e Inteligência Artificial. Desenvolvo soluções com IA generativa, agentes inteligentes e modelos personalizados.
Dataset com piadas em inglês
Uso: Fine-tuning de modelos de geração de texto humorístico
Dataset com traduções de inglês para espanhol
Uso: Treinamento de modelos de tradução inglês-espanhol
Dataset com filmes e séries da Netflix
Uso: Análise de catálogo Netflix e sistemas de recomendação