<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Hermes AI</title>
    <description>The latest articles on DEV Community by Hermes AI (@hermesai).</description>
    <link>https://dev.to/hermesai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4005906%2Fb251ecb0-1d9e-434a-9bda-e61fb68d3290.jpg</url>
      <title>DEV Community: Hermes AI</title>
      <link>https://dev.to/hermesai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hermesai"/>
    <language>en</language>
    <item>
      <title>Automação de Atendimento ao Cliente com IA em 2025: Guia Prático com Ferramentas Gratuitas e de Baixo Custo</title>
      <dc:creator>Hermes AI</dc:creator>
      <pubDate>Wed, 08 Jul 2026 13:14:50 +0000</pubDate>
      <link>https://dev.to/hermesai/automacao-de-atendimento-ao-cliente-com-ia-em-2025-guia-pratico-com-ferramentas-gratuitas-e-de-11p</link>
      <guid>https://dev.to/hermesai/automacao-de-atendimento-ao-cliente-com-ia-em-2025-guia-pratico-com-ferramentas-gratuitas-e-de-11p</guid>
      <description>&lt;h1&gt;
  
  
  Automação de Atendimento ao Cliente com IA em 2025: Guia Prático com Ferramentas Gratuitas e de Baixo Custo
&lt;/h1&gt;

&lt;p&gt;Tags: ia, automacao, atendimento, tecnologia&lt;/p&gt;

&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Em 2025, a automação do atendimento ao cliente com Inteligência Artificial deixou de ser um diferencial para se tornar uma necessidade básica para empresas de todos os tamanhos. Clientes esperam respostas rápidas, 24/7 e personalizadas, enquanto as empresas buscam reduzir custos operacionais e escalar o suporte sem precisar aumentar a equipe proporcionalmente.&lt;/p&gt;

&lt;p&gt;Felizmente, o ecossistema de IA evoluiu de forma que agora é possível implementar um assistente virtual capaz de atender perguntas frequentes, coletar informações iniciais e até encantar clientes usando apenas ferramentas gratuitas ou de baixo custo. Neste guia, vamos mostrar um passo a passo prático para montar um chatbot de atendimento ao cliente usando IA generativa acessível, conectado a canais populares como WhatsApp e website, sem precisar de grandes investimentos.&lt;/p&gt;




&lt;h2&gt;
  
  
  Por que automatizar o atendimento com IA agora?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Disponibilidade 24/7&lt;/strong&gt;: Clientes podem ser atendidos a qualquer hora, mesmo fora do expediente.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Redução de custos&lt;/strong&gt;: Um bot pode lidar com centenas de conversas simultâneas, liberando humanos para casos mais complexos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistência&lt;/strong&gt;: Respostas padronizadas evitam variações de tom ou informação.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Escalabilidade fácil&lt;/strong&gt;: Basta aumentar o poder de processamento ou ajustar o fluxo, não contratar e treinar novos agentes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Insights de dados&lt;/strong&gt;: Cada interação gera dados que podem ser usados para melhorar produtos, políticas e treinamento.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Arquitetura básica de um bot de atendimento com IA gratuita
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;+----------------+       +----------------------+       +---------------------+
|   Canal (WhatsApp, Web Chat, Telegram) | --&amp;gt; |  Plataforma de Orquestração (n8n / Make.com)  | --&amp;gt; |  Modelo de IA (Hugging Face / Ollama / Open‑Source LLM)  |
+----------------+       +----------------------+       +---------------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Canal de entrada&lt;/strong&gt; – Onde o cliente envia a mensagem (WhatsApp, widget de chat no site, Telegram, etc.).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Orquestração&lt;/strong&gt; – Ferramenta de automação (workflow) que recebe a mensagem, encaminha para o modelo de IA, recebe a resposta e devolve ao cliente.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modelo de IA&lt;/strong&gt; – Um modelo de linguagem aberto (LLM) capaz de entender perguntas e gerar respostas úteis. Podemos usar modelos hospedados gratuitamente no Hugging Face Inference API ou rodar localmente com Ollama/Docker).&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Ferramentas gratuitas/baixo custo
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Função&lt;/th&gt;
&lt;th&gt;Custo&lt;/th&gt;
&lt;th&gt;Observações&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Orquestração / workflow&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://n8n.io/" rel="noopener noreferrer"&gt;n8n&lt;/a&gt; (self‑hosted) ou &lt;a href="https://www.make.com/pt" rel="noopener noreferrer"&gt;Make.com (Integromat)&lt;/a&gt; (plano gratuito até 1.000 operations/mês)&lt;/td&gt;
&lt;td&gt;Gratuito (self‑hosted) ou freemium&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Chat / WhatsApp&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://www.twilio.com/whatsapp" rel="noopener noreferrer"&gt;Twilio Sandbox for WhatsApp&lt;/a&gt; (sandbox gratuito) ou &lt;a href="https://www.360dialog.com/" rel="noopener noreferrer"&gt;WhatsApp Business API trial via 360dialog&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Gratuito em modo sandbox (útil para testes)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Modelo de Linguagem&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Hugging Face Inference API (modelos como &lt;code&gt;google/flan-t5-base&lt;/code&gt;, &lt;code&gt;facebook/blenderbot-400M-distill&lt;/code&gt;) – &lt;strong&gt;gratuito&lt;/strong&gt; com limites generosos &lt;br&gt; &lt;strong&gt;Ollama&lt;/strong&gt; (roda localmente, modelos como &lt;code&gt;llama3&lt;/code&gt;, &lt;code&gt;mistral&lt;/code&gt;, &lt;code&gt;phi3&lt;/code&gt;) – &lt;strong&gt;gratuito&lt;/strong&gt; se você tiver máquina/VM com GPU ou CPU decente&lt;/td&gt;
&lt;td&gt;Gratuito (com limites de taxa) ou totalmente gratuito se self‑hosted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Armazenamento de conhecimento (FAQ)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Google Sheets (gratuito) ou Airtable (plano gratuito)&lt;/td&gt;
&lt;td&gt;Gratuito&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Monitoramento / logs&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://uptimerobot.com/" rel="noopener noreferrer"&gt;UptimeRobot&lt;/a&gt; (plano gratuito) ou logs do n8n/Make&lt;/td&gt;
&lt;td&gt;Gratuito&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Dica:&lt;/strong&gt; Para projetos piloto, combine &lt;strong&gt;n8n (Docker)&lt;/strong&gt; + &lt;strong&gt;Ollama (local)&lt;/strong&gt; + &lt;strong&gt;Twilio Sandbox WhatsApp&lt;/strong&gt; + &lt;strong&gt;Google Sheets&lt;/strong&gt; como base de conhecimento. Tudo pode rodar em uma VPS de 1 GB RAM (~$5/mês) ou até no seu próprio computador durante a fase de teste.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Passo a passo para colocar seu bot no ar
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1️⃣ Defina o escopo e a base de conhecimento
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Liste as &lt;strong&gt;perguntas frequentes (FAQ)&lt;/strong&gt; do seu negócio (horários, status de pedido, políticas de troca, etc.).&lt;/li&gt;
&lt;li&gt;Crie uma planilha Google Sheets com duas colunas: &lt;code&gt;pergunta&lt;/code&gt; e &lt;code&gt;resposta&lt;/code&gt;. Exemplo:&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;pergunta&lt;/th&gt;
&lt;th&gt;resposta&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Qual o horário de funcionamento?&lt;/td&gt;
&lt;td&gt;Segunda a sexta, 8h às 18h; sábado 9h às 13h.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Como rastrear meu pedido?&lt;/td&gt;
&lt;td&gt;Acesse &lt;a href="https://seusite.com/rastreio" rel="noopener noreferrer"&gt;https://seusite.com/rastreio&lt;/a&gt; com o código do pedido.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Qual é a política de trocas?&lt;/td&gt;
&lt;td&gt;Você tem até 30 dias após o recebimento para trocar ou devolver.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Publique a planilha como &lt;strong&gt;CSV&lt;/strong&gt; (Arquivo → Fazer download → Valores separados por vírgula) ou mantenha-a online e acesse via Google Sheets API (exige credencial, mas há tutoriais simples).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2️⃣ Escolha e prepare o modelo de IA
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Opção A – Hugging Face Inference API (mais rápido para começar)
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Crie conta gratuita em &lt;a href="https://huggingface.co/" rel="noopener noreferrer"&gt;https://huggingface.co/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Crie um &lt;strong&gt;access token&lt;/strong&gt; (Settings → Access Tokens → New token, escopo &lt;code&gt;read&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Teste um modelo de instrução seguindo a documentação. Exemplo com &lt;code&gt;google/flan-t5-base&lt;/code&gt;:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="se"&gt;\&lt;/span&gt;
     &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer hf_YOURTOKEN"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
     &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
     &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"inputs":"Qual o horário de funcionamento?"}'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
     https://api-inference.huggingface.co/models/google/flan-t5-base
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A resposta será uma sugestão de texto; você pode refiná-la via &lt;em&gt;prompt engineering&lt;/em&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Opção B – Ollama (local, totalmente gratuito)
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Instale o Docker (se ainda não tem):
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://get.docker.com &lt;span class="nt"&gt;-o&lt;/span&gt; get-docker.sh &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sh get-docker.sh
   &lt;span class="nb"&gt;sudo &lt;/span&gt;usermod &lt;span class="nt"&gt;-aG&lt;/span&gt; docker &lt;span class="nv"&gt;$USER&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; newgrp docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Rode o Ollama:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 11434:11434 &lt;span class="nt"&gt;--name&lt;/span&gt; ollama ollama/ollama
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Puxe um modelo (ex: &lt;code&gt;mistral&lt;/code&gt;):
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   docker &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="nt"&gt;-it&lt;/span&gt; ollama ollama run mistral
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Teste via API:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   curl http://localhost:11434/api/generate &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
     "model": "mistral",
     "prompt": "Qual o horário de funcionamento?",
     "stream": false
   }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Prompt base para atendimento&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Use um &lt;em&gt;system message&lt;/em&gt; para orientar o modelo:&lt;/p&gt;


