Como o Google Tenta Trazer Ordem ao Desenvolvimento de Apps de IA com Genkit
Desenvolvedores da equipe do Firebase open-sourcearam o Genkit — um framework para construir funcionalidades de IA. Vamos descobrir se ele ajuda a combinar Gemini, OpenAI e Ollama em um único projeto sem código espaguete.
Por Que Precisamos de Outro Framework de IA
Se você já tentou adicionar uma chamada de LLM ao seu backend, provavelmente seguiu este caminho. Primeiro, você escreve uma simples chamada fetch para a API da OpenAI. Então você precisa analisar JSON estritamente válido da resposta do modelo, e recorre a gambiarras com expressões regulares. Em seguida, o lado do negócio pede para mudar para o Gemini ou conectar um Ollama local para testes, mas cada um tem um SDK diferente. O resultado é um projeto cheio de wrappers personalizados, sistemas de templating de prompts e logs espalhados.
A comunidade Python lida com isso usando LangChain ou LlamaIndex. Mas se sua stack principal é TypeScript ou Go, as alternativas eram escassas até recentemente. Engenheiros do Google da equipe do Firebase encontraram o mesmo problema internamente e construíram o Genkit. Agora o projeto está disponível como open source.

O Que o Framework Pode Fazer
O conceito do Genkit é direto: fornecer uma interface unificada para diferentes provedores de redes neurais e lidar com o trabalho rotineiro. Em vez de aprender SDKs específicos para cada serviço, você trabalha com uma API universal.
Várias linguagens são suportadas atualmente:
- JavaScript e TypeScript estão prontos para produção
- Go está pronto para produção
- Python está em Beta
- Dart está em Preview
Pronto para uso, os provedores suportados incluem Google Gemini, OpenAI, Anthropic e Ollama. Trocar entre modelos frequentemente requer apenas uma única mudança de linha de configuração.
Vamos ver um exemplo mínimo de inicialização e chamada de um modelo em TypeScript:
import { genkit } from 'genkit';
import { googleAI } from '@genkit-ai/google-genai';
const ai = genkit({ plugins: [googleAI()] });
const { text } = await ai.generate({
model: googleAI.model('gemini-flash-latest'),
prompt: 'What is the meaning of life?'
});
O código parece limpo e não amarra o backend a requisições HTTP de baixo nível.
Saída Tipada e Chamada de Ferramentas
Uma das tarefas mais comuns no desenvolvimento de serviços de IA é fazer o modelo retornar não apenas texto, mas uma estrutura de dados. O Genkit funciona com schemas Zod em TypeScript e mecanismos similares em outras linguagens. Você descreve o schema de resposta, passa para o modelo e recebe um objeto válido de volta.
A segunda funcionalidade útil é chamar funções externas, ou tool calling. Se o modelo precisar verificar o clima atual ou consultar um banco de dados, você registra uma ferramenta com uma descrição de seus argumentos de entrada. O Genkit automaticamente passa a descrição da função para o LLM, recebe a decisão de chamada e executa o código necessário.
O framework também inclui:
- Templating de prompts via formato Dotprompt
- Respostas em stream
- Busca vetorial e RAG para trabalhar com bases de conhecimento
- Cadeias de chamadas e agentes via mecanismos de Flows
Debug Local via Developer UI
Ao desenvolver funcionalidades complexas de IA, a parte mais difícil é entender exatamente onde a cadeia de chamadas quebrou. O modelo retornou o formato errado? Uma ferramenta deu erro? O prompt estava muito longo?
Os desenvolvedores do Genkit criaram um utilitário CLI local e GUI para debug. Você executa o comando genkit start, e um dashboard abre no seu navegador.

Esta UI permite que você faça várias coisas:
- Executar prompts e cadeias manualmente em um sandbox interativo
- Comparar resultados de diferentes modelos no mesmo prompt
- Visualizar traces detalhados com análises passo a passo, timestamps e entradas e saídas precisas para cada estágio
Ter uma UI local acelera significativamente as iterações. Você não precisa fazer deploy para um ambiente de teste ou escrever scaffolding de logging toda vez.
Onde Fazer Deploy e Como Monitorar
Embora o Genkit tenha sido criado dentro do Google e se integre com Firebase Cloud Functions e Google Cloud Run, ele não te prende à infraestrutura do Google Cloud. Você pode fazer deploy da aplicação em Node.js ou Go em qualquer container Docker, na Vercel, AWS ou em seus próprios servidores.
Em produção, o framework pode enviar métricas e traces para sistemas de monitoramento. Você verá contagem de requisições, latências, erros e custos de tokens diretamente no console do Firebase ou através de soluções de terceiros baseadas em OpenTelemetry.
Quem Deve Experimentar
O Genkit se mostrou uma ferramenta equilibrada. Diferente de algumas bibliotecas open-source que tentam fazer de tudo, ele mostra uma abordagem de engenharia cuidadosa.
O projeto é útil se:
- Você escreve serviços de IA em TypeScript ou Go e não quer migrar para Python
- Você precisa de uma camada de abstração unificada sobre OpenAI, Gemini e modelos locais
- Você está cansado de fazer debug de agentes de IA complexos sem traces claros
O suporte a Python ainda está em beta e o Dart ainda está em desenvolvimento. Mas a versão Node.js já está bastante pronta para serviços em produção. Você pode experimentar exemplos e ler a documentação no site oficial genkit.dev ou no repositório GitHub genkit-ai/genkit.
Projetos relacionados