TRILHA 5

🔧 Construindo um Agente Completo

Codigo Python real, passo a passo. Cada modulo constroi uma parte do agente — ferramentas, memoria, seguranca — com exemplos copiar-colar que funcionam.

4
Modulos
24
Topicos
~2h
Duracao
Intermediario
Nivel

Navegacao Rapida

Conteudo Detalhado
5.1 ~30 min

📐 Arquitetando Seu Agente

Definindo escopo, escolhendo a stack, identificando componentes essenciais e os padroes de design que sustentam o agente.

O que e:

Definir claramente: agente de codigo? Assistente de pesquisa? O escopo define quais ferramentas e quanto de autonomia.

Por que aprender:

Escopo indefinido = agente que tenta tudo e nao faz nada bem.

Conceitos-chave:

Escopo, caso de uso, requisitos minimos.

O que e:

Python como linguagem principal, Ollama como backend local, biblioteca ollama para comunicacao.

Por que aprender:

Python tem o melhor ecossistema para IA; Ollama roda modelos localmente sem custo.

Conceitos-chave:

Python, Ollama, pip install ollama, localhost:11434.

O que e:

Os 5 componentes minimos: AgentLoop, ToolExecutor, ContextManager, MemoryStore, PermissionController.

Por que aprender:

Inspirado nos 8 subsistemas do Claude Code, simplificado para implementacao pratica.

Conceitos-chave:

Componentes, responsabilidade unica, modularidade.

O que e:

Dicionario que mapeia nome → funcao + schema. Inspirado no padrao universal de ferramentas do Claude Code.

Por que aprender:

Registro centralizado permite descoberta, validacao e execucao padronizada.

Conceitos-chave:

Registry pattern, tool_map, tool_schemas.

O que e:

Classe que monitora tokens usados, comprime quando necessario, gerencia sliding window.

Por que aprender:

Sem gerenciamento, contexto estoura em sessoes longas.

Conceitos-chave:

Token counting, sliding window, compression trigger.

O que e:

Classe com regras allow/deny/ask por ferramenta. Configuravel via JSON. Inspirado nas 5 camadas do Claude Code.

Por que aprender:

Seguranca nao e opcional — e requisito.

Conceitos-chave:

Permission rules, JSON config, allow/deny/ask.

Ver Completo
5.2 ~30 min

🔧 Construindo o Sistema de Ferramentas

Classe base, ferramentas de arquivo e shell, busca em codigo, registro e descoberta, execucao paralela vs sequencial.

O que e:

Interface Python com name, description, parameters, execute(). Inspirada no padrao universal do Claude Code.

Por que aprender:

Consistencia permite trocar/adicionar ferramentas sem reescrever o loop.

Conceitos-chave:

Interface, classe base, contrato.

O que e:

read_file: Path(path).read_text(). write_file: mkdir + write_text. Com tratamento de erros e limites de tamanho.

Por que aprender:

Sao as ferramentas mais usadas em qualquer agente de codigo.

Conceitos-chave:

Path, encoding, error handling, size limits.

O que e:

subprocess.run com capture_output, timeout, e validacao do comando. Inspirado nas 23+ verificacoes da BashTool.

Por que aprender:

Shell e o maior vetor de ataque — precisa de sandbox.

Conceitos-chave:

subprocess, timeout, command validation, stdout/stderr.

O que e:

Percorre arquivos com glob, busca com regex, retorna path:line:content. Como o Grep do Claude Code.

Por que aprender:

Encontrar codigo e essencial antes de editar.

Conceitos-chave:

glob, regex, re.search, file traversal.

O que e:

TOOL_MAP = {name: function}, TOOL_SCHEMAS = [{type, function: {name, description, parameters}}]. OpenAI-compatible.

Por que aprender:

O LLM precisa do schema para saber quais ferramentas existem e como chama-las.

Conceitos-chave:

Tool registry, JSON Schema, OpenAI format.

O que e:

Read-only tools (read, search) podem rodar em paralelo. Write tools (edit, shell) devem ser sequenciais. Como isConcurrencySafe().