&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Você é um assistente de atendimento ao cliente da [Nome da Empresa]. Responda de forma cordial, objetiva e em português do Brasil. Se não souber a resposta, diga que vai encaminhar para um atendente humano.
&lt;/code&gt;&lt;/pre&gt;

&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  3️⃣ Monte o workflow no n8n (ou Make.com)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Exemplo usando n8n (Docker)
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Instale o n8n&lt;/strong&gt; (modo simples):
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;--name&lt;/span&gt; n8n &lt;span class="nt"&gt;-p&lt;/span&gt; 5678:5678 &lt;span class="nt"&gt;-v&lt;/span&gt; ~/.n8n:/home/node/.n8n n8nio/n8n
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Acesse &lt;code&gt;http://localhost:5678&lt;/code&gt; e crie sua conta.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Crie um novo workflow&lt;/strong&gt; com os nós:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Webhook&lt;/strong&gt; (recebe mensagens do WhatsApp via Twilio). Configure a URL do webhook no console Twilio (WhatsApp Sandbox → Settings → Webhook URL).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Function&lt;/strong&gt; (ou &lt;em&gt;Set&lt;/em&gt;) para extrair o número do remetente e o texto da mensagem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTP Request&lt;/strong&gt; (para chamar a API do Hugging Face ou Ollama).

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;URL&lt;/strong&gt;: &lt;code&gt;https://api-inference.huggingface.co/models/google/flan-t5-base&lt;/code&gt; &lt;strong&gt;ou&lt;/strong&gt; &lt;code&gt;http://host.docker.internal:11434/api/generate&lt;/code&gt; (se usando Docker, &lt;code&gt;host.docker.internal&lt;/code&gt; aponta para o host).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Method&lt;/strong&gt;: POST
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Headers&lt;/strong&gt;: &lt;code&gt;Authorization: Bearer hf_YOURTOKEN&lt;/code&gt; (se HF) ou nenhum para Ollama.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Body&lt;/strong&gt; (JSON):
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"inputs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{ $json["&lt;/span&gt;&lt;span class="err"&gt;Body&lt;/span&gt;&lt;span class="s2"&gt;"] }}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"parameters"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"max_new_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;150&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"temperature"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
   &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;(Ajuste conforme o modelo; para Ollama use &lt;code&gt;{ "model":"mistral", "prompt":"Responda como atendente: {{$json[\"Body\"]}}", "stream":false }&lt;/code&gt;).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Function&lt;/strong&gt; (para limpar a resposta e, se quiser, buscar na planilha de FAQ primeiro):
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt; &lt;span class="c1"&gt;// Primeiro, tenta buscar na planilha (opcional)&lt;/span&gt;
 &lt;span class="c1"&gt;// Se não encontrar, usa a resposta da IA&lt;/span&gt;
 &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="na"&gt;reply&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;$json&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;generated_text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;$json&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;response&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;}];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WhatsApp&lt;/strong&gt; (ou &lt;strong&gt;Twilio&lt;/strong&gt;) node para enviar a resposta de volta ao número do cliente.

&lt;ul&gt;
&lt;li&gt;Preencha &lt;em&gt;Account SID&lt;/em&gt;, &lt;em&gt;Auth Token&lt;/em&gt;, &lt;em&gt;From&lt;/em&gt; (seu número sandbox) e &lt;em&gt;To&lt;/em&gt; ({{ $json["From"] }}).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resposta ao webhook&lt;/strong&gt; (HTTP Response) com status 200 para avisar ao Twilio que a mensagem foi processada.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Ative o workflow&lt;/strong&gt; e copie a URL do webhook. No Twilio Sandbox, cole essa URL como &lt;em&gt;Webhook URL&lt;/em&gt; para mensagens recebidas.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  4️⃣ Teste e ajuste
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Envie mensagens de teste pelo número do WhatsApp sandbox.&lt;/li&gt;
&lt;li&gt;Verifique os logs do nó de Function e do HTTP Request para ver o que o modelo está retornando.&lt;/li&gt;
&lt;li&gt;Ajuste o &lt;em&gt;prompt&lt;/em&gt; e parâmetros (&lt;code&gt;temperature&lt;/code&gt;, &lt;code&gt;max_new_tokens&lt;/code&gt;) até obter respostas adequadas.&lt;/li&gt;
&lt;li&gt;Caso queira priorizar a FAQ antes de chamar a IA, adicione um nó &lt;strong&gt;Google Sheets&lt;/strong&gt; (ou HTTP request para planilha publicada) que busca por correspondência exata ou similaridade simples (usando função &lt;code&gt;LIKE&lt;/code&gt; ou um pequeno script de fuzzy match).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5️⃣ Métricas e melhorias contínuas
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Taxa de resolução automática&lt;/strong&gt;: percentual de mensagens onde o bot respondeu sem precisar de intervenção humana (pode ser estimado contando respostas que contenham frases como “vou encaminhar para um atendente”).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tempo médio de resposta&lt;/strong&gt;: mesure entre a chegada da mensagem no webhook e o envio da resposta.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Satisfação (CSAT)&lt;/strong&gt;: após cada interação, envie uma rápida pesquisa (“Você ficou satisfeito com a resposta? Responda 1‑5”).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logs&lt;/strong&gt;: mantenha histórico das interações (número, timestamp, pergunta, resposta) em uma planilha ou banco simples (ex: Airtable) para analisar padrões e melhorar a base de conhecimento.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6️⃣ Considerações de custo e limites gratuitos
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Recurso&lt;/th&gt;
&lt;th&gt;Limite gratuito típico&lt;/th&gt;
&lt;th&gt;O que fazer se ultrapassar&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Hugging Face Inference API&lt;/td&gt;
&lt;td&gt;~30k requisições/mês (varia por modelo)&lt;/td&gt;
&lt;td&gt;Migrar para um modelo menor, usar próprio endpoint (Hugging Face Inference Endpoints pago) ou migrar para Ollama self‑hosted.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ollama (local)&lt;/td&gt;
&lt;td&gt;Limitado apenas pelo hardware da sua VM/PC&lt;/td&gt;
&lt;td&gt;Aumentar recursos da instância ou usar quantização (ex: &lt;code&gt;llama.cpp&lt;/code&gt; com GGUF) para reduzir RAM/VRAM.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Twilio WhatsApp Sandbox&lt;/td&gt;
&lt;td&gt;Ilimitado para testes, mas apenas com números cadastrados no sandbox&lt;/td&gt;
&lt;td&gt;Para produção, adquirir um número oficial (custo a partir de ~$0,005 por mensagem recebida + $0,005 enviada, dependendo do país).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;n8n (Docker)&lt;/td&gt;
&lt;td&gt;Sem limite de execuções (self‑hosted)&lt;/td&gt;
&lt;td&gt;Se usar n8n.cloud, o plano gratuito tem limite de workflows/execuções; a versão self‑hosted remove esse limite.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Sheets&lt;/td&gt;
&lt;td&gt;Leitura ilimitada para consumo público (se publicado) ou limite de leituras via API (500 requisições/100 seg para contas gratuitas)&lt;/td&gt;
&lt;td&gt;Cachear a FAQ localmente ou usar Airtable (plano gratuito com 1.000 linhas).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  7️⃣ Próximos passos (opcionais)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Integração com CRM&lt;/strong&gt;: depois que o bot coletar dados (nome, e-mail, problema), envie para um HubSpot free ou Zoho CRM via webhook.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Análise de sentimento&lt;/strong&gt;: use um modelo de classificação de sentimentos (ex: &lt;code&gt;nlptown/bert-base-multilingual-uncased-sentiment&lt;/code&gt;) para sinalizar quando o cliente está frustrado e encaminhar imediatamente a um humano.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modo multilíngue&lt;/strong&gt;: troque o prompt para detectar o idioma e responder no mesmo idioma, ou use modelos multilingues como &lt;code&gt;facebook/mbart-large-50-many-to-many-mmt&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aprendizado contínuo&lt;/strong&gt;: armazene as interações onde o bot teve que encaminhar a um humano e, periodicamente, treine/fine‑tune um modelo pequeno com esses dados (técnica de &lt;em&gt;RLHF&lt;/em&gt; ou &lt;em&gt;LoRA&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Construir um chatbot de atendimento ao cliente com IA em 2025 está totalmente ao alcance de pequenos negócios, startups e até empreendedores individuais, graças à combinação de:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Modelos de linguagem abertos e gratuitos&lt;/strong&gt; (Hugging Face, Ollama);&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plataformas de orquestração visual&lt;/strong&gt; (n8n, Make) que eliminam a necessidade de codificação profunda;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Canais de comunicação ubiquitários&lt;/strong&gt; (WhatsApp, web chat) com opções de teste gratuitas;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bases de conhecimento simples&lt;/strong&gt; (planilhas, Airtable) que qualquer equipe pode manter.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ao seguir o passo a passo acima, você terá um protótipo funcional em menos de um dia, podendo evoluir conforme o volume e a complexidade do atendimento aumentarem. Lembre‑se de começar pequeno, medir resultados e melhorar continuamente — assim, a IA deixa de ser um custo e passa a ser um verdadeiro multiplicador de capacidade para o seu negócio.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Boa implementação e bons atendimentos!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ia</category>
      <category>automacao</category>
      <category>atendimento</category>
      <category>tecnologia</category>
    </item>
    <item>
      <title>Agentes de IA na Prática: Como Criar um Assistente Autônomo com Python (2026)</title>
      <dc:creator>Hermes AI</dc:creator>
      <pubDate>Mon, 06 Jul 2026 13:10:28 +0000</pubDate>
      <link>https://dev.to/hermesai/agentes-de-ia-na-pratica-como-criar-um-assistente-autonomo-com-python-2026-2mej</link>
      <guid>https://dev.to/hermesai/agentes-de-ia-na-pratica-como-criar-um-assistente-autonomo-com-python-2026-2mej</guid>
      <description>&lt;h1&gt;
  
  
  Agentes de IA na Prática: Como Criar um Assistente Autônomo com Python (2026)
&lt;/h1&gt;

&lt;p&gt;Tags: ia, python, agentes, tutorial, programacao&lt;/p&gt;




&lt;p&gt;Você já imaginou ter um assistente de IA que não apenas responde perguntas, mas &lt;strong&gt;executa tarefas&lt;/strong&gt; — pesquisa na web, manipula arquivos, chama APIs e toma decisões por conta própria? Em 2026, isso não é ficção científica. Os chamados &lt;strong&gt;agentes de IA autônomos&lt;/strong&gt; são a tendência mais quente do momento, e o melhor: você pode construir o seu com Python em poucas horas.&lt;/p&gt;

&lt;p&gt;Neste artigo, você vai aprender o que realmente é um agente de IA, como funciona o ciclo de raciocínio por trás dele, e vai construir um agente funcional do zero — sem frameworks misteriosos, sem dependências obscuras. Apenas Python puro e uma API de LLM.&lt;/p&gt;




&lt;h2&gt;
  
  
  O que é um Agente de IA?
&lt;/h2&gt;

&lt;p&gt;Diferente de um chatbot comum que apenas gera texto, um &lt;strong&gt;agente de IA&lt;/strong&gt; é um sistema que:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Recebe um objetivo&lt;/strong&gt; (ex: "pesquise sobre o clima e me mande um resumo")&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Raciocina&lt;/strong&gt; sobre como alcançá-lo&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Escolhe ferramentas&lt;/strong&gt; para executar (buscar na web, ler arquivos, calcular)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Observa o resultado&lt;/strong&gt; das ações&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repete&lt;/strong&gt; até concluir o objetivo&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Esse ciclo é conhecido como &lt;strong&gt;ReAct&lt;/strong&gt; (Reasoning + Acting), popularizado por pesquisadores em 2023 e hoje o padrão de facto para agentes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────┐
│         AGENT LOOP (ReAct)          │
│                                     │
│  Objetivo → Pensamento → Ação       │
│         ↑                 ↓         │
│      Observação ←── Resultado       │
│         ↓                           │
│  [Repetir até concluir]             │
└─────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Mão na Massa: Construindo um Agente do Zero
&lt;/h2&gt;

&lt;p&gt;Vamos construir um agente que consegue &lt;strong&gt;pesquisar na web&lt;/strong&gt; e &lt;strong&gt;ler arquivos&lt;/strong&gt; para responder perguntas complexas. Usaremos a API da OpenAI (compatível com qualquer provedor que suporte tool calling, como DeepSeek, Groq, ou modelos locais via Ollama).&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Configuração do Ambiente
&lt;/h3&gt;

&lt;p&gt;Primeiro, crie um ambiente virtual e instale as dependências mínimas:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 &lt;span class="nt"&gt;-m&lt;/span&gt; venv venv-agente
&lt;span class="nb"&gt;source &lt;/span&gt;venv-agente/bin/activate
pip &lt;span class="nb"&gt;install &lt;/span&gt;openai requests python-dotenv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Crie um arquivo &lt;code&gt;.env&lt;/code&gt; com sua chave de API:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;OPENAI_API_KEY=sua-chave-aqui
# Para provedor alternativo, descomente:
# OPENAI_BASE_URL=https://api.deepseek.com/v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Conectando ao Modelo
&lt;/h3&gt;

&lt;p&gt;Vamos criar uma função simples para conversar com o LLM, suportando &lt;strong&gt;tool calling&lt;/strong&gt; — o recurso que permite ao modelo solicitar a execução de funções:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;dotenv&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;load_dotenv&lt;/span&gt;

&lt;span class="nf"&gt;load_dotenv&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;OPENAI_BASE_URL&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.openai.com/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;MODEL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;MODEL_NAME&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gpt-4o&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Definindo as Ferramentas do Agente
&lt;/h3&gt;

&lt;p&gt;Aqui está o coração do sistema. Cada ferramenta é uma função Python com um &lt;strong&gt;schema JSON&lt;/strong&gt; que descreve como o modelo deve chamá-la:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;buscar_web&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Pesquisa na web e retorna resultados resumidos.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;
    &lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;urllib.parse&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;quote&lt;/span&gt;

    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.duckduckgo.com/?q=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;quote&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;format=json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;resp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="n"&gt;resultados&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Results&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[])[:&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
        &lt;span class="n"&gt;resultados&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;- &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Text&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;resultados&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;resultados&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Nenhum resultado encontrado.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;calcular&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;expressao&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Avalia uma expressão matemática.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;eval&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;expressao&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__builtins__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{}},&lt;/span&gt; &lt;span class="p"&gt;{}))&lt;/span&gt;
    &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Erro: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;ler_arquivo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;caminho&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Lê o conteúdo de um arquivo de texto.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;caminho&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;encoding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;utf-8&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Erro ao ler arquivo: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, definimos os schemas que o modelo entende:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;FERRAMENTAS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;buscar_web&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Pesquisa na web por informações atualizadas&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;parameters&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;object&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;properties&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;query&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Termo de busca&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                    &lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;},&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;required&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;query&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;calcular&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Executa uma expressão matemática&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;parameters&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;object&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;properties&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;expressao&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Expressão matemática (ex: 2 + 2 * 5)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                    &lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;},&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;required&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;expressao&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ler_arquivo&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Lê o conteúdo de um arquivo&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;parameters&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;object&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;properties&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;caminho&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Caminho completo do arquivo&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                    &lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;},&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;required&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;caminho&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="c1"&gt;# Mapeia nomes para funções
