segunda-feira, 2 de novembro de 2026 IA e tecnologia por Denis Ribeiro
Código Aberto

IA e tecnologia sem enrolação — por Denis Ribeiro

Open Source

agents-towards-production: 5 critérios para separar prototipagem de produção real em 2026

Diagrama de ranking de módulos do agents-towards-production separando prototipagem educacional de código production-grade com critérios de observabilidade e retry
Foto: ThisIsEngineering / Pexels

Fui procurar o tutorial de automação de browser no agents-towards-production porque um colega jurava que dava pra subir direto num pipeline real. Encontrei um notebook bonito, com seletor de DOM fixo e zero tratamento pro caso óbvio de o site mudar a estrutura da página no dia seguinte. Funciona na demo, quebra na primeira terça-feira de produção. Essa foi a pista que me fez abrir o repositório inteiro e separar, módulo por módulo, o que é ensino de conceito e o que aguenta tráfego real.

O que “production-grade” significa no README (e o que significa pra quem já quebrou produção de verdade)

O README do NirDiamant/agents-towards-production é direto na promessa: “building production-ready GenAI agents that scale from prototype to enterprise”. O conjunto de temas listado é amplo e cobre workflows com estado, memória vetorial, busca web em tempo real, deploy com Docker, endpoints em FastAPI, guardrails de segurança, escalonamento em GPU, automação de browser, fine-tuning, coordenação multi-agente, observabilidade, avaliação e desenvolvimento de UI. Não vou arriscar um número exato de tutoriais (repositório desse tipo cresce e encolhe o tempo todo), mas são dezenas de notebooks cobrindo temas genuinamente relevantes pra quem constrói agente sério.

O problema é o que “production” significa em cada contexto. Pra quem escreve tutorial, production-grade costuma ser “o código roda sem erro e mostra o conceito funcionando”. Pra quem opera sistema de verdade é outra coisa: orçamento de custo por requisição sob controle, retentativa com backoff quando o provedor de LLM devolve erro de limite de uso, log estruturado que alguém consegue buscar de madrugada quando o agente começa a alucinar. São dois significados da mesma palavra, e o README não distingue um do outro. Ele usa “production-grade” como adjetivo de marketing na mesma frase que menciona GPU scaling e Docker, misturando conceito técnico com promessa comercial.

Fica mais claro quando se nota que o próprio README empurra, antes de qualquer tutorial, um curso pago chamado “Prompt to Production”, com 17 módulos e vídeo-aula mais laboratório em cada um. Isso não é defeito, é modelo de negócio legítimo (a mesma lógica aparece em repositórios de LangChain, de Redis e de dezenas de outros projetos com tutorial patrocinado por empresas parceiras). Mas é sinal de que o objetivo primário documentado é ensinar e gerar audiência, não entregar peça pronta pra colocar atrás de um load balancer.

Antes de seguir, uma nota de método: não tive acesso ao código linha a linha de cada notebook. O que vem a seguir é leitura da estrutura, dos nomes de pasta e da documentação pública de cada tutorial, não auditoria completa de código.

Meus cinco critérios de ranking, e por que estrela no GitHub não é um deles

Contagem de estrela mede popularidade, não qualidade de engenharia. Um repositório educacional bem divulgado, com parcerias de empresas aparecendo no README, acumula estrela rápido porque é fácil de compartilhar, não porque resolve problema de operação.

Os cinco critérios que uso pra julgar se um módulo é produção de verdade ou prototipagem com nome bonito:

  1. Observabilidade: existe log estruturado, tracing de chamada de LLM, ou é só print() no meio da célula do notebook?
  2. Tratamento de erro e retry: o código lida com timeout, rate limit e resposta malformada do modelo, ou assume que a API sempre responde do jeito esperado?
  3. Controle de custo e rate limit: há lógica de limite de token, cache de chamada, ou cada execução do notebook é um cheque em branco pra API paga?
  4. Guardrails de segurança: validação de input e output, filtro de prompt injection, ou o agente confia cegamente no que o usuário manda e no que o modelo devolve?
  5. Deploy e escalabilidade: existe Dockerfile, health check, estratégia de múltiplas instâncias, ou o “deploy” é rodar a célula de novo?

Esses critérios não aparecem listados dessa forma na documentação do projeto, são o filtro que eu aplico em cima do que já está publicado (nome da pasta, tema anunciado, tecnologia envolvida).

Onde o repositório entrega o que promete: código que vai além do prototype

Pelos temas anunciados, dá pra identificar os candidatos mais fortes a atravessar a linha entre conceito e operação real. Há um tutorial de memória de agente usando Redis como camada de persistência, e esse recorte lida com um problema estrutural em produção: agente sem estado externo não escala horizontalmente, porque cada instância fica presa à própria sessão em memória. Usar Redis como memória vetorial é decisão de arquitetura que aparece em sistema real, o tipo de escolha que separa quem pensou em múltiplas instâncias atrás de um load balancer de quem só queria rodar o notebook uma vez e tirar print.

