TRILHA 6

๐Ÿ  Agente Local com Qwen + Ollama

Usando o Claude Code como referencia, construa um agente que roda 100% local com modelos Qwen via Ollama. Do setup ao agente completo, com benchmarks e alternativas.

4
Modulos
24
Topicos
~2h
Duracao
Avancado
Nivel

Navegacao Rapida

Conteudo Detalhado
6.1 ~30 min

๐Ÿ  Configurando o Ambiente Local

Instalando Ollama, escolhendo modelos Qwen por hardware, configurando context window e primeiro chat funcional.

O que e:

Ollama roda LLMs localmente via REST API em localhost:11434. Instalacao: curl -fsSL https://ollama.com/install.sh | sh.

Por que aprender:

Sem custo de API, privacidade total, sem limites.

Conceitos-chave:

Ollama, localhost:11434, REST API, model pull.

O que e:

Familia Qwen3 (0.6B-235B), Qwen3-Coder (30B-480B MoE), Qwen3.5 (0.8B-397B, 256K context).

Por que aprender:

Qwen3-Coder-Next atinge 69.6% no SWE-bench โ€” proximo de Claude.

Conceitos-chave:

Qwen3, MoE, dense vs sparse, SWE-bench.

O que e:

8GB โ†’ qwen3:8b; 16GB โ†’ qwen3-coder:30b-a3b (MoE); 24GB โ†’ qwen3:32b; 40GB+ โ†’ qwen3-coder-next.

Por que aprender:

Modelo errado para seu hardware = lento ou impossivel.

Conceitos-chave:

VRAM, quantizacao Q4/Q6/Q8, MoE efficiency.

O que e:

Ollama default e 4096 tokens โ€” muito pouco! Configurar num_ctx=65536 ou OLLAMA_CONTEXT_LENGTH.

Por que aprender:

Agentes precisam de contexto grande para historico + tools + resultados.

Conceitos-chave:

num_ctx, context length, KV cache, kv_cache_type q4_0.

O que e:

pip install ollama; from ollama import chat; response = chat(model='qwen3:8b', messages=[...]).

Por que aprender:

Biblioteca oficial com API limpa e suporte a streaming.

Conceitos-chave:

pip install, chat(), AsyncClient, stream=True.

O que e:

Primeiro chat funcional: enviar mensagem, receber resposta, verificar que tudo funciona.

Por que aprender:

Validar o setup antes de construir o agente.

Conceitos-chave:

Hello world, smoke test, options={'num_ctx': 65536}.

Ver Completo
6.2 ~30 min

๐Ÿ”— Tool Calling com LLMs Locais

Como funciona tool calling com Ollama, formato dos schemas, fluxo completo, thinking modes e diferencas entre local e API.

O que e:

Ollama /api/chat aceita tools array no mesmo formato da OpenAI. O modelo gera tool_calls no response.

Por que aprender:

Tool calling e o que transforma chat em agente.

Conceitos-chave:

/api/chat, tools parameter, tool_calls response.

O que e:

{type: "function", function: {name, description, parameters: {type: "object", properties, required}}}.

Por que aprender:

Formato padrao permite trocar de modelo sem mudar codigo.

Conceitos-chave:

JSON Schema, OpenAI format, function definition.

O que e:

Envia messages+tools โ†’ modelo retorna tool_calls โ†’ executa โ†’ adiciona resultado como role:tool โ†’ repete.

Por que aprender:

E o mesmo loop da Trilha 4, agora implementado de verdade.

Conceitos-chave:

Tool dispatch loop, role:tool, message history.

O que e:

Qwen3 pode pensar (<think>...</think>) ou responder direto. Non-thinking para tools rapidos; thinking para planejamento.

Por que aprender:

Thinking gasta tokens extras; usar seletivamente.

Conceitos-chave:

Thinking mode, <think> tags, enable_thinking, strip from history.

O que e:

Com stream=True + tools, tool calls nao sao incrementais โ€” modelo completa JSON antes. Usar stream=False para tool turns.

Por que aprender:

Limitacao pratica que afeta o design do loop.

Conceitos-chave:

Stream + tools limitation, hybrid approach.

O que e:

Local: sem custo, mais lento, contexto menor, tool calling menos confiavel. API: mais rapido, mais caro, melhor tool calling.