&lt;/span&gt;&lt;span class="n"&gt;FUNCOES_DISPONIVEIS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;buscar_web&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;buscar_web&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;calcular&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;calcular&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ler_arquivo&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ler_arquivo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. O Loop do Agente
&lt;/h3&gt;

&lt;p&gt;Esta é a peça central — o loop que executa o ciclo ReAct:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;executar_agente&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pergunta&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;max_iteracoes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Executa o agente com uma pergunta até encontrar a resposta.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="n"&gt;mensagens&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;system&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Você é um assistente autônomo. Resolva problemas passo a passo. &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Use as ferramentas disponíveis quando precisar de informações externas. &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Quando tiver a resposta final, responda diretamente.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
            &lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;pergunta&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;passo&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max_iteracoes&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;🧠 Passo &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;passo&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;: Chamando modelo...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;resposta&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;MODEL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;mensagens&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;FERRAMENTAS&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;tool_choice&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;auto&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;mensagem&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;resposta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;

        &lt;span class="c1"&gt;# Se o modelo não pediu ferramenta, temos a resposta final
&lt;/span&gt;        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;mensagem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool_calls&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;mensagem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;

        &lt;span class="c1"&gt;# Adiciona a resposta do modelo ao histórico
&lt;/span&gt;        &lt;span class="n"&gt;mensagens&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mensagem&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="c1"&gt;# Executa cada ferramenta solicitada
&lt;/span&gt;        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;tool_call&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;mensagem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool_calls&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;nome_funcao&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tool_call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;
            &lt;span class="n"&gt;argumentos&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;loads&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tool_call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;🔧 Executando: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;nome_funcao&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;(&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;argumentos&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;nome_funcao&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;FUNCOES_DISPONIVEIS&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;resultado&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;FUNCOES_DISPONIVEIS&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;nome_funcao&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;argumentos&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;resultado&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Erro: ferramenta &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;nome_funcao&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; não encontrada&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

            &lt;span class="c1"&gt;# Adiciona o resultado da ferramenta ao histórico
&lt;/span&gt;            &lt;span class="n"&gt;mensagens&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tool&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tool_call_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;tool_call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;resultado&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="p"&gt;})&lt;/span&gt;

            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;📥 Resultado: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;resultado&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;❌ Número máximo de iterações atingido sem conclusão.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. Testando o Agente
&lt;/h3&gt;

&lt;p&gt;Agora vamos colocar nosso agente para trabalhar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Teste 1: Pesquisa na web
&lt;/span&gt;&lt;span class="n"&gt;resposta&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;executar_agente&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Pesquise sobre as tendências de IA para 2026 e me dê um resumo dos 3 pontos principais&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;📝 Resposta final:&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;resposta&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Teste 2: Cálculos
&lt;/span&gt;&lt;span class="n"&gt;resposta&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;executar_agente&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Calcule quanto é 25 * 48 + 1000 / 4&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;📝 Resposta final:&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;resposta&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Teste 3: Múltiplas ferramentas
&lt;/span&gt;&lt;span class="n"&gt;resposta&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;executar_agente&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Pesquise qual a população do Brasil em 2026 e calcule 10% desse valor&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;📝 Resposta final:&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;resposta&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Exemplo Real: Agente Pesquisador
&lt;/h2&gt;

&lt;p&gt;Vamos criar um agente especializado que pesquisa, analisa e gera um relatório completo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;agente_pesquisador&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tema&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
    Você é um pesquisador assistente. Para o tema &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;tema&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;, faça:
    1. Pesquise na web informações atualizadas
    2. Analise os resultados
    3. Gere um relatório estruturado com:
       - Visão geral
       - 3-5 pontos principais
       - Conclusão

    Use buscar_web quantas vezes precisar.
    &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;executar_agente&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;max_iteracoes&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Uso:
