๐ค O que sao Agentes
Um agente de IA e um LLM que opera em um loop de acao: observar o ambiente, pensar sobre o que fazer, agir usando ferramentas e observar o resultado. Diferente de um chatbot simples que responde uma vez, o agente itera autonomamente ate completar a tarefa.
๐ Paradigma ReAct (Reasoning + Acting)
๐ Niveis de Autonomia
Assistente (Nivel 1)
Responde perguntas e executa acoes simples quando solicitado. O humano controla cada passo. Exemplo: chatbot de FAQ.
Copiloto (Nivel 2)
Sugere acoes e executa com aprovacao. O humano supervisiona e aprova. Exemplo: GitHub Copilot, assistente de email.
Agente (Nivel 3)
Planeja e executa autonomamente multiplos passos. O humano define o objetivo e recebe o resultado. Exemplo: agente de pesquisa, coding agent.
๐ก Exemplos Reais de Agentes
- โข Browsing agents: Navegam a web, leem paginas, clicam em links e extraem informacoes para responder perguntas complexas.
- โข Coding agents: Escrevem codigo, executam testes, debugam erros e iteram ate o codigo funcionar (ex.: Claude Code, Devin).
- โข Research agents: Buscam em multiplas fontes, sintetizam informacoes e produzem relatorios estruturados.
๐บ๏ธ Loop de Planejamento
Agentes mais sofisticados nao apenas reagem โ eles planejam antes de agir. O padrao plan-and-execute separa o planejamento da execucao, permitindo que o agente decomponha tarefas complexas em subtarefas gerenciaveis e replaneje quando algo falha.
๐๏ธ Padrao Plan-and-Execute
โ Quando Planejar
- โ Tarefas com multiplas etapas dependentes
- โ Objetivos complexos que exigem decomposicao
- โ Cenarios onde erros sao custosos (melhor planejar antes)
- โ Tarefas que envolvem coordenar multiplas ferramentas
โ Quando Executar Diretamente
- โ Tarefas simples de um unico passo
- โ Respostas diretas que nao precisam de ferramentas
- โ Quando velocidade e mais importante que precisao
- โ Tarefas repetitivas com fluxo ja conhecido
๐ก Profundidade de Planejamento
Cuidado com over-planning: planejar demais antes de agir pode ser tao ruim quanto nao planejar. O ideal e planejar 2-3 passos a frente e replanejar apos cada execucao. Planejamento muito detalhado tende a ficar obsoleto rapidamente quando o agente descobre novas informacoes durante a execucao.
๐ง Memoria e Estado
Um agente eficaz precisa manter contexto entre iteracoes. Sem memoria, o agente esquece o que ja fez, repete acoes e perde coerencia. Existem diferentes tipos de memoria, cada uma servindo um proposito especifico no funcionamento do agente.
Short-term Memory (Buffer de Conversa)
O historico recente da conversa โ as ultimas mensagens trocadas entre o usuario, o agente e as ferramentas. E a forma mais simples de memoria.
- Vantagem: Simples de implementar, mantem contexto imediato.
- Limitacao: Restrita ao tamanho da context window do modelo.
Long-term Memory (Vector Store)
Informacoes persistidas em um banco de dados vetorial. O agente pode buscar memorias relevantes de sessoes anteriores usando busca semantica.
- Vantagem: Persiste entre sessoes, escala para milhares de interacoes.
- Limitacao: Requer infraestrutura de vector store (Pinecone, Weaviate, ChromaDB).
Working Memory (Scratchpad)
Uma area temporaria onde o agente armazena notas, resultados intermediarios e o estado atual da tarefa. Funciona como um "bloco de notas" mental.
- Vantagem: Permite ao agente rastrear progresso e acumular informacoes entre passos.
- Limitacao: Consome espaco na context window; precisa ser podada periodicamente.
Summary Memory (Resumo Compactado)
Quando o historico fica longo demais, o agente gera um resumo das interacoes passadas e substitui as mensagens originais. Ideal para conversas longas.
- Vantagem: Mantem contexto essencial sem estourar a context window.
- Limitacao: Perde detalhes especificos durante a sumarizacao.
โ ๏ธ Gerenciamento de Context Window
A maior limitacao pratica de agentes e o tamanho da context window. Cada iteracao do loop adiciona mais tokens (pensamento, acao, resultado). Estrategias para gerenciar:
- โข Sliding window: Manter apenas as N ultimas iteracoes no contexto
- โข Sumarizacao periodica: A cada 5-10 iteracoes, resumir o historico
- โข Externalizar estado: Salvar resultados intermediarios fora do contexto e recuperar quando necessario
๐ฅ Multi-Agentes
Em vez de um unico agente fazendo tudo, sistemas multi-agentes dividem o trabalho entre agentes especializados. Cada agente tem um papel, ferramentas e instrucoes proprias. A coordenacao entre eles e o desafio central.
๐๏ธ Arquiteturas Multi-Agentes
Supervisor (Orquestrador)
Um agente central recebe a tarefa, decide qual agente especialista deve trabalhar em cada parte e consolida os resultados. O supervisor controla o fluxo e resolve conflitos. E o padrao mais comum e previsivel.
Peer-to-Peer (Colaborativo)
Agentes se comunicam diretamente entre si, sem supervisor central. Cada agente decide quando precisa de ajuda e a quem pedir. Mais flexivel, mas mais dificil de controlar e debugar.
Pipeline (Sequencial)
Agentes trabalham em sequencia โ o output de um e o input do proximo. Similar a uma linha de producao. Simples de implementar, mas limitado a fluxos lineares.
๐ง Frameworks Multi-Agentes
- โข CrewAI: Define agentes com roles, goals e backstories. Suporta tarefas sequenciais e paralelas. API simples e intuitiva.
- โข AutoGen (Microsoft): Agentes conversam entre si para resolver tarefas. Suporta human-in-the-loop e execucao de codigo.
- โข LangGraph: Modelagem de agentes como grafos de estado. Maximo controle sobre o fluxo, ideal para sistemas complexos em producao.
๐ก Especializacao vs. Generalismo
Agentes especializados (cada um com poucas ferramentas e instrucoes focadas) tendem a performar melhor que um agente generalista com muitas ferramentas. A razao: quanto mais opcoes o LLM tem, maior a chance de escolher errado. Divida responsabilidades claramente entre agentes.
๐ก๏ธ Limites e Seguranca
Agentes autonomos executam acoes reais no mundo โ enviam emails, modificam arquivos, fazem chamadas de API. Sem guardrails adequados, um agente pode causar danos serios. Seguranca nao e opcional, e a base de qualquer sistema agente em producao.
โ ๏ธ Riscos de Agentes Autonomos
- โข Loops infinitos: O agente pode ficar preso em um ciclo sem convergir para uma solucao, consumindo tokens e recursos indefinidamente.
- โข Acoes destrutivas: Deletar arquivos, enviar mensagens erradas, modificar dados em producao sem confirmacao.
- โข Exfiltracao de dados: Um agente com acesso a dados sensiveis e a internet pode vazar informacoes involuntariamente.
- โข Prompt injection via ferramentas: Dados retornados por ferramentas podem conter instrucoes maliciosas que desviam o comportamento do agente.
๐ Praticas de Seguranca Essenciais
โ Fazer
- โ Definir limites claros de iteracoes (max 20-50)
- โ Implementar circuit breakers para falhas consecutivas
- โ Validar outputs de ferramentas antes de usar
- โ Testar em ambiente staging antes de producao
โ Evitar
- โ Dar acesso irrestrito a sistemas criticos
- โ Confiar cegamente nas decisoes do agente
- โ Ignorar logs e nao monitorar execucoes
- โ Permitir acoes irreversiveis sem confirmacao
๐งช Exercicio: Agente com Ferramentas
Neste exercicio, voce vai construir um agente simples que usa 3 ferramentas para completar uma tarefa de pesquisa. O objetivo e praticar o loop ReAct e entender como um agente decide qual ferramenta usar em cada passo.
๐ง Definicao das 3 Ferramentas
๐ search(query)
Busca informacoes na web ou em uma base de dados. Recebe uma query de busca e retorna trechos relevantes. Simule com 5-10 documentos pre-definidos.
๐งฎ calculate(expression)
Executa calculos matematicos. Recebe uma expressao e retorna o resultado. Util para comparacoes numericas, porcentagens e analises quantitativas.
โ๏ธ write(title, content)
Escreve o resultado final em formato estruturado. Recebe titulo e conteudo, produz a resposta formatada para o usuario.
๐ Implementacao do Loop ReAct
Tarefa: "Qual e a populacao total dos 3 maiores
paises da America do Sul?"
Iteracao 1:
Pensamento: Preciso descobrir os 3 maiores paises.
Acao: search("3 maiores paises America do Sul por area")
Resultado: Brasil, Argentina, Peru...
Iteracao 2:
Pensamento: Agora preciso das populacoes de cada um.
Acao: search("populacao Brasil Argentina Peru 2025")
Resultado: Brasil 215M, Argentina 46M, Peru 34M...
Iteracao 3:
Pensamento: Tenho os dados, vou calcular o total.
Acao: calculate("215000000 + 46000000 + 34000000")
Resultado: 295000000
Iteracao 4:
Pensamento: Tenho a resposta completa. Vou escrever.
Acao: write("Populacao dos 3 maiores paises", ...)
Resultado: Relatorio final entregue. โ
๐ฏ Criterios de Avaliacao
- 1. O agente escolheu a ferramenta certa em cada passo?
- 2. Os "pensamentos" sao coerentes e levam a proxima acao logica?
- 3. O agente convergiu para a resposta em poucas iteracoes (sem loops desnecessarios)?
- 4. O resultado final esta correto e bem estruturado?
- 5. Teste com uma tarefa impossivel โ o agente reconhece e para?
๐ Resumo do Modulo
Proximo Modulo:
3.5 โ Continue aprofundando seus conhecimentos na trilha avancada