Por que aprender:

Entender trade-offs para escolher quando usar cada um.

Conceitos-chave:

Latency, cost, reliability, context size.

Ver Completo
6.3 ~30 min

๐Ÿ—๏ธ Montando o Agente Completo

O agent loop completo, integracao de ferramentas da T5, memoria com persistencia, compressao para janelas menores e otimizacoes.

O que e:

O loop completo em ~30 linhas: messages โ†’ chat(model, messages, tools) โ†’ tool_calls? โ†’ execute โ†’ append โ†’ repeat.

Por que aprender:

O agente inteiro em codigo que cabe numa tela.

Conceitos-chave:

agent_loop(), max_iterations, chat() call.

O que e:

Importar TOOL_MAP e TOOL_SCHEMAS da T5, integrar no agent loop com dispatch automatico.

Por que aprender:

Reuso dos componentes ja construidos.

Conceitos-chave:

Tool integration, dispatch, TOOL_MAP[name](**args).

O que e:

AgentMemory.save() apos cada turno, load() para retomar sessao.

Por que aprender:

Persistencia entre sessoes sem perder contexto.

Conceitos-chave:

Session persistence, save/load, session_id.

O que e:

Modelos locais tem 8K-32K vs 200K da API. Compressao agressiva: trim a cada turno, truncar outputs longos (10K chars max).

Por que aprender:

Sem compressao, agente local quebra em 3-4 iteracoes.

Conceitos-chave:

Aggressive trimming, output truncation, token budget.

O que e:

Qwen3 thinking mode emite <think>...</think>. Remover antes de salvar no historico com regex.

Por que aprender:

Thinking tokens consomem contexto sem valor para o historico.

Conceitos-chave:

re.sub(r'<think>.*?</think>', '', content, flags=re.DOTALL).

O que e:

keep_alive='10m' (nao descarrega modelo), temperature=0.6, top_p=0.95, top_k=20 (recomendado Qwen3).

Por que aprender:

Otimizacoes fazem diferenca real em velocidade e qualidade.

Conceitos-chave:

keep_alive, temperature, sampling parameters.

Ver Completo
6.4 ~30 min

๐Ÿš€ Do Local ao Producao

LiteLLM proxy, multi-agente local, benchmarks reais, decisao local vs API, frameworks alternativos e o futuro hibrido.

O que e:

LiteLLM como proxy OpenAI-compatible que roteia para Ollama. Permite usar claude CLI com modelos locais.

Por que aprender:

Aproveitar a UX do Claude Code com modelos gratuitos.

Conceitos-chave:

LiteLLM, proxy, ANTHROPIC_BASE_URL, config.yaml.

O que e:

Spawnar multiplos processos agente com subprocess ou multiprocessing. Cada um com seu proprio contexto.

Por que aprender:

Paralelismo para tarefas complexas, como o Army Mode do Claude Code.

Conceitos-chave:

multiprocessing, subprocess, fork, coordenacao.

O que e:

Qwen3-Coder-Next: 69.6% SWE-bench. Claude Opus: 72-77%. Qwen3:8b: ~35%. Custo: local $0, API $$$.

Por que aprender:

Dados concretos para decidir qual modelo usar.

Conceitos-chave:

SWE-bench, BFCL, latencia, custo/beneficio.

O que e:

Local para: privacidade, custo zero, desenvolvimento, experimentacao. API para: qualidade maxima, contexto grande, producao critica.

Por que aprender:

Nao e binario โ€” o ideal e hibrido.

Conceitos-chave:

Trade-offs, use cases, hybrid approach.

O que e:

smolagents (code-first, Ollama nativo), LangGraph (grafos complexos), Qwen-Agent (otimizado para Qwen).

Por que aprender:

Nao precisa construir tudo do zero se um framework serve.

Conceitos-chave:

smolagents, LangGraph, Qwen-Agent, CrewAI.

O que e:

Agentes que usam modelo local para tarefas simples e API para tarefas complexas. Routing inteligente.

Por que aprender:

Combinar o melhor dos dois mundos.

Conceitos-chave:

Hybrid agents, model routing, cost optimization, fallback.

Ver Completo
โ† Trilha Anterior Voltar ao Inicio โ†’