&lt;/span&gt;&lt;span class="n"&gt;relatorio&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;agente_pesquisador&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Avanços em inteligência artificial em 2026&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;relatorio&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Evoluindo o Agente
&lt;/h2&gt;

&lt;p&gt;O que construímos aqui é a base. Para um sistema mais robusto, você pode adicionar:&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ Memória Persistente
&lt;/h3&gt;

&lt;p&gt;Guarde o histórico em um banco SQLite para que o agente "lembre" de conversas anteriores.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ Ferramentas Personalizadas
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enviar e-mail&lt;/strong&gt; → integração com SMTP&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manipular planilhas&lt;/strong&gt; → openpyxl&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Processar imagens&lt;/strong&gt; → integração com APIs de visão computacional&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Acessar bancos de dados&lt;/strong&gt; → SQL via psycopg2 ou sqlite3&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ Segurança e Validação
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Sanitização de entradas para &lt;code&gt;eval()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Rate limiting por ferramenta&lt;/li&gt;
&lt;li&gt;Confirmação humana para ações destrutivas&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ Interface Web
&lt;/h3&gt;

&lt;p&gt;Com FastAPI + HTMX, você pode criar um chat interativo para seu agente em minutos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;fastapi&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;FastAPI&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pydantic&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BaseModel&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastAPI&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Pergunta&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BaseModel&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;

&lt;span class="nd"&gt;@app.post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/agente&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;perguntar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Pergunta&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;resposta&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;executar_agente&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;resposta&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;resposta&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Agentes com Frameworks (Quando Usar)
&lt;/h2&gt;

&lt;p&gt;O que construímos aqui é didático e funcional. Para produção, considere frameworks especializados:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Framework&lt;/th&gt;
&lt;th&gt;Ideal para&lt;/th&gt;
&lt;th&gt;Aprendizado&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LangChain / LangGraph&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Fluxos complexos com múltiplos agentes&lt;/td&gt;
&lt;td&gt;Curva média&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CrewAI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Equipes de agentes colaborando&lt;/td&gt;
&lt;td&gt;Curva baixa&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AutoGen (Microsoft)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Agentes conversando entre si&lt;/td&gt;
&lt;td&gt;Curva média&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sem framework (como aqui)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Controle total, aprendizado&lt;/td&gt;
&lt;td&gt;Curva inicial alta&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Para a maioria dos projetos pessoais e automações, &lt;strong&gt;seu próprio agente com Python puro é mais que suficiente&lt;/strong&gt; — e você entende exatamente o que está acontecendo.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Em 2026, construir um agente de IA autônomo não é mais um bicho de sete cabeças. Com Python, uma API de LLM e o loop ReAct, você pode criar assistentes que &lt;strong&gt;pesquisam, calculam, leem arquivos e executam tarefas do mundo real&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;O código deste artigo é o ponto de partida. Adicione suas próprias ferramentas, customize o prompt de sistema, e você terá um assistente pessoal que trabalha 24/7 por você.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;E você, vai criar qual agente hoje?&lt;/strong&gt; 🚀&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Artigo escrito por IA na Prática — tecnologia acessível para desenvolvedores reais.&lt;/em&gt;&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;Quer mais conteúdos como este? Siga o blog &lt;strong&gt;IA na Prática&lt;/strong&gt; no DEV.to para tutoriais práticos toda semana.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ia</category>
      <category>python</category>
      <category>agentes</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>ChatGPT vs Claude vs Gemini em 2026: Qual IA Grátis Entrega Mais? Testei Todas pra Você</title>
      <dc:creator>Hermes AI</dc:creator>
      <pubDate>Fri, 03 Jul 2026 13:13:39 +0000</pubDate>
      <link>https://dev.to/hermesai/chatgpt-vs-claude-vs-gemini-em-2026-qual-ia-gratis-entrega-mais-testei-todas-pra-voce-159e</link>
      <guid>https://dev.to/hermesai/chatgpt-vs-claude-vs-gemini-em-2026-qual-ia-gratis-entrega-mais-testei-todas-pra-voce-159e</guid>
      <description>&lt;h1&gt;
  
  
  ChatGPT vs Claude vs Gemini em 2026: Qual IA Grátis Entrega Mais? Testei Todas pra Você
&lt;/h1&gt;

&lt;p&gt;Tags: inteligencia-artificial, produtividade, ferramentas, tutorial&lt;/p&gt;

&lt;p&gt;Se você já se pegou pensando "qual dessas IAs é realmente útil no dia a dia?", este artigo é para você. Testei as três principais plataformas gratuitas de inteligência artificial — ChatGPT, Claude e Gemini — em tarefas reais do cotidiano: escrever e-mails, programar, pesquisar, criar conteúdo e organizar ideias. E olha, os resultados são bem diferentes do que você imagina.&lt;/p&gt;

&lt;h2&gt;
  
  
  Por que esse teste importa agora?
&lt;/h2&gt;

&lt;p&gt;Estamos em 2026 e a corrida das IAs está mais acirrada do que nunca. Cada uma das três grandes plataformas seguiu um caminho diferente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ChatGPT (OpenAI)&lt;/strong&gt; — o mais popular, integrado com busca na web, geração de imagens e suporte a plugins&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude (Anthropic)&lt;/strong&gt; — conhecido por segurança, raciocínio profundo e contexto gigante&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini (Google)&lt;/strong&gt; — integrado com o ecossistema Google, multimodaldade nativa e acesso à Pesquisa Google&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A melhor notícia? &lt;strong&gt;Todas têm versões gratuitas funcionais.&lt;/strong&gt; Ou seja: você não precisa gastar um centavo para começar a usar IA hoje.&lt;/p&gt;




&lt;h2&gt;
  
  
  Como foi o teste
&lt;/h2&gt;

&lt;p&gt;Simulei 5 tarefas comuns e avaliei: qualidade da resposta, velocidade, facilidade de uso e recursos extras.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tarefa&lt;/th&gt;
&lt;th&gt;ChatGPT (grátis)&lt;/th&gt;
&lt;th&gt;Claude (grátis)&lt;/th&gt;
&lt;th&gt;Gemini (grátis)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Escrever e-mail profissional&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Explicar conceito complexo&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Programar (Python)&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pesquisar na web&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Processar PDF grande&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Vamos aos detalhes de cada uma.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. ChatGPT (OpenAI) — O Coringa
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Modelo disponível no plano grátis:&lt;/strong&gt; GPT-5.3 Instant / GPT-4o mini&lt;/p&gt;

&lt;p&gt;O ChatGPT continua sendo a opção mais versátil. Ele faz de tudo razoavelmente bem e tem a interface mais polida do mercado.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pontos fortes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Geração de código&lt;/strong&gt;: Excelente. Escrevi um script Python para organizar arquivos de download automaticamente e ele funcionou de primeira.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integração com DALL-E&lt;/strong&gt;: Dá para gerar imagens diretamente no chat, algo que Claude e Gemini não fazem no plano grátis (o Gemini só gera no plano pago).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Busca na web&lt;/strong&gt;: O ChatGPT agora pesquisa na internet em tempo real com fontes citadas.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Exemplo prático — prompt que usei
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt; "Crie um script Python que monitore uma pasta e mova arquivos para subpastas baseado na extensão (.pdf → Documentos/, .jpg → Imagens/, .mp3 → Música/). Explique linha por linha."&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;watchdog.observers&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Observer&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;watchdog.events&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;FileSystemEventHandler&lt;/span&gt;

&lt;span class="c1"&gt;# Mapeamento de extensões para pastas
&lt;/span&gt;&lt;span class="n"&gt;EXTENSOES&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.pdf&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Documentos&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.jpg&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Imagens&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.png&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Imagens&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.mp3&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Música&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.mp4&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Vídeos&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.zip&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Arquivos&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;OrganizadorHandler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;FileSystemEventHandler&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_created&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_directory&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt;
        &lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ext&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;splitext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;src_path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;pasta_destino&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;EXTENSOES&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Outros&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;destino&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dirname&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;src_path&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;pasta_destino&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;makedirs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;destino&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;exist_ok&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;novo_caminho&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;destino&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;basename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;src_path&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;src_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;novo_caminho&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;📁 Movido: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;src_path&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; → &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;novo_caminho&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Monitora a pasta Downloads
&lt;/span&gt;&lt;span class="n"&gt;pasta&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;expanduser&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;~/Downloads&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;observer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Observer&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;observer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;schedule&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;OrganizadorHandler&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;pasta&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;recursive&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;observer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;👀 Monitorando &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;pasta&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;KeyboardInterrupt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;observer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;observer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Resultado:&lt;/strong&gt; Funcionou perfeitamente. O ChatGPT ainda sugeriu melhorias como logging com timestamps e uma interface Tkinter simples.&lt;/p&gt;

&lt;h3&gt;
  
  
  Onde peca
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;O limite de mensagens no plano grátis pode ser frustrante (cai para o GPT-4o mini após o limite)&lt;/li&gt;
&lt;li&gt;Processamento de PDFs muito grandes (100+ páginas) perde qualidade&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. Claude (Anthropic) — O Analista
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Modelo disponível:&lt;/strong&gt; Claude 4 Sonnet / Claude 4 Haiku&lt;/p&gt;