Por que aprender:

Paralelismo seguro = performance sem bugs.

Conceitos-chave:

Concurrency safety, parallel execution, exclusive access.

Ver Completo
5.3 ~30 min

🧠 Construindo o Sistema de Memoria

Memoria de sessao, persistencia, 4 tipos de memoria, compressao com sliding window e resumo, consolidacao automatica.

O que e:

Lista de dicts [{role, content}] que cresce a cada turno. E o historico da conversa.

Por que aprender:

Sem historico, cada mensagem e isolada — o agente esquece o que fez.

Conceitos-chave:

messages list, role (system/user/assistant/tool), append.

O que e:

Salvar messages em JSON por sessao. Ou SQLite para busca e organizacao. Classe AgentMemory com save/load.

Por que aprender:

Sem persistencia, fechar o terminal perde tudo.

Conceitos-chave:

JSON files, SQLite, session_id, save/load.

O que e:

Memoria do Usuario (preferencias), Feedback (correcoes), Projeto (contexto ativo), Referencia (links externos). Inspirado no Claude Code.

Por que aprender:

Tipos diferentes servem propositos diferentes — nao e tudo igual.

Conceitos-chave:

4 tipos, MEMORY.md, indice + topicos.

O que e:

Quando mensagens excedem limite, manter system + ultimas N. Descartar as mais antigas.

Por que aprender:

Simples, previsivel, funciona bem para janelas pequenas.

Conceitos-chave:

Sliding window, token budget, trim_messages().

O que e:

Usar o proprio LLM (modelo rapido) para resumir o historico antigo em poucas frases.

Por que aprender:

Preserva contexto melhor que simplesmente descartar.

Conceitos-chave:

Summarization, fast model, context packing.

O que e:

A cada N sessoes, consolidar memorias: ler sessoes recentes → extrair fatos → atualizar arquivos de topicos → podar indice.

Por que aprender:

Memorias de curto prazo viram longo prazo, como no sono.

Conceitos-chave:

AutoDream simplificado, consolidacao, poda.

Ver Completo
5.4 ~30 min

🛡️ Seguranca e Permissoes

Por que seguranca e obrigatoria, sandbox, sistema allow/deny/ask, validacao de comandos, limites de recursos e auditoria.

O que e:

Agentes executam comandos reais no seu sistema. Um rm -rf / ou exfiltracao de dados e possivel sem protecao.

Por que aprender:

Seguranca nao e feature — e requisito para qualquer agente que roda comandos.

Conceitos-chave:

Attack surface, risk assessment, defense in depth.

O que e:

subprocess.run com shell=True controlado: timeout, working directory restrito, environment limpo.

Por que aprender:

Isolamento limita o dano de comandos maliciosos ou errados.

Conceitos-chave:

subprocess, sandbox, restricted environment.

O que e:

JSON com regras por ferramenta: {"read_file": "allow", "run_shell": "ask", "delete_file": "deny"}.

Por que aprender:

Equilibrio entre automacao e controle.

Conceitos-chave:

Permission config, allow/deny/ask, user confirmation.

O que e:

Antes de executar run_shell, analisar o comando: bloquear rm -rf, dd, wget para destinos suspeitos, etc.

Por que aprender:

A BashTool do Claude Code tem 23+ verificacoes por um motivo.

Conceitos-chave:

Command parsing, blocklist, pattern matching.

O que e:

Timeout por ferramenta (30s default), limite de memoria, rate limit de chamadas de API.

Por que aprender:

Evitar que o agente trave, consuma recursos demais ou gere custos inesperados.

Conceitos-chave:

Timeout, memory limit, rate limiting.

O que e:

Registrar toda chamada de ferramenta com timestamp, parametros, resultado e duracao.

Por que aprender:

Observabilidade e crucial para depurar, auditar e melhorar o agente.

Conceitos-chave:

Logging, audit trail, structured logs.

Ver Completo
← Trilha Anterior Proxima Trilha →