Também existe um tutorial de agente construído com LangGraph, e isso toca um ponto que meu critério de observabilidade valoriza: LangGraph é desenhado em torno de grafo de estado explícito, o que facilita rastrear em que nó o agente está e por que tomou determinada decisão. Isso é pré-requisito pra debugar produção sem virar arqueologia de log. Pela própria proposta do framework, o tema já nasce com essa preocupação em mente, embora eu não tenha conseguido confirmar quais tags exatas o repositório usa pra categorizar esse conteúdo.

São módulos que, pela documentação disponível, parecem ir além do “funciona uma vez no Jupyter”. Não é garantia de hardening completo, é indicação de que o tema já nasce perto de um problema real de produção, e não só de um conceito de IA bonito de mostrar.

Os módulos que são prototipagem com crachá de produção

Nem todo tema listado no README tem o mesmo nível de rigor. O texto menciona “browser automation” e “fine-tuning” na mesma frase que menciona “security guardrails” e “GPU scaling”. São áreas tecnicamente distantes, com exigências de produção completamente diferentes. Automação de browser em notebook tende a ser frágil fora de ambiente controlado: seletor de DOM que muda, site que bloqueia user-agent de scraper, timeout que varia por rede. É conteúdo valioso pra entender o conceito, mas eu não apostaria sem revisão extensa numa automação real sem camada adicional de retry, fallback e monitoramento, camada que um tutorial de introdução dificilmente tem espaço pra cobrir num único notebook didático.

O erro comum que já vi em time de produto é pegar um tutorial com “production” no nome, assumir que ele já veio blindado, subir pro ambiente real e descobrir no primeiro pico de uso que não tem retry configurado nem limite de rate contra a API do provedor de LLM. O notebook não mentiu, ele nunca prometeu hardening linha a linha. Foi a leitura apressada do nome do repositório que prometeu isso no lugar dele.

O que falta no projeto do NirDiamant pra ser usado como está

Mesmo somando os módulos mais fortes, há lacuna que nenhum tutorial individual resolve, porque é lacuna do conjunto, não de notebook específico. Primeiro, licença: antes de copiar qualquer trecho pra um produto comercial, vale conferir diretamente no campo de licença da página do GitHub qual é o status atual (isso muda com o tempo e não é algo pra tomar como certo de segunda mão). Projeto educacional com licença mal definida ou ausente é risco jurídico, não só técnico, e esse tipo de checagem precisa ser feita antes do primeiro commit que reaproveita o código.

Segundo: o repositório é majoritariamente Jupyter Notebook. Ótimo formato pra ensinar passo a passo, péssimo formato pra versionamento limpo, revisão de código e pipeline de CI/CD. Não há, pela estrutura pública, indicação de suíte de teste automatizado, pipeline de integração contínua ou teste de carga que simule múltiplos usuários concorrentes, cenário em que rate limit de provedor de LLM e custo por token viram problema real, e não exercício de sala de aula.

Terceiro: monitoramento de produção de verdade (alertas, dashboard, SLO) não aparece como entregável, porque não é esse o produto. O README deixa isso relativamente claro ao empurrar, no mesmo espaço, um curso pago com módulo dedicado a “paradigmas por trás de sistemas de produção confiáveis e modulares”. Se esse conhecimento estivesse todo encapsulado nos notebooks gratuitos, o curso perderia razão de existir.

Pra quem o agents-towards-production realmente serve

Serve bem pra quem quer estudar arquitetura de agente sem depender só da documentação oficial de cada framework, ou pra time técnico que precisa decidir, com exemplo concreto na mão, se vale adotar LangGraph ou Redis como peça de uma stack maior, lendo o Dockerfile e o endpoint FastAPI do tutorial com olho crítico antes de qualquer decisão.

Agora, quem busca solução plug-and-play vai se decepcionar. Copiar o notebook, trocar a chave de API e subir num ambiente com usuário real sem passar por revisão de segurança, teste de carga e observabilidade própria é receita pra incidente. A peça que falta não está no repositório, está na disciplina de engenharia que ele só documenta parcialmente: plataforma de observabilidade de LLM (tipo as soluções de tracing dedicadas a agente), API gateway com rate limit próprio, processo de revisão de segurança antes do deploy. O repositório ensina o conceito. Quem fecha a lacuna até produção é o time, não o GitHub.

Fontes consultadas

  • Repositório NirDiamant/agents-towards-production, incluindo README, descrição e metadados públicos conforme disponibilizados na página do projeto no GitHub. Itens específicos como contagem exata de tutoriais, nomes de pastas, lista de patrocinadores, topics e status de licença precisam ser reconferidos diretamente na página do repositório antes de citação literal, já que esse tipo de informação muda com frequência e não pôde ser validada ponto a ponto neste processo.
Publicidade