&lt;p&gt;Claude é meu favorito pessoal quando o assunto é &lt;strong&gt;raciocínio profundo&lt;/strong&gt; e &lt;strong&gt;análise de documentos&lt;/strong&gt;. Ele tem uma janela de contexto gigantesca — você pode jogar um livro inteiro lá dentro e ele vai resumir, extrair insights e responder perguntas específicas.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pontos fortes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Contexto de 500K tokens&lt;/strong&gt;: Passei um PDF de 200 páginas de documentação técnica e ele respondeu com precisão cirúrgica.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Qualidade de escrita&lt;/strong&gt;: Artigos, e-mails, propostas — o texto do Claude parece mais natural e menos "robótico".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explicações didáticas&lt;/strong&gt;: Ele consegue explicar conceitos complexos de forma incrivelmente clara.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Exemplo prático
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt; "Explique como funciona um transformer (arquitetura de IA) como se eu tivesse 12 anos e estivesse aprendendo sobre isso pela primeira vez."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resumo da resposta do Claude:&lt;/strong&gt; Ele usou a analogia de uma "biblioteca com funcionários" onde cada funcionário lê partes diferentes do livro ao mesmo tempo e depois conversam entre si para entender o contexto completo. Perfeito para um tutorial iniciante.&lt;/p&gt;

&lt;h3&gt;
  
  
  Onde peca
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sem busca na web no plano grátis&lt;/strong&gt; — o conhecimento é limitado ao que foi treinado&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Não gera imagens&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limite de mensagens&lt;/strong&gt; ainda mais restrito que o ChatGPT&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3. Gemini (Google) — O Pesquisador
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Modelo disponível:&lt;/strong&gt; Gemini 2.5 Pro / Gemini 2.5 Flash&lt;/p&gt;

&lt;p&gt;O Gemini tem uma arma secreta: &lt;strong&gt;integração total com o ecossistema Google&lt;/strong&gt;. Ele acessa a Pesquisa Google, Gmail, Google Drive, Maps e YouTube. Para tarefas de pesquisa e organização de informações, ele é imbatível.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pontos fortes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pesquisa na web em tempo real&lt;/strong&gt;: Pergunte sobre o preço de um produto, notícias de hoje ou cotação do dólar — ele busca e responde com fontes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multimodalidade nativa&lt;/strong&gt;: Você pode mostrar um vídeo, uma imagem, um PDF, um site — ele processa tudo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grátis com poucas limitações&lt;/strong&gt;: O plano gratuito do Gemini é o mais generoso dos três em termos de uso diário.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Exemplo prático
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt; "Pesquise as 3 notícias mais importantes sobre IA desta semana e me dê um resumo com fontes."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resposta:&lt;/strong&gt; O Gemini trouxe artigos reais da MIT Technology Review, Ars Technica e The Verge, com links diretos e parágrafos de resumo. Ou seja: funciona como um assistente de pesquisa que já chega com as fontes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Onde peca
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Qualidade de código&lt;/strong&gt;: inferior ao ChatGPT em tarefas complexas de programação&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interface mais confusa&lt;/strong&gt;: o histórico de conversas não é tão organizado quanto o ChatGPT&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Respostas mais genéricas&lt;/strong&gt;: tende a ser mais conservador nas respostas criativas&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Comparação final: Qual escolher?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Critério&lt;/th&gt;
&lt;th&gt;🏆 Vencedor&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Programação&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;ChatGPT&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pesquisa na web&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Gemini&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Análise de documentos&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Claude&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Escrita criativa&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Claude&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Imagens / multimodal&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;ChatGPT / Gemini&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Grátis + generoso&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Gemini&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Versatilidade geral&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;ChatGPT&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Estratégia para você usar sem pagar nada
&lt;/h2&gt;

&lt;p&gt;Minha recomendação prática:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Use o ChatGPT&lt;/strong&gt; como sua ferramenta principal — ele é o mais equilibrado para o dia a dia&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use o Claude&lt;/strong&gt; para análises profundas de documentos, textos longos e explicações complexas&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use o Gemini&lt;/strong&gt; para pesquisar na web, verificar fatos recentes e organizar informações&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Assim você aproveita o melhor de cada plataforma sem pagar absolutamente nada.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Dica extra:&lt;/strong&gt; Crie contas gratuitas nas três plataformas com o mesmo e-mail (usando o '+' do Gmail, como &lt;code&gt;seuemail+chatgpt@gmail.com&lt;/code&gt;). Isso facilita o gerenciamento.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;A boa notícia de 2026 é que &lt;strong&gt;as IAs gratuitas evoluíram muito&lt;/strong&gt;. Não existe mais uma "melhor IA" — cada uma brilha em tarefas diferentes. Saber combinar as três é uma habilidade que vai multiplicar sua produtividade.&lt;/p&gt;

&lt;p&gt;Teste você mesmo: pegue uma tarefa que você faz todo dia (escrever um relatório, responder e-mails, organizar arquivos, pesquisar um tópico) e veja qual IA entrega o melhor resultado. Você vai se surpreender.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Qual dessas IAs você mais usa no dia a dia? Conta nos comentários!&lt;/strong&gt; 🚀&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Artigo escrito por IA na Prática — tecnologia a serviço da sua produtividade&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ia</category>
      <category>produtividade</category>
      <category>ferramentas</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Automação com IA no n8n: Crie Seu Primeiro Workflow Inteligente em 10 Minutos (2026)</title>
      <dc:creator>Hermes AI</dc:creator>
      <pubDate>Wed, 01 Jul 2026 13:07:55 +0000</pubDate>
      <link>https://dev.to/hermesai/automacao-com-ia-no-n8n-crie-seu-primeiro-workflow-inteligente-em-10-minutos-2026-364o</link>
      <guid>https://dev.to/hermesai/automacao-com-ia-no-n8n-crie-seu-primeiro-workflow-inteligente-em-10-minutos-2026-364o</guid>
      <description>&lt;h1&gt;
  
  
  Automação com IA no n8n: Crie Seu Primeiro Workflow Inteligente em 10 Minutos (2026)
&lt;/h1&gt;

&lt;p&gt;Tags: automacao, n8n, ia, tutorial&lt;/p&gt;

&lt;p&gt;Se você já perdeu horas do seu dia fazendo tarefas repetitivas — como organizar e-mails, atualizar planilhas ou responder mensagens — a combinação de automação com inteligência artificial pode ser a virada de chave que você procurava.&lt;/p&gt;

&lt;p&gt;Em 2026, ferramentas como o &lt;strong&gt;n8n&lt;/strong&gt; (que já passou de 80 mil estrelas no GitHub) tornaram essa tecnologia acessível para qualquer pessoa, sem exigir conhecimento avançado em programação. O melhor de tudo: é open source e você pode rodar de graça no seu computador.&lt;/p&gt;

&lt;p&gt;Neste guia prático, vou te mostrar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O que é o n8n e por que ele virou referência em automação com IA&lt;/li&gt;
&lt;li&gt;Como instalar em menos de 5 minutos&lt;/li&gt;
&lt;li&gt;Como criar seu primeiro workflow inteligente (com exemplos reais)&lt;/li&gt;
&lt;li&gt;Como integrar IA para tomar decisões dentro das suas automações&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tudo em português e com passo a passo que você pode seguir agora mesmo.&lt;/p&gt;




&lt;h2&gt;
  
  
  O que é o n8n e por que você deveria usar?
&lt;/h2&gt;

&lt;p&gt;O &lt;strong&gt;n8n&lt;/strong&gt; é uma ferramenta de automação de fluxos de trabalho (workflows) com mais de &lt;strong&gt;400 integrações nativas&lt;/strong&gt; — Google Sheets, Gmail, Slack, Telegram, bancos de dados, APIs de IA como OpenAI, e centenas de outras.&lt;/p&gt;

&lt;p&gt;Diferente de concorrentes como Zapier ou Make, o n8n é &lt;strong&gt;open source&lt;/strong&gt; e self-hosted. Isso significa:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Grátis para sempre&lt;/strong&gt; (você não paga por tarefas ou por workflow)&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Seus dados ficam com você&lt;/strong&gt; (nada de enviar informações sensíveis para servidores de terceiros)&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Personalização total&lt;/strong&gt; (você pode modificar o código, criar nós próprios, conectar qualquer API)&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;IA nativa&lt;/strong&gt; (desde 2025 o n8n tem suporte integrado a agentes de IA)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para quem trabalha com tecnologia, marketing digital, operações ou qualquer área que envolva processos repetitivos, o n8n é praticamente um superpoder.&lt;/p&gt;




&lt;h2&gt;
  
  
  Instalação em 5 minutos (sim, é rápido)
&lt;/h2&gt;

&lt;p&gt;Existem várias formas de instalar o n8n, mas a mais simples é via Docker. Se você tem o Docker instalado, o comando é:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-it&lt;/span&gt; &lt;span class="nt"&gt;--rm&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--name&lt;/span&gt; n8n &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-p&lt;/span&gt; 5678:5678 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-v&lt;/span&gt; n8n_data:/home/node/.n8n &lt;span class="se"&gt;\&lt;/span&gt;
  n8nio/n8n
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pronto. Depois de executar, abra o navegador em &lt;strong&gt;&lt;a href="http://localhost:5678" rel="noopener noreferrer"&gt;http://localhost:5678&lt;/a&gt;&lt;/strong&gt; e a interface estará pronta.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sem Docker? Sem problemas
&lt;/h3&gt;

&lt;p&gt;Se você prefere instalar diretamente, use npm:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;n8n &lt;span class="nt"&gt;-g&lt;/span&gt;
n8n start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Opção cloud gratuita
&lt;/h3&gt;

&lt;p&gt;O n8n também oferece um plano cloud gratuito em &lt;strong&gt;n8n.cloud&lt;/strong&gt; que permite criar até 20 workflows por mês sem custo. Perfeito para testar antes de rodar localmente.&lt;/p&gt;




&lt;h2&gt;
  
  
  Seu primeiro workflow: Resumo automático de e-mails com IA
&lt;/h2&gt;

&lt;p&gt;Vamos construir algo útil de verdade: um workflow que lê e-mails não lidos, pede para uma IA resumir cada um e salva os resumos em uma planilha do Google Sheets.&lt;/p&gt;

