ROTA · 6 CLASSES · 1 GRUPOS
Construa um Agente de IA
Monte o ciclo de ferramentas, memória e limites de um agente em Go.
Pré-requisitos orientam, mas nunca bloqueiam. Cinco classes fundamentais e o bônus Go 1.27 são grátis com conta.O ARCO DA ROTA
ORDEM RECOMENDADA
6 classes, do primeiro passo ao fechamento.
Cada classe leva cerca de 15–25 minutos no novo formato de slides. Você pode sair da ordem quando outro nó fizer mais sentido.
- 01Construa um Agente de IAO loop que transforma chat em agente
Implemente o ciclo modelo, tool e resultado que permite a um agente agir antes de responder.
- 02Construa um Agente de IADefina tools como contratos em Go
Modele nomes, descrições e parâmetros de tools para o modelo escolher ações válidas.
- 03Construa um Agente de IAFaça parsing e dispatch sem confiar no modelo
Valide chamadas JSON e despache apenas para handlers registrados com erros observáveis.
- 04Construa um Agente de IAPreserve a memória da conversa
Modele histórico, correlação de tool calls e compactação sem quebrar o protocolo.
- 05Construa um Agente de IAColoque guardrails e limites antes dos efeitos
Restrinja tools, entradas e orçamento para o agente falhar de forma controlada.
- 06Construa um Agente de IACapstone: agente completo com artefato
Monte um agente multi-turn com fixtures, tools, memória, limites e um relatório Markdown demonstrável.
PRÉVIA DA PRIMEIRA CLASSE
O loop que transforma chat em agente
history := []Message{{Role: "user", Content: request}}
for turn := 0; turn < maxTurns; turn++ {
decision, err := model.Next(history)
if err != nil { return "", err }
if decision.Final != "" { return decision.Final, nil }
tool, ok := tools[decision.Tool]
if !ok { return "", fmt.Errorf("tool desconhecida") }
output, err := tool(decision.Input)
if err != nil { return "", err }
// Pedido e resultado alimentam a próxima decisão.
history = append(history, Message{Role: "assistant", Content: decision.Tool},
Message{Role: "tool", Content: output})
}
Uma conversa responde com texto. Um agente precisa fazer algo no meio do caminho. Imagine uma pessoa em uma central de atendimento: ela lê o pedido, decide consultar um sistema, anota o resultado e só então responde. Se ela consultar e jogar fora a anotação, a próxima decisão começa cega. Se continuar consultando para sempre, o atendimento nunca termina. O loop do agente é essa rotina operacional transformada em código.
O risco não é apenas receber uma resposta ruim. Um laço sem condição de parada pode consumir orçamento indefinidamente; um resultado omitido faz o modelo repetir a mesma chamada; uma tool escolhida por texto livre pode executar algo que a aplicação nunca ofereceu. Por isso o agente não é “um prompt maior”. Ele é uma máquina de estados sob controle do seu programa.
Em cada turno, o modelo devolve uma de duas intenções: pedir uma tool ou encerrar com resposta final. No primeiro caso, Go valida o nome, executa uma função registrada, acrescenta pedido e resultado ao histórico e consulta o modelo novamente. No segundo, o loop devolve a resposta. A API do modelo é uma dependência; a política do loop pertence à aplicação.
Fixtures gravadas substituem a rede durante aprendizado e teste. Elas reproduzem uma sequência conhecida — lookup, resultado, resposta final — e deixam você observar o protocolo. Depois, trocar a fixture pelo cliente estudado no mini Claude API não muda o núcleo. Esse isolamento é a razão do pré-requisito: você já conhece mensagens e tool calling; agora passa a orquestrá-los.
Há duas perguntas úteis ao revisar esse desenho. Primeiro: qual dado entra no próximo turno e de onde ele veio? Segundo: qual trecho autoriza um efeito? Se a resposta depender de convenção oral ou de texto escondido no prompt, o programa está delegando política demais. Tipos, registros e limites devem responder essas perguntas no código.
A visualização acompanha o estado, não o tempo de parede. Cada frame adiciona uma consequência observável do anterior. Isso permite conferir a sequência com uma fixture e repetir a execução byte por byte. Em um cliente real, latência e conteúdo variam; o protocolo e as guardas permanecem os mesmos.
Antes de rodar, preveja quantas vezes Next será chamado e qual conteúdo estará no último item do histórico. Depois altere a fixture para pedir upper duas vezes antes do final. Por fim, reduza o limite para um turno e observe que a resposta final deixa de ser alcançável. A pergunta é: qual evento permite ao próximo turno saber o que a tool produziu?
Entre para continuar nos slides, rodar o código e enfrentar os desafios.
Começar pela rota →ESTA ROTA E TODAS AS OUTRAS
Qualquer plano abre os 192 nós.
Mensal R$19,90 · anual R$149 · lifetime R$499. Todos têm garantia de 7 dias.