Steve Francia — criador do Hugo, Cobra e Viper, ex-líder da equipe de produto Go na Google — publicou uma análise sobre por que Go está se tornando a linguagem de referência para sistemas de agentes de IA. O ponto de partida é concreto: o TypeScript 7 foi reescrito pela Microsoft em Go, com ganhos de 10x em velocidade de compilação. Mas o argumento vai além de benchmarks: quatro propriedades estruturais do Go se alinham diretamente com o que torna um agente de IA previsível, barato de operar e confiável em produção.

O TypeScript 7 como caso de teste em escala real

A Microsoft migrou o compilador do TypeScript para Go. Anders Hejlsberg, criador do TypeScript, comentou que o estilo orientado a funções do Go permitiu uma migração quase um-a-um do código original — sem redesenhar a arquitetura. O resultado foi um compilador 10x mais rápido e um binário único sem dependências de runtime.

Para quem já usa Go no dia a dia, isso não surpreende. Para o restante da indústria, foi um sinal de que Go não é apenas uma escolha de infraestrutura: é uma linguagem capaz de substituir linguagens de compiladores em produção em escala.

As quatro razões técnicas para agentes de IA

1. Compilação rápida reduz custo por iteração

Agentes de IA operam em loops: o modelo gera código, o código compila, o resultado alimenta o próximo passo. Em Rust ou C++, uma compilação pode levar minutos. Em Go, leva segundos — ou milissegundos em projetos menores.

Quando um agente executa dezenas de ciclos por tarefa, essa diferença se torna custo real: mais tokens consumidos esperando compilação, mais latência por ciclo, mais chance de o contexto perder coerência entre iterações.

2. Determinismo de dependências com go.sum

Agentes que gerenciam código precisam de reprodutibilidade. O go.sum do Go registra checksums SHA-256 exatos de todos os módulos, com resolução de versão única — sem conflitos de diamante, sem surpresas entre ambientes.

# Verificar integridade de todos os módulos baixados
go mod verify

# go.sum fixa o hash de cada módulo e seu go.mod
cat go.sum | head -3
# github.com/some/pkg v1.2.3 h1:abc123...
# github.com/some/pkg v1.2.3/go.mod h1:def456...

Comparado ao pip ou ao npm — que permitem execução arbitrária de código durante a instalação e têm históricas falhas de reprodutibilidade — o go.sum é uma âncora de segurança para pipelines agenticos rodando em CI ou em containers efêmeros.

3. O compilador rejeita premissas erradas antes do runtime

Go não tem modo permissivo. Código que não compila não roda — sem @ts-ignore, sem # type: ignore, sem castings silenciosos. O tipo any do Go continua sendo verificado em cada ponto de uso.

Isso tem impacto direto em código gerado por agentes: o compilador descarta camadas construídas sobre premissas erradas no ciclo de compilação, não em produção. Um agente que gera Go recebe feedback imediato e preciso sobre o que está errado.

O contraste com TypeScript é direto: o any do TypeScript desabilita o type checker para tudo que toca. Com Python, erros de tipo aparecem em runtime — frequentemente depois que várias camadas de processamento já rodaram e acumularam estado incorreto.

4. Código Go cabe melhor em janelas de contexto

Go tem estrutura explícita e plana: sem herança, sem metaclasses, sem mixins, sem DSLs de framework. Um arquivo Go tende a ser legível com menos tokens de contexto — o que importa quando você está pagando por cada token no prompt de um LLM.

Pesquisas mostram que a performance de modelos de linguagem degrada à medida que o contexto cresce. Código Go, por sua natureza explícita, tende a ser mais denso em significado por token do que código Python com decoradores aninhados ou TypeScript com tipos condicionais profundos.

A infraestrutura de IA de produção já é Go

Não é uma previsão: a camada de infraestrutura de IA em produção já convergiu para Go em vários pontos críticos:

  • Ollama — servidor local de modelos LLM
  • Weaviate — banco vetorial para embeddings
  • Temporal — orquestrador de workflows duráveis
  • Servidor MCP do GitHub — integração com agentes de código

Isso não é coincidência. Times que precisam de binários únicos, concorrência explícita e deploy simples escolhem Go — e sistemas de agentes em produção têm exatamente esses requisitos.

Steve Francia observa ainda um padrão interessante: as partes mais modernas do ecossistema Python (Pydantic, Polars, uv) estão sendo escritas em Rust, não em Python. Go domina a infraestrutura de IA; Python domina as bibliotecas de ML. São camadas diferentes com demandas diferentes.

O que muda na prática para devs Go

Se você já usa Go no backend, o argumento é direto: as propriedades que tornaram Go popular para infraestrutura — leitura direta, compilação rápida, ferramental unificado, compatibilidade garantida entre versões — são as mesmas que reduzem custo em loops agenticos.

Isso abre espaço para considerar Go em contextos que hoje vão para Python por inércia: tooling interno, scripts de automação, agentes que geram e executam código repetidamente, CLIs que um agente vai invocar com frequência. O ecossistema de ML fica em Python; a camada de execução e orquestração pode ser Go.

Saiba mais