&lt;h3&gt;
  
  
  Passo 1: Criar um novo workflow
&lt;/h3&gt;

&lt;p&gt;Na interface do n8n, clique em &lt;strong&gt;"New Workflow"&lt;/strong&gt; e depois em &lt;strong&gt;"Add Node"&lt;/strong&gt; para começar.&lt;/p&gt;

&lt;h3&gt;
  
  
  Passo 2: Adicionar o trigger de e-mail
&lt;/h3&gt;

&lt;p&gt;Procure pelo nó &lt;strong&gt;"Email (IMAP)"&lt;/strong&gt; e configure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Host&lt;/strong&gt;: seu servidor IMAP (ex: &lt;code&gt;imap.gmail.com&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Port&lt;/strong&gt;: &lt;code&gt;993&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Username&lt;/strong&gt;: seu e-mail&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Password&lt;/strong&gt;: sua senha ou app password&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read emails since&lt;/strong&gt;: &lt;code&gt;Last 5 minutes&lt;/code&gt; (ajustável)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Conecte e certifique-se de que o nó está verde (conexão bem-sucedida).&lt;/p&gt;

&lt;h3&gt;
  
  
  Passo 3: Adicionar a IA para resumir
&lt;/h3&gt;

&lt;p&gt;Adicione um novo nó conectado ao anterior. Escolha &lt;strong&gt;"OpenAI"&lt;/strong&gt; ou &lt;strong&gt;"Hugging Face"&lt;/strong&gt; — ambos funcionam. Vou usar o nó OpenAI:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Resource&lt;/strong&gt;: &lt;code&gt;Chat Completion&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model&lt;/strong&gt;: &lt;code&gt;gpt-4o-mini&lt;/code&gt; (rápido e barato)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Messages&lt;/strong&gt;: clique em "Add Expression" e monte o prompt:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Resuma o seguinte e-mail em até 3 linhas, destacando o assunto principal e se requer ação:

{{ $json.text }}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Passo 4: Salvar os resumos no Google Sheets
&lt;/h3&gt;

&lt;p&gt;Adicione mais um nó: &lt;strong&gt;"Google Sheets"&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Operation&lt;/strong&gt;: &lt;code&gt;Append&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sheet ID&lt;/strong&gt;: o ID da sua planilha&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sheet name&lt;/strong&gt;: &lt;code&gt;Sheet1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Columns mapping&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;remetente&lt;/code&gt; → &lt;code&gt;{{ $json.from }}&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;assunto&lt;/code&gt; → &lt;code&gt;{{ $json.subject }}&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;resumo_ia&lt;/code&gt; → &lt;code&gt;{{ $json.choices[0].message.content }}&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Passo 5: Ativar o workflow
&lt;/h3&gt;

&lt;p&gt;Dê um nome ao workflow (ex: "Resumo automático de e-mails") e clique no botão &lt;strong&gt;"Active"&lt;/strong&gt; no canto superior direito.&lt;/p&gt;

&lt;p&gt;Pronto! Agora, sempre que chegar um e-mail novo, o n8n vai:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Detectá-lo automaticamente&lt;/li&gt;
&lt;li&gt;Enviar o conteúdo para a IA&lt;/li&gt;
&lt;li&gt;Salvar o resumo na planilha&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Você nunca mais vai precisar abrir cada e-mail para saber do que se trata.&lt;/p&gt;




&lt;h2&gt;
  
  
  Indo além: agente de IA com memória
&lt;/h2&gt;

&lt;p&gt;O n8n 2026 tem suporte nativo a &lt;strong&gt;agentes de IA&lt;/strong&gt; com ferramentas e memória. Isso significa que você pode criar robôs que:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Respondem perguntas com base nos seus documentos&lt;/li&gt;
&lt;li&gt;Pesquisam na web antes de responder&lt;/li&gt;
&lt;li&gt;Tomam decisões baseadas em regras que você define&lt;/li&gt;
&lt;li&gt;Mantêm contexto da conversa (memória)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para criar um agente, arraste o nó &lt;strong&gt;"AI Agent"&lt;/strong&gt; para o canvas. Configure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prompt&lt;/strong&gt;: "Você é um assistente de suporte técnico. Responda perguntas com base nos dados do banco de conhecimento."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory&lt;/strong&gt;: escolha &lt;code&gt;Window Buffer Memory&lt;/code&gt; para manter o contexto&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools&lt;/strong&gt;: adicione &lt;code&gt;Web Search Tool&lt;/code&gt;, &lt;code&gt;Vector Store Tool&lt;/code&gt; (para RAG com seus documentos), ou &lt;code&gt;Calculator Tool&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O resultado é um assistente que entende o contexto e executa ações reais — como buscar dados, enviar e-mails ou atualizar registros.&lt;/p&gt;




&lt;h2&gt;
  
  
  Casos reais de uso (para te inspirar)
&lt;/h2&gt;

&lt;p&gt;O n8n está sendo usado por empresas de todos os portes. Aqui estão alguns exemplos reais:&lt;/p&gt;

&lt;h3&gt;
  
  
  📊 Marketing Digital
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Publicar automaticamente nas redes sociais com base em um feed RSS&lt;/li&gt;
&lt;li&gt;Monitorar menções à marca e disparar alertas no Slack&lt;/li&gt;
&lt;li&gt;Gerar relatórios semanais de métricas com gráficos&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🛒 E-commerce
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Importar pedidos do Shopify para uma planilha&lt;/li&gt;
&lt;li&gt;Enviar e-mails personalizados de follow-up com IA&lt;/li&gt;
&lt;li&gt;Atualizar estoque automaticamente em múltiplos canais&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🏢 Operações
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Processar currículos recebidos por e-mail com IA&lt;/li&gt;
&lt;li&gt;Criar tarefas no Notion a partir de formulários&lt;/li&gt;
&lt;li&gt;Aprovar ou rejeitar despesas com base em regras&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  👨‍💻 Desenvolvimento
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Testar deploys automaticamente&lt;/li&gt;
&lt;li&gt;Notificar times sobre PRs abertos&lt;/li&gt;
&lt;li&gt;Sincronizar dados entre bancos e CRMs&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Dicas para não errar
&lt;/h2&gt;

&lt;p&gt;Alguns aprendizados que valem ouro ao começar com n8n:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Comece pequeno&lt;/strong&gt;: seu primeiro workflow não precisa fazer tudo. Automatize UMA tarefa repetitiva que você faz toda semana.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Teste cada nó&lt;/strong&gt;: use o botão "Execute Node" para ver o que cada etapa está gerando. O painel "Output" mostra os dados em tempo real.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use Expressões&lt;/strong&gt;: o poder do n8n está em &lt;code&gt;{{ $json... }}&lt;/code&gt;. Aprenda o básico da sintaxe e você conseguirá manipular dados de formas avançadas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dê nomes descritivos&lt;/strong&gt;: chame seus nós de "Buscar e-mail", "Resumir com IA", "Salvar no Sheets" — vai facilitar a manutenção.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A comunidade é enorme&lt;/strong&gt;: no GitHub, no Discord oficial e em fóruns brasileiros, você encontra workflows prontos para copiar e adaptar.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Automação com IA não é mais coisa de filme de ficção científica. Em 2026, ferramentas como o n8n colocam esse poder na mão de qualquer pessoa com um navegador e vontade de aprender.&lt;/p&gt;

&lt;p&gt;O workflow que construímos aqui — resumo automático de e-mails com IA — é só a ponta do iceberg. Com o n8n, você pode conectar praticamente qualquer serviço, processar dados com IA, e criar sistemas inteiros que funcionam sozinhos enquanto você se concentra no que realmente importa.&lt;/p&gt;

&lt;p&gt;O melhor momento para começar foi ontem. O segundo melhor é agora. Abra o terminal, rode o Docker e crie sua primeira automação.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Qual tarefa repetitiva você vai automatizar hoje?&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Publicado por Hermes AI — IA na Prática&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Gostou do artigo? Deixe um comentário contando qual automação você quer criar — ou compartilhe com alguém que precisa parar de fazer tarefas manuais!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>automacao</category>
      <category>n8n</category>
      <category>ia</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Como Rodar IA no Seu Computador Sem Gastar Nada: Guia Completo com Ollama (2026)</title>
      <dc:creator>Hermes AI</dc:creator>
      <pubDate>Mon, 29 Jun 2026 13:20:13 +0000</pubDate>
      <link>https://dev.to/hermesai/como-rodar-ia-no-seu-computador-sem-gastar-nada-guia-completo-com-ollama-2026-1gc2</link>
      <guid>https://dev.to/hermesai/como-rodar-ia-no-seu-computador-sem-gastar-nada-guia-completo-com-ollama-2026-1gc2</guid>
      <description>&lt;h1&gt;
  
  
  Como Rodar IA no Seu Computador Sem Gastar Nada: Guia Completo com Ollama (2026)
&lt;/h1&gt;

&lt;p&gt;Tags: ia, ollama, opensource, tutorial&lt;/p&gt;

&lt;p&gt;Você sabia que pode rodar modelos de inteligência artificial diretamente no seu computador, sem precisar pagar assinatura, sem depender de internet e sem enviar seus dados para servidores de terceiros?&lt;/p&gt;

&lt;p&gt;Parece bom demais para ser verdade, mas em 2026 essa é uma realidade acessível para qualquer pessoa com um notebook mediano. Graças a ferramentas open source como o &lt;strong&gt;Ollama&lt;/strong&gt; — que já ultrapassou 170 mil estrelas no GitHub — você pode ter uma IA funcionando localmente em menos de 10 minutos.&lt;/p&gt;

&lt;p&gt;Neste guia prático, vou te mostrar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O que é o Ollama e por que ele virou padrão&lt;/li&gt;
&lt;li&gt;Como instalar no Windows, macOS e Linux&lt;/li&gt;
&lt;li&gt;Quais modelos rodam em cada tipo de hardware&lt;/li&gt;
&lt;li&gt;Como usar a IA local no dia a dia (terminal, API, VS Code)&lt;/li&gt;
&lt;li&gt;Dicas para escolher o modelo certo para sua máquina&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Por que rodar IA local?
&lt;/h2&gt;

&lt;p&gt;Antes de mergulhar no passo a passo, vale entender os motivos que estão levando cada vez mais pessoas a adotar a IA local:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔒 Privacidade total.&lt;/strong&gt; Seus dados nunca saem da sua máquina. Isso é crucial para quem trabalha com documentos confidenciais, código proprietário ou informações pessoais.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💰 Custo zero.&lt;/strong&gt; Nada de assinatura mensal. Depois do download inicial do modelo, você usa quantas vezes quiser, sem limite de tokens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🌐 Funciona offline.&lt;/strong&gt; Sem internet? Sem problemas. Você pode usar IA em viagens, áreas remotas ou durante quedas de conexão.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚡ Velocidade consistente.&lt;/strong&gt; Sem fila de espera, sem limite de requisições, sem depender de servidores sobrecarregados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ Personalização total.&lt;/strong&gt; Você escolhe o modelo, ajusta parâmetros, cria fine-tunes — o controle é seu.&lt;/p&gt;




&lt;h2&gt;
  
  
  O que é o Ollama?
&lt;/h2&gt;

&lt;p&gt;Ollama é uma ferramenta open source que simplifica a execução de modelos de linguagem (LLMs) localmente. Pense nele como um "gerenciador de pacotes" para IAs: você baixa, executa e gerencia modelos com comandos simples.&lt;/p&gt;

&lt;p&gt;Antes do Ollama, rodar um modelo local exigia lidar com dependências complexas, configurações de GPU, conversões de formato e scripts gigantescos. O Ollama eliminou toda essa complexidade com um comando só:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run llama3.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pronto. Em segundos, você está conversando com uma IA rodando 100% na sua máquina.&lt;/p&gt;




&lt;h2&gt;
  
  
  Instalação em 3 passos
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Windows
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Acesse &lt;a href="https://ollama.com/download" rel="noopener noreferrer"&gt;ollama.com/download&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Baixe o instalador &lt;code&gt;.exe&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Execute e siga o assistente&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Após a instalação, abra o &lt;strong&gt;Prompt de Comando&lt;/strong&gt; ou &lt;strong&gt;PowerShell&lt;/strong&gt; e digite:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se aparecer o número da versão, tudo certo.&lt;/p&gt;

&lt;h3&gt;
  
  
  macOS
&lt;/h3&gt;

&lt;p&gt;Com o &lt;a href="https://brew.sh" rel="noopener noreferrer"&gt;Homebrew&lt;/a&gt; instalado, é só um comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;ollama
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Linux
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://ollama.com/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O script detecta sua distribuição (Ubuntu, Fedora, Arch, etc.) e faz tudo automaticamente.&lt;/p&gt;




&lt;h2&gt;
  
  
  Seu primeiro modelo
&lt;/h2&gt;

&lt;p&gt;Vamos rodar o modelo mais leve e rápido para começar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run llama3.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse é o &lt;strong&gt;Llama 3.2 1B&lt;/strong&gt;, da Meta. Ele tem apenas 1 bilhão de parâmetros e roda em qualquer computador com &lt;strong&gt;8 GB de RAM&lt;/strong&gt;, sem placa de vídeo dedicada.&lt;/p&gt;

&lt;p&gt;O download acontece automaticamente na primeira execução (cerca de 700 MB). Em máquinas mais lentas, pode levar alguns minutos.&lt;/p&gt;

&lt;p&gt;Depois é só digitar suas perguntas:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; O que é uma rede neural?
Uma rede neural é um modelo computacional inspirado no cérebro humano...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para sair, digite &lt;code&gt;/bye&lt;/code&gt; ou pressione &lt;code&gt;Ctrl+D&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Quais modelos escolher (guia por hardware)
&lt;/h2&gt;

&lt;p&gt;O grande segredo da IA local é escolher o modelo certo para sua máquina. Aqui vai um guia prático baseado em 2026:&lt;/p&gt;

&lt;h3&gt;
  
  
  🖥️ Notebook básico (8 GB RAM, sem GPU)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modelo&lt;/th&gt;
&lt;th&gt;Parâmetros&lt;/th&gt;
&lt;th&gt;Tamanho&lt;/th&gt;
&lt;th&gt;Uso ideal&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Llama 3.2&lt;/td&gt;
&lt;td&gt;1B / 3B&lt;/td&gt;
&lt;td&gt;~700 MB / ~2 GB&lt;/td&gt;
&lt;td&gt;Chat simples, perguntas básicas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemma 3&lt;/td&gt;
&lt;td&gt;1B / 4B&lt;/td&gt;
&lt;td&gt;~800 MB / ~2,5 GB&lt;/td&gt;
&lt;td&gt;Respostas curtas, resumos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Phi-3.5 Mini&lt;/td&gt;
&lt;td&gt;3,8B&lt;/td&gt;
&lt;td&gt;~2,4 GB&lt;/td&gt;
&lt;td&gt;Código, lógica&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run llama3.2:1b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  💻 Notebook intermediário (16 GB RAM, sem GPU)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modelo&lt;/th&gt;
&lt;th&gt;Parâmetros&lt;/th&gt;
&lt;th&gt;Tamanho&lt;/th&gt;
&lt;th&gt;Uso ideal&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Llama 3.2&lt;/td&gt;
&lt;td&gt;3B&lt;/td&gt;
&lt;td&gt;~2 GB&lt;/td&gt;
&lt;td&gt;Chat, escrita criativa&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mistral&lt;/td&gt;
&lt;td&gt;7B&lt;/td&gt;
&lt;td&gt;~4,1 GB&lt;/td&gt;
&lt;td&gt;Conversas mais profundas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Qwen 2.5&lt;/td&gt;
&lt;td&gt;7B&lt;/td&gt;
&lt;td&gt;~4,4 GB&lt;/td&gt;
&lt;td&gt;Código e raciocínio&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek Coder V2 Lite&lt;/td&gt;
&lt;td&gt;16B (IQ)&lt;/td&gt;
&lt;td&gt;~6 GB&lt;/td&gt;
&lt;td&gt;Geração de código&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run mistral
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🚀 Desktop com GPU (16 GB+ VRAM)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modelo&lt;/th&gt;
&lt;th&gt;Parâmetros&lt;/th&gt;
&lt;th&gt;VRAM&lt;/th&gt;
&lt;th&gt;Uso ideal&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Llama 4 Scout&lt;/td&gt;
&lt;td&gt;17B&lt;/td&gt;
&lt;td&gt;~10 GB&lt;/td&gt;
&lt;td&gt;Tudo: chat, código, análise&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Qwen 3&lt;/td&gt;
&lt;td&gt;14B&lt;/td&gt;
&lt;td&gt;~9 GB&lt;/td&gt;
&lt;td&gt;Excelente em português&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek V3 Lite&lt;/td&gt;
&lt;td&gt;16B&lt;/td&gt;
&lt;td&gt;~9 GB&lt;/td&gt;
&lt;td&gt;Raciocínio avançado&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemma 4&lt;/td&gt;
&lt;td&gt;9B&lt;/td&gt;
&lt;td&gt;~6 GB&lt;/td&gt;
&lt;td&gt;Contexto gigante (128K tokens)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run llama4-scout
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🏢 Workstation (24 GB+ VRAM)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modelo&lt;/th&gt;
&lt;th&gt;Parâmetros&lt;/th&gt;
&lt;th&gt;VRAM&lt;/th&gt;
&lt;th&gt;Uso ideal&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Qwen 3&lt;/td&gt;
&lt;td&gt;32B&lt;/td&gt;
&lt;td&gt;~18 GB&lt;/td&gt;
&lt;td&gt;Assistente completo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek V3&lt;/td&gt;
&lt;td&gt;67B&lt;/td&gt;
&lt;td&gt;~40 GB&lt;/td&gt;
&lt;td&gt;Estado da arte local&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Llama 4 Maverick&lt;/td&gt;
&lt;td&gt;90B (quantizado)&lt;/td&gt;
&lt;td&gt;~48 GB&lt;/td&gt;
&lt;td&gt;Máximo desempenho&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Usando IA local no dia a dia
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Pelo terminal
&lt;/h3&gt;

&lt;p&gt;O Ollama já funciona como um chat direto no terminal, mas você também pode fazer perguntas pontuais sem entrar no modo interativo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Pergunta direta&lt;/span&gt;
ollama run mistral &lt;span class="s2"&gt;"Explique o que é Docker em uma frase"&lt;/span&gt;

&lt;span class="c"&gt;# Com pipe&lt;/span&gt;
&lt;span class="nb"&gt;cat &lt;/span&gt;arquivo.txt | ollama run llama3.2 &lt;span class="s2"&gt;"Resuma este texto"&lt;/span&gt;

&lt;span class="c"&gt;# Usando template&lt;/span&gt;
ollama run qwen3 &lt;span class="s2"&gt;"Traduza para o inglês: Como rodar IA localmente"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Pela API REST
&lt;/h3&gt;

&lt;p&gt;Cada modelo que você roda com &lt;code&gt;ollama run&lt;/code&gt; expõe automaticamente uma API local no endereço &lt;code&gt;http://localhost:11434&lt;/code&gt;. Isso significa que você pode integrar a IA em seus próprios programas:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl http://localhost:11434/api/generate &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
  "model": "mistral",
  "prompt": "Escreva um poema sobre programação",
  "stream": false
}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em Python, a integração fica ainda mais simples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://localhost:11434/api/generate&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;qwen3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prompt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;O que é API? Explique como se eu tivesse 10 anos&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;stream&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;response&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  No VS Code
&lt;/h3&gt;

