Skip to content
Go

Agentic Go: Orquestração de IA Via Goroutines de Alta Concorrência

Published: Duration: 7:04
0:00 0:00

Transcript

Apresentadora: Juliana Santos (Trilha de abertura leve e tecnológica sobe e permanece ao fundo) Apresentadora: E aí, pessoal, bem-vindos de volta ao Allur! Eu sou a Juliana Santos e é um prazer ter vocês aqui em mais um episódio. Se você nos acompanha, sabe que a gente ama falar sobre o que está moldando o futuro do desenvolvimento, e hoje o papo está num nível... digamos, "escala massiva". Apresentadora: Para desvendar esse tema, eu trouxe um convidado que respira sistemas distribuídos e infraestrutura de IA. Ele é Principal Engineer e um dos nomes que mais tenho visto contribuir para a comunidade de Go aqui no Brasil. Seja muito bem-vindo ao Allur, Ricardo Menezes! Convidado: Valeu, Juliana! É um prazer enorme estar aqui. Sou fã do Allur e esse tópico de Agentic Go é, tipo assim, o que me tira o sono — no bom sentido — nos últimos meses. Apresentadora: Massa demais ter você aqui, Ricardo! Cara, para a gente começar do básico: a gente sempre ouviu que "IA é Python". Por que de repente o Go virou essa peça-chave na orquestração desses agentes? O que mudou? Convidado: Pois é, Ju. A confusão começa aí. O Python continua sendo incrível para o *treinamento* e para as bibliotecas de modelos, né? Mas quando a gente fala de "Agentic AI", o desafio mudou de "matemática pesada" para "orquestração massiva". O problema do Python, e quem trabalha com isso sente na pele, é o famoso GIL, o Global Interpreter Lock. Quando você tenta rodar milhões de agentes concorrentes, o Python começa a lutar contra si mesmo. Você precisa de processos pesados, muita memória... fica caro e lento. Já o Go nasceu para isso. O "Agentic Go" não é um novo framework, é um paradigma de usar a concorrência nativa do Go para gerenciar esses agentes como se fossem... bom, como se fossem processos leves. Apresentadora: E aí que entram as Goroutines, né? Eu li que elas são o "coração" disso tudo. Explica para a gente: por que uma Goroutine é melhor para um agente do que, sei lá, uma thread tradicional? Convidado: Cara, a diferença é brutal. Uma thread do sistema operacional é pesada, consome alguns megabytes de cara. Se você subir 10 mil threads, seu servidor pede arrego. Uma Goroutine começa com o quê? 2 ou 4 kilobytes? É quase nada. No Agentic Go, a gente mapeia cada agente — ou até cada subtarefa de um agente — para uma Goroutine. Isso permite que você tenha uma frota de um milhão de agentes em um único cluster de forma muito eficiente. E o mais legal: eles são *stateful*. Apresentadora: "Stateful"... explica melhor esse ponto. Porque geralmente a gente pensa em microsserviços como algo que não guarda estado, né? Convidado: Exato! Mas agentes de IA precisam de memória. Eles precisam lembrar o que fizeram no passo anterior, qual foi o feedback do usuário, como o ambiente mudou. No Go, a gente consegue manter esse estado de forma segura usando canais, os *channels*. Em vez de você ficar sofrendo com locks complexos que travam a performance, você usa o modelo CSP do Go. Os agentes "conversam" enviando dados por canais. É muito mais limpo e evita aquelas condições de corrida que dão um nó na cabeça do desenvolvedor. Apresentadora: Nossa, imagino! Mas vem cá, Ricardo, na prática... você já deve ter visto muita gente tentando migrar. Qual é o maior choque quando alguém sai de uma stack tradicional de IA em Python e vem para o Go? Tem algum momento "aha!" ou algum desafio que a galera sempre tropeça? Convidado: O maior choque é a performance bruta, com certeza. A galera faz o primeiro deploy e fala: "Ué, o consumo de CPU caiu 70%?". É quase mágico. Mas o desafio real, Ju, é a mudança de mentalidade. No Go, você é muito explícito. O tratamento de erros é na sua cara, o sistema de tipos é rígido. No começo, o pessoal que vem do dinamismo do Python reclama, mas quando o sistema atinge 100 mil agentes simultâneos e o código não quebra porque o compilador te pegou lá atrás... aí o desenvolvedor solta aquele "Caramba, agora eu entendi!". Apresentadora: É o famoso "sofre no começo para sorrir no final", né? (risos) E sobre ferramentas? Eu ouvi falar de projetos como 'Beads' e 'Goose'. O que está rolando de quente no ecossistema agora em 2026? Convidado: Esses dois são ótimos exemplos! O 'Beads', por exemplo, foca muito nessa parte de persistência de estado das Goroutines. Já o 'Goose' é fenomenal para orquestração de tarefas complexas entre agentes. Mas o que eu acho mais massa é que o padrão de "Worker Pools" está sendo reinventado. No código que a gente costuma ver por aí, você cria um conjunto de trabalhadores que ficam escutando tarefas. No Agentic Go, esses trabalhadores são inteligentes. Eles usam o `context.Context` do Go para gerenciar timeouts e cancelamentos de forma super fina. Se um agente de IA travar numa "alucinação" ou demorar demais para responder, o Go mata aquela Goroutine de forma limpa e recupera os recursos. Tenta fazer isso com escala em outra linguagem... é um parto. Apresentadora: Realmente, o controle de ciclo de vida parece ser o diferencial. Mas não é tudo flores, né? Monitorar um milhão de Goroutines deve ser um pesadelo. Como vocês estão lidando com a observabilidade disso? Convidado: (Risos) Com certeza, esse é o "calcanhar de Aquiles" se você não for cuidadoso. Imagina debugar um erro que aconteceu no agente número 450.302? Não dá para usar `fmt.Println`, né? A gente usa muito o OpenTelemetry integrado com os profilers nativos do Go, tipo o pprof. O segredo é ter rastreamento distribuído desde o dia um. Se você não souber quem chamou quem e qual canal está entupido, você se perde na imensidão da frota. É um desafio de engenharia de software clássico, mas aplicado a essa nova escala de IA. Apresentadora: Cara, que aula! É fascinante ver como o Go, que a gente sempre amou por causa do backend e de microsserviços, agora é a fundação para essa inteligência toda. Para a gente fechar, Ricardo, que dica você dá para aquele desenvolvedor que já manja de Go, mas ainda não entrou na onda da IA? Onde ele começa? Convidado: Minha dica é: não foque só em como chamar a API do modelo. Isso é o básico. Foque em como *estruturar* a comunicação entre os agentes. Estude padrões de concorrência, canais e como gerenciar estado mutável de forma segura. O "Agentic Go" é mais sobre sistemas distribuídos do que sobre álgebra linear. Ah, e deem uma olhada nos repositórios desses projetos que a gente citou, o código lá é uma escola. Apresentadora: Sensacional. Ricardo, muito obrigada por compartilhar sua experiência. Foi um papo massa demais e acho que abriu a cabeça de muita gente sobre o que vem por aí na infra de IA. Convidado: Eu que agradeço, Juliana! Valeu pelo convite e bora codar esses agentes em Go! Apresentadora: Com certeza! Bom, pessoal, chegamos ao fim de mais um episódio do Allur. Se você gostou desse papo sobre Agentic Go, compartilha com aquele seu amigo que ainda acha que IA só fala Python. As notas do episódio com os links para os projetos Beads e Goose estão lá no nosso site.

Tags

Go Golang ai agents enterprise performance concurrency agentes