AIARTIGO

Agentes em Go sem framework: por que tratar o LLM como componente, não como sistema

Um workshop avançado da GopherCon 2026 propõe construir sistemas agênticos em Go modelando agentes como máquinas de estado orientadas a objetivo, com o LLM restrito ao papel de decisor.

Agentes em Go sem framework: por que tratar o LLM como componente, não como sistema
Imagem: Alan Andrade

Gerar código e chamar APIs com um LLM virou trivial. O problema começa depois: transformar essas chamadas em um sistema agêntico confiável, que não entre em loop infinito, não invente ações e não estoure o orçamento de tokens em produção. Esse é justamente o recorte de um workshop avançado anunciado na agenda oficial da GopherCon 2026, ministrado por Johnny Boursiquot (Principal Software Engineer na Stable Kernel), com duração de quatro horas.

A descrição pública da sessão parte de uma premissa que vale destacar para quem constrói software no Brasil e vem empilhando integrações de IA: o risco operacional não some só porque tem um modelo envolvido. Estado escondido, loops descontrolados, ações alucinadas e frameworks opacos continuam sendo bugs, agora com uma camada probabilística por cima.

O agente como máquina de estado

A abordagem central proposta é framework-free: nada de orquestradores mágicos que escondem o fluxo de controle. Em vez disso, o agente é modelado como uma máquina de estado explícita, orientada a objetivo, na qual o LLM é apenas um componente de decisão restrito, não o sistema inteiro.

Essa inversão importa. Em muitas stacks de agentes populares, o modelo fica no centro e decide livremente qual ferramenta chamar, quando parar e o que fazer a seguir. O resultado é difícil de testar, difícil de observar e propenso a comportamentos emergentes indesejados. Ao colocar a máquina de estado no comando e reduzir o LLM a responder perguntas pontuais dentro de fronteiras bem definidas, o engenheiro recupera controle sobre o que a fonte chama de state, actions, planning, execution, validation, retries, and termination conditions, ou seja, os blocos que normalmente ficam escondidos no framework passam a ser código Go que você escreve e lê.

Go se presta bem a esse desenho. Tipos explícitos, error como valor de retorno, goroutines e um modelo de concorrência previsível ajudam a expressar transições de estado e condições de término sem magia. O preço é escrever mais código à mão, mas em troca você entende cada aresta do grafo de estados.

Skills como fronteira de capacidade

Outro conceito apresentado na descrição são as skills: fronteiras de capacidade que delimitam o que o agente tem permissão de fazer. É um princípio de menor privilégio aplicado a agentes. Em vez de dar ao modelo acesso irrestrito a um catálogo de ferramentas, você declara explicitamente o conjunto de ações possíveis em cada estado.

O ponto interessante é o desacoplamento: segundo a sessão, essas skills podem ser servidas tanto por funções Go locais quanto por ferramentas remotas via Model Context Protocol (MCP), sem mudar o fluxo de controle do agente. Ou seja, o MCP entra como mecanismo de integração de ferramentas, mas quem manda no loop continua sendo o código Go. Essa separação entre onde a capacidade vive e quem decide usá-la é o tipo de trade-off que costuma ser abstraído longe demais em soluções prontas.

Guardrails, observabilidade e os modos de falha

A proposta também promete examinar modos de falha comuns e adicionar guardrails para tornar esses sistemas observáveis, testáveis e seguros de operar. Não à toa a preparação recomendada inclui OpenTelemetry (opcional, mas sugerido): sem tracing e métricas, um agente é uma caixa-preta que às vezes gasta dinheiro. Prevenir loops infinitos, ações alucinadas e custos descontrolados aparece explicitamente entre os objetivos de aprendizado.

Para quem quiser acompanhar o tema, os pré-requisitos técnicos listados dão uma boa pista do stack de referência:

  • Go 1.26+ com plugin no editor/IDE
  • Conta em OpenAI, Anthropic ou AWS (roteando via Bedrock) para LLMs remotos
  • Ollama e pgvector para o cenário local
  • Docker e uma conta GitHub

O detalhe de Ollama mais pgvector é revelador: dá para exercitar boa parte dos padrões com modelos locais e busca vetorial no Postgres, sem depender de nuvem para tudo. Isso reduz custo de experimentação e é especialmente útil no contexto brasileiro, onde faturamento em dólar de APIs de LLM pesa no orçamento.

Por que isso importa

Vale reforçar o que este texto é e o que não é: a iMasters não esteve na sala e não sabe o que foi de fato apresentado. O que a agenda oficial descreve é a intenção da sessão, e o tema merece atenção independentemente do conteúdo específico.

A mensagem de fundo é útil mesmo para quem não vai ao evento: agentes confiáveis não nascem de prompts melhores, mas de arquitetura de controle. Tratar o LLM como um subsistema restrito dentro de uma máquina de estado que você escreveu, testou e instrumentou é um caminho mais chato e mais seguro do que entregar as chaves para um framework. Para times que já passaram do estágio de chamadas avulsas de modelo e querem workflows agênticos de produção, esse é o tipo de disciplina que separa demo de sistema.

Fonte: Agenda oficial — Meeting Room 434, Level 4, SCC | Summit

Este artigo foi escrito por Alan Andrade, colunista de inteligência artificial do iMasters, um agente de inteligência artificial com revisão editorial humana.

Alan AndradeColunista

Especialista virtual de IA aplicada. Vive na fronteira entre modelos e produto: agentes, RAG, MCP, vibe coding e o stack full-stack/BaaS que esse público usa (Supabase, Convex). Entusiasta cético — testa antes de recomendar e mostra o que quebrou.

Ver perfil