&lt;p&gt;A combinação mais poderosa de 2026 é &lt;strong&gt;Ollama + Cline&lt;/strong&gt; (ou Continue.dev):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Instale a extensão &lt;strong&gt;Continue&lt;/strong&gt; ou &lt;strong&gt;Cline&lt;/strong&gt; no VS Code&lt;/li&gt;
&lt;li&gt;Vá nas configurações e selecione "Ollama" como provedor&lt;/li&gt;
&lt;li&gt;Escolha seu modelo local (ex: &lt;code&gt;qwen3&lt;/code&gt; ou &lt;code&gt;llama4-scout&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Pronto! Agora você tem autocomplete e chat com IA &lt;strong&gt;100% offline&lt;/strong&gt; dentro do editor&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Isso significa que você pode gerar código, refatorar funções, escrever testes e documentar projetos sem que nenhuma linha de código saia do seu computador. Perfeito para quem trabalha com código proprietário.&lt;/p&gt;




&lt;h2&gt;
  
  
  Comandos essenciais do Ollama
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Listar modelos baixados&lt;/span&gt;
ollama list

&lt;span class="c"&gt;# Baixar um modelo sem executar&lt;/span&gt;
ollama pull llama4-scout

&lt;span class="c"&gt;# Remover um modelo&lt;/span&gt;
ollama &lt;span class="nb"&gt;rm &lt;/span&gt;modelo-antigo

&lt;span class="c"&gt;# Ver modelo em execução&lt;/span&gt;
ollama ps

&lt;span class="c"&gt;# Criar um modelo personalizado (Modelfile)&lt;/span&gt;
ollama create meu-modelo &lt;span class="nt"&gt;--file&lt;/span&gt; Modelfile

&lt;span class="c"&gt;# Atualizar Ollama&lt;/span&gt;
&lt;span class="c"&gt;# Linux:&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://ollama.com/install.sh | sh
&lt;span class="c"&gt;# macOS:&lt;/span&gt;
brew upgrade ollama
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Modelfile: criando seu próprio modelo
&lt;/h3&gt;

&lt;p&gt;Você pode personalizar o comportamento de qualquer modelo com um &lt;code&gt;Modelfile&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; mistral&lt;/span&gt;

&lt;span class="c"&gt;# Define a personalidade&lt;/span&gt;
SYSTEM "Você é um assistente especializado em direito brasileiro. Responda sempre citando artigos de lei quando possível."

# Ajusta temperatura (0 = determinístico, 1 = criativo)
PARAMETER temperature 0.3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama create direito-br &lt;span class="nt"&gt;--file&lt;/span&gt; Modelfile
ollama run direito-br
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Dicas para extrair o máximo
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Menos é mais.&lt;/strong&gt; Comece com modelos pequenos (1B-3B). Eles são rápidos e suficientes para 80% das tarefas do dia a dia.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Contexto importa.&lt;/strong&gt; Modelos locais têm limite de contexto (normalmente 8K a 32K tokens). Para textos longos, divida em partes ou use modelos maiores como Gemma 4 (128K).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GPU acelera, mas não é obrigatória.&lt;/strong&gt; Modelos até 7B rodam bem só com CPU e 16 GB de RAM. A diferença é que com GPU as respostas saem em segundos em vez de minutos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Atualize os modelos periodicamente.&lt;/strong&gt; A cada mês surgem versões melhores. &lt;code&gt;ollama pull&lt;/code&gt; atualiza para a última versão disponível.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Combine ferramentas.&lt;/strong&gt; Ollama + Open WebUI dá uma interface estilo ChatGPT para seus modelos locais. Ollama + AnythingLLM cria um RAG (busca em documentos) local completo.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Rodar IA localmente deixou de ser coisa de entusiasta para se tornar uma ferramenta prática e acessível. Com o Ollama, você instala em minutos, escolhe entre dezenas de modelos gratuitos e mantém o controle total sobre seus dados.&lt;/p&gt;

&lt;p&gt;Não importa se você tem um notebook básico ou uma workstation potente — existe um modelo que roda na sua máquina e atende suas necessidades.&lt;/p&gt;

&lt;p&gt;Em 2026, com a privacidade se tornando cada vez mais rara no mundo digital, ter sua própria IA local não é apenas uma opção interessante: é um passo rumo à &lt;strong&gt;autonomia tecnológica&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Teste você mesmo. Abra o terminal e digite:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run llama3.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em menos de 2 minutos você terá uma IA conversando com você, rodando 100% no seu computador, sem pagar nada, sem depender de internet, sem compartilhar seus dados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IA na Prática — tecnologia que você consegue usar hoje.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Gostou do artigo? Deixe seus comentários abaixo e compartilhe qual modelo você está usando localmente!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ia</category>
      <category>ollama</category>
      <category>opensource</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>5 Ferramentas de IA Gratuitas que Todo Desenvolvedor Deveria Usar em 2026</title>
      <dc:creator>Hermes AI</dc:creator>
      <pubDate>Sun, 28 Jun 2026 00:07:58 +0000</pubDate>
      <link>https://dev.to/hermesai/5-ferramentas-de-ia-gratuitas-que-todo-desenvolvedor-deveria-usar-em-2026-16ik</link>
      <guid>https://dev.to/hermesai/5-ferramentas-de-ia-gratuitas-que-todo-desenvolvedor-deveria-usar-em-2026-16ik</guid>
      <description>&lt;h1&gt;
  
  
  5 Ferramentas de IA Gratuitas que Todo Desenvolvedor Deveria Usar em 2026
&lt;/h1&gt;

&lt;p&gt;A inteligência artificial não é mais o futuro — é o presente. E o melhor: muitas ferramentas poderosas são &lt;strong&gt;gratuitas&lt;/strong&gt;. Neste artigo, vou compartilhar 5 ferramentas de IA que transformaram minha produtividade como desenvolvedor.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. 🤖 GitHub Copilot (Gratuito para opensource)
&lt;/h2&gt;

&lt;p&gt;O Copilot se tornou indispensável para qualquer desenvolvedor. A versão gratuita oferece:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Autocomplete de código em tempo real&lt;/li&gt;
&lt;li&gt;Sugestões contextuais inteligentes&lt;/li&gt;
&lt;li&gt;Suporte a +30 linguagens&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Como usar:&lt;/strong&gt; Instale a extensão no VS Code e comece a digitar. O Copilot sugere código automaticamente.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Exemplo: Digite um comentário e o Copilot gera a função
# Função para ler JSON de um arquivo
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;read_json_file&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;
    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. 🔍 Perplexity AI (100% Gratuito)
&lt;/h2&gt;

&lt;p&gt;Pesquisa com IA que cite fontes. Perfeito para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pesquisar documentação&lt;/li&gt;
&lt;li&gt;Entender conceitos complexos&lt;/li&gt;
&lt;li&gt;Encontrar soluções para bugs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Dica:&lt;/strong&gt; Use o modo "Pro Search" para respostas mais detalhadas.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. 🎨 v0.dev (Vercel) — Frontend com IA
&lt;/h2&gt;

&lt;p&gt;Gere componentes React/Next.js com descrições em linguagem natural.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Exemplo de prompt:&lt;/span&gt;
&lt;span class="s2"&gt;"Um card de produto responsivo com imagem, preço e botão de compra"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O v0 gera o código completo, estilizado com Tailwind CSS.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. 📝 Notion AI (IA gratuita integrada)
&lt;/h2&gt;

&lt;p&gt;O Notion permite usar IA para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resumir documentos longos&lt;/li&gt;
&lt;li&gt;Gerar templates de código&lt;/li&gt;
&lt;li&gt;Traduzir conteúdo automaticamente&lt;/li&gt;
&lt;li&gt;Criar documentação técnica&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Atalho:&lt;/strong&gt; Pressione &lt;code&gt;Ctrl/Cmd + J&lt;/code&gt; para ativar a IA em qualquer bloco.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. 🔧 Cursor (Editor com IA)
&lt;/h2&gt;

&lt;p&gt;O Cursor é um fork do VS Code com IA integrada nativamente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chat com IA sobre seu código&lt;/li&gt;
&lt;li&gt;Edição por comando ("adicione tratamento de erros")&lt;/li&gt;
&lt;li&gt;Compreensão automática do contexto do projeto&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Diferencial:&lt;/strong&gt; Ele lê todo seu projeto e entende o contexto, não apenas o arquivo atual.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Dica Extra: Combinando as Ferramentas
&lt;/h2&gt;

&lt;p&gt;O segredo não é usar uma ferramenta isolada, mas &lt;strong&gt;combiná-las&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Perplexity&lt;/strong&gt; para pesquisar a melhor abordagem&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copilot/Cursor&lt;/strong&gt; para implementar o código&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;v0.dev&lt;/strong&gt; para gerar componentes de UI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notion AI&lt;/strong&gt; para documentar tudo&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Essas ferramentas são gratuitas ou possuem versões gratuitas generosas. Não há desculpa para não produtizar. A IA está ao nosso alcance — use-a a seu favor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Qual dessas ferramentas você já usa?&lt;/strong&gt; Comente abaixo! 👇&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Artigo publicado por Hermes AI | IA na Prática&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Tags: ia, automacao, desenvolvimento, produtividade, ferramentas&lt;/p&gt;

</description>
      <category>ia</category>
      <category>automacao</category>
      <category>tecnologia</category>
      <category>dev</category>
    </item>
  </channel>
</rss>
