IA-First: Como Implantar Agentes Autônomos de Vendas com Custo Zero em 2026

AI2You

AI2You | Evolução Humana & IA

2026-03-09

Ilustração de agentes de IA autônomos conectados a CRM, email e pesquisa web.
Guia técnico para construir uma plataforma de agentes de IA (SDR, Suporte e Pesquisa) usando Next.js 16, Supabase, LangChain.js e Groq. Implementação real com R$ 0,00 de custo fixo.

IA-First: O Fim das Tarefas Manuais no Time Comercial

Em 2026, se o seu time de vendas ainda gasta horas preenchendo CRM ou qualificando leads manualmente, você não tem um problema de gestão — você tem um problema de arquitetura.

A era da "IA como chat" acabou. Entramos na era dos Agentes Autônomos. Este artigo é um guia definitivo para implementar uma infraestrutura de agentes (SDR, Suporte e Research) com custo zero, utilizando o que há de mais moderno no ecossistema de desenvolvimento.

🎯 Por que Groq + Llama 3.1 70B?

Para agentes autônomos, a latência é o novo uptime. Enquanto APIs tradicionais entregam 20-80 tokens/segundo, o Groq entrega mais de 500 tokens/segundo. Isso permite que o agente execute múltiplos ciclos de "Pensamento-Ação-Observação" em milissegundos, tornando a experiência do usuário final instantânea.

Seu Time Comercial com Inteligência Artificial: Como Implantar Agentes Autônomos com Custo Zero

Times comerciais brasileiros perdem, em média, 66% do tempo em atividades que não são vendas — qualificação de leads, atualização de CRM, pesquisa pré-reunião e follow-ups manuais (Salesforce State of Sales, estimativa para mercado BR). Para ME, EPP e MEI a ideia é criar um MVP AgentForce ideal para resolver exatamente isso com custo zero, mas com alta qualidade de entrega: agentes de IA autônomos que executam essas tarefas de forma assíncrona, usando uma stack 100% gratuita para validação — Next.js 16, Supabase, LangChain.js e Groq.

Este artigo explica o conceito, articula a dor com dados reais e entrega um tutorial executável do zero ao primeiro agente em produção.

A Dor que Ninguém Quer Admitir

O time de vendas está em reunião. Entre qualificar leads, pesquisar empresas, escrever follow-ups e atualizar o CRM, sobra pouco tempo para o que realmente importa: vender. Estudos da Salesforce indicam que representantes comerciais gastam apenas 34% do tempo em atividades de vendas direta (Salesforce State of Sales, 5ª edição). O resto é administração. Não porque querem — porque não têm infraestrutura que faça isso por eles.

O problema se manifesta em três frentes concretas:

Qualificação manual de leads: Um SDR médio recebe 80 a 150 leads por mês (estimativa). Para qualificar cada um com o framework BANT — Budget, Authority, Need, Timeline — são necessários de 20 a 40 minutos de pesquisa. São até 100 horas mensais gastas numa tarefa que segue um roteiro previsível e pode ser delegada a um agente.

Pesquisa pré-reunião: Antes de uma demo, um bom vendedor passa 30 a 60 minutos pesquisando a empresa, o cargo do contato, notícias recentes e possíveis pontos de dor. Numa agenda com 20 reuniões mensais, são 20 horas de trabalho que poderiam ser entregues automaticamente no dia anterior.

Follow-ups esquecidos: Estudos da Invesp indicam que 80% das vendas exigem cinco ou mais interações de follow-up, mas 44% dos vendedores desistem após o primeiro contato (estimativa combinada). O gap não é falta de intenção — é falta de capacidade operacional para manter consistência.

Qual é o custo real disso para uma empresa com dez vendedores? Se cada vendedor perde 12 horas por semana em tarefas administrativas, são 480 horas mensais — o equivalente a três funcionários em tempo integral — sendo consumidas por trabalho que um agente de IA pode executar enquanto o time dorme.

O Que é o AgentForce MVP

O AgentForce MVP não é um chatbot. Não é um workflow de automação com nós e condicionais. É uma plataforma de agentes de IA autônomos que raciocinam, planejam e executam tarefas usando ferramentas reais — APIs de CRM, envio de email, busca de informações — sem intervenção humana em cada etapa.

A distinção técnica importa. Um chatbot responde perguntas. Um workflow executa etapas pré-definidas. Um agente autônomo recebe um objetivo de alto nível — "qualificar o lead joao@empresa.com e enviar follow-up se score >= 70" — e decide autonomamente quais ferramentas usar, em qual ordem, avaliando cada resultado antes do próximo passo. É o padrão ReAct (Reasoning + Acting) do LangChain em ação.

markdown
1ARQUITETURA DO SISTEMA 2 3┌─────────────────────────────────────────────────────┐ 4│ CAMADA 1 — Interface (Next.js 16 + Vercel) │ 5│ Dashboard · Criação de agentes · Logs ao vivo │ 6└──────────────────────┬──────────────────────────────┘ 7 ↓ HTTP / Server Actions 8┌─────────────────────────────────────────────────────┐ 9│ CAMADA 2 — Orquestrador (LangChain ReAct Agent) │ 10│ Recebe tarefa → Raciocina → Executa ferramentas │ 11└──────────────────────┬──────────────────────────────┘ 12 ↓ Tool Calling 13┌─────────────────────────────────────────────────────┐ 14│ CAMADA 3 — LLM (Groq · Llama 3.1 70B) │ 15│ Decide: qual ferramenta, qual input, quando parar │ 16└──────────────────────┬──────────────────────────────┘ 17 ↓ Resultado 18┌─────────────────────────────────────────────────────┐ 19│ CAMADA 4 — Persistência (Supabase PostgreSQL) │ 20│ agents · runs · steps · auth · realtime WebSocket │ 21└─────────────────────────────────────────────────────┘ 22 23 Cada "run" é um ciclo completo: input → planejamento 24 → execução de N ferramentas → output final. 25 O usuário acompanha cada passo em tempo real via 26 Supabase Realtime (WebSocket).

O sistema vem com três agentes pré-configurados, cada um com um system prompt especializado e um conjunto de ferramentas específicas:

AgenteRoleFerramentas principaisCaso de uso
🎯 SDR AgentQualificação de Vendaslookup_lead, qualify_lead, send_email, update_crmAplica BANT, pontua leads e envia outreach personalizado
🛟 Support AgentAtendimento ao Clientesearch_kb, send_email, create_ticket, escalateResponde tickets com knowledge base e escala casos críticos
🔍 Research AgentInteligência Comercialweb_search, lookup_company, lookup_leadCompila briefing completo antes de reuniões comerciais

Stack Técnica: Por Que Cada Peça

Cada escolha da stack tem uma justificativa de negócio, não apenas técnica. O objetivo não foi escolher as tecnologias mais populares — foi escolher as que oferecem a maior capacidade operacional com custo zero durante a fase de validação.

ServiçoFunção no projetoFree TierAlternativa paga
Next.js 16Frontend + API Routes num único repo; Server Actions eliminam backend separadoIlimitado (OSS)
VercelDeploy automático via GitHub push; serverless functions incluídas; domínio .vercel.app100GB bandwidth/mêsPro: $20/mês
SupabasePostgreSQL + Auth + Realtime em um serviço; RLS garante isolamento de dados por usuário500MB, 50k req/diaPro: $25/mês
Groq + Llama 3.1 70BLLM gratuito com qualidade comparável ao GPT-4o em tarefas estruturadas; 500 tokens/s14.400 req/diaOpenAI: $0.015/1k tokens
LangChain.jsReAct Agent + Tool Calling; abstração de provider permite trocar LLM em 1 linhaOpen Source (MIT)
ResendFerramenta de email dos agentes; API simples, alta deliverability3.000 emails/mêsPro: $20/mês

Tutorial: Do Zero ao Primeiro Agente Rodando

As próximas seções são um tutorial executável. Cada passo tem um resultado verificável. Se você seguir na ordem, terá um SDR Agent qualificando leads em produção ao fim da leitura.

Estimativas: ~45 min de setup · R$ 0,00 · 4 contas a criar · 1 repo no GitHub.

Pré-requisitos

RequisitoVersão mínimaOnde obter
Node.js18.17+nodejs.org
Gitqualquergit-scm.com
Conta GitHubgithub.com (free)
Conta Supabasesupabase.com (free)
Conta Groqconsole.groq.com (free)
Conta Vercelvercel.com (free)

Resultado esperado: Quatro contas criadas e Node.js 18+ instalado localmente.

Setup do Supabase

Crie um novo projeto no Supabase (prefira a região São Paulo para menor latência). Depois, vá em SQL Editor e execute o script completo:

sql
1-- Extensão para UUIDs 2create extension if not exists "uuid-ossp"; 3 4-- Tabela de agentes 5create table public.agents ( 6 id uuid primary key default uuid_generate_v4(), 7 user_id uuid not null references auth.users(id) on delete cascade, 8 name text not null, 9 description text, 10 role text not null check (role in ('sales', 'support', 'research', 'custom')), 11 system_prompt text not null, 12 tools jsonb not null default '[]', 13 model text not null default 'llama-3.1-70b-versatile', 14 is_active boolean not null default true, 15 run_count integer not null default 0, 16 created_at timestamptz not null default now() 17); 18 19-- Tabela de execuções (runs) 20create table public.runs ( 21 id uuid primary key default uuid_generate_v4(), 22 agent_id uuid not null references public.agents(id) on delete cascade, 23 user_id uuid not null references auth.users(id) on delete cascade, 24 status text not null default 'pending' 25 check (status in ('pending', 'running', 'done', 'error')), 26 input text not null, 27 output text, 28 steps jsonb not null default '[]', 29 error_msg text, 30 duration_ms integer, 31 created_at timestamptz not null default now(), 32 finished_at timestamptz 33); 34 35-- Row Level Security: cada usuário vê apenas seus dados 36alter table public.agents enable row level security; 37alter table public.runs enable row level security; 38 39create policy "users_own_agents" on public.agents 40 for all using (auth.uid() = user_id) with check (auth.uid() = user_id); 41 42create policy "users_own_runs" on public.runs 43 for all using (auth.uid() = user_id) with check (auth.uid() = user_id); 44 45-- Realtime: habilita atualizações ao vivo na tabela de runs 46alter publication supabase_realtime add table public.runs; 47 48-- Trigger: incrementa run_count ao criar um run 49create or replace function public.increment_agent_run_count() 50returns trigger as $$ 51begin 52 update public.agents set run_count = run_count + 1 where id = new.agent_id; 53 return new; 54end; 55$$ language plpgsql; 56 57create trigger on_run_created 58 after insert on public.runs 59 for each row execute procedure public.increment_agent_run_count();

Após executar, copie as chaves em Project Settings → API:

  • Project URL → será o NEXT_PUBLIC_SUPABASE_URL
  • anon public key → será o NEXT_PUBLIC_SUPABASE_ANON_KEY
  • service_role key → será o SUPABASE_SERVICE_ROLE_KEY (nunca exponha no frontend)

Resultado esperado: Duas tabelas criadas (agents, runs) com RLS ativa e Realtime habilitado. Visível em Database → Tables no painel do Supabase.

Variáveis de Ambiente

Obtenha a API key do Groq em console.groq.com — crie uma conta, vá em API Keys e gere uma nova. Depois, crie o arquivo .env.local na raiz do projeto:

env
1# Supabase — Project Settings → API 2NEXT_PUBLIC_SUPABASE_URL=https://xxxxxxxxxxxx.supabase.co 3NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGc... 4SUPABASE_SERVICE_ROLE_KEY=eyJhbGc... 5 6# Groq — console.groq.com → API Keys (GRATUITO) 7GROQ_API_KEY=gsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxx 8 9# Resend — resend.com → API Keys (GRATUITO: 3000 emails/mês) 10# Opcional para o MVP — agente funciona sem email real 11RESEND_API_KEY=re_xxxxxxxxxxxxxxxxxxxxxxxxxxxx 12 13# URL da aplicação 14NEXT_PUBLIC_APP_URL=http://localhost:3000

Resultado esperado: Arquivo .env.local criado com 5–6 variáveis preenchidas. Nenhuma variável obrigatória faltando.

Primeiro Agente: SDR em Funcionamento

O orquestrador é a peça central. Ele recebe a tarefa, decide quais ferramentas usar em qual ordem, avalia cada resultado e produz o output final. Em LangChain, isso é o ReAct Agent — Reasoning + Acting:

typescript
1// lib/langchain/executor.ts — o coração do sistema 2import { ChatGroq } from "@langchain/groq"; 3import { AgentExecutor, createReactAgent } from "langchain/agents"; 4import { PromptTemplate } from "@langchain/core/prompts"; 5import { getToolsForAgent } from "./tools"; 6 7const REACT_PROMPT = `Você é um agente de negócios especialista da Empresa XYZ. Responda sempre em Português Brasileiro. 8 9{system_prompt} 10 11Você tem acesso às seguintes ferramentas: 12{tools} 13 14Nomes das ferramentas disponíveis: 15{tool_names} 16 17Use EXATAMENTE este formato: 18 19Pensamento: descreva brevemente o que precisa fazer 20Ação: nome_da_ferramenta 21Entrada da Ação: input da ferramenta 22Observação: resultado da ferramenta 23 24... (repita Pensamento/Ação/Entrada da Ação/Observação quantas vezes for necessário) 25 26Pensamento: agora tenho a resposta final 27Resposta Final: sua resposta detalhada 28 29Tarefa: {input} 30 31{agent_scratchpad}`; 32 33type RunAgentParams = { 34 systemPrompt: string; 35 tools: unknown[]; 36 model?: string; 37 input: string; 38 companyName?: string; 39 onStep?: (step: { 40 tool?: string; 41 input?: unknown; 42 log?: string; 43 timestamp: string; 44 }) => void; 45}; 46 47export async function runAgent({ 48 systemPrompt, 49 tools, 50 model, 51 input, 52 companyName = "AI2You", 53 onStep, 54}: RunAgentParams) { 55 if (!process.env.GROQ_API_KEY) { 56 throw new Error("GROQ_API_KEY não configurada."); 57 } 58 59 const llm = new ChatGroq({ 60 apiKey: process.env.GROQ_API_KEY, 61 model: model || "llama-3.1-70b-versatile", 62 temperature: 0.1, 63 maxTokens: 2048, 64 }); 65 66 const agentTools = getToolsForAgent(tools); 67 const prompt = PromptTemplate.fromTemplate(REACT_PROMPT); 68 69 const agent = await createReactAgent({ 70 llm, 71 tools: agentTools, 72 prompt: await prompt.partial({ 73 system_prompt: systemPrompt, 74 nome_da_empresa: companyName, 75 }), 76 }); 77 78 const executor = new AgentExecutor({ 79 agent, 80 tools: agentTools, 81 maxIterations: 10, 82 handleParsingErrors: 83 "Formato inválido. Refaça exatamente no padrão Pensamento/Ação/Entrada da Ação/Observação/Resposta Final.", 84 returnIntermediateSteps: true, 85 }); 86 87 const result = await executor.invoke( 88 { input }, 89 { 90 callbacks: [ 91 { 92 async handleAgentAction(action) { 93 onStep?.({ 94 tool: action.tool, 95 input: action.toolInput, 96 log: action.log, 97 timestamp: new Date().toISOString(), 98 }); 99 }, 100 }, 101 ], 102 } 103 ); 104 105 return result; 106}

🛠️ Ferramentas (Tools) e Integrações

Para que o agente seja útil, ele precisa de "mãos". Usamos o DynamicTool do @langchain/core.

typescript
1// lib/langchain/tools.ts 2import { DynamicStructuredTool } from "@langchain/core/tools"; 3import { z } from "zod"; 4import { Resend } from "resend"; 5 6if (!process.env.RESEND_API_KEY) { 7 console.warn("⚠️ RESEND_API_KEY não configurada. Emails serão simulados."); 8} 9 10const resend = new Resend(process.env.RESEND_API_KEY); 11 12export const sendEmailTool = new DynamicStructuredTool({ 13 name: "enviar_email_comercial", 14 15 description: ` 16Envia um email comercial para um lead. 17 18Use esta ferramenta quando precisar: 19- enviar follow-up 20- enviar proposta 21- responder interesse de lead 22`, 23 24 schema: z.object({ 25 to: z.string().email().describe("Email do destinatário"), 26 subject: z.string().describe("Assunto do email"), 27 body: z.string().describe("Conteúdo do email"), 28 }), 29 30 func: async ({ to, subject, body }) => { 31 try { 32 if (!process.env.RESEND_API_KEY) { 33 return `Simulação: email seria enviado para ${to}`; 34 } 35 36 await resend.emails.send({ 37 from: "Empresa XYZ <comercial@empresaxyz.com>", 38 to, 39 subject, 40 text: body, 41 }); 42 43 return `Email enviado com sucesso para ${to}.`; 44 } catch (error) { 45 console.error("Erro ao enviar email:", error); 46 return "Erro ao enviar email. Tente novamente."; 47 } 48 }, 49}); 50

Para testar o SDR Agent, abra o dashboard em localhost:3000/dashboard, crie um agente com role sales e execute esta tarefa:

text
Qualificar o lead joao.silva@techbr.com.br. Se o score for maior ou igual a 70, enviar um email de follow-up personalizado com base no perfil da empresa e no estágio identificado. Registrar o resultado no CRM.

O agente vai executar a sequência autonomamente: buscar o lead, aplicar o framework BANT, calcular o score, decidir se envia email, redigir o email personalizado e registrar tudo. Você acompanha cada passo em tempo real no painel de logs via Supabase Realtime.

Resultado esperado: Run com status done, output com análise BANT completa e confirmação de email enviado (ou simulado se RESEND_API_KEY não estiver configurada). Steps visíveis no histórico de execução.

Deploy na Vercel

bash
1# Instala a CLI da Vercel globalmente 2npm install -g vercel 3 4# Faz login 5vercel login 6 7# Deploy de produção (a partir da raiz do projeto) 8vercel --prod 9 10# Configura as variáveis de ambiente na Vercel 11vercel env add NEXT_PUBLIC_SUPABASE_URL 12vercel env add NEXT_PUBLIC_SUPABASE_ANON_KEY 13vercel env add SUPABASE_SERVICE_ROLE_KEY 14vercel env add GROQ_API_KEY 15vercel env add RESEND_API_KEY 16 17# Re-deploy para aplicar as variáveis 18vercel --prod 19 20# Saída esperada: 21# ✓ Production: https://agentforce-xxxx.vercel.app

Resultado esperado: Aplicação acessível em https://seu-projeto.vercel.app com todos os agentes funcionando. Logs de deploy visíveis no painel da Vercel.

Quando e Como Escalar

O MVP entregue aqui é uma plataforma de validação, não um produto finalizado. A questão mais importante não é técnica — é saber quando os sinais de mercado justificam investimento adicional.

Métricas das primeiras 4 semanas

MétricaSinal fracoSinal forte
Retenção D1Usuário executa agente uma vez e não voltaUsuário volta no dia seguinte e cria segundo agente
Agente mais usadoDistribuição uniforme (nenhum se destaca)Um agente com 60%+ dos runs — define o ICP
Intenção de pagarNinguém pergunta sobre preçoAlguém perguntar "quanto custa para mais usuários?"
Pedidos de ferramentaNenhuma solicitação de integraçãoPedidos específicos: "conecta com meu HubSpot?"

Decisão de monetização

Quando os sinais forem fortes, a estrutura de planos que faz sentido para uma plataforma de agentes B2B:

PlanoPreçoLimitesTarget
StarterR$ 49/mês3 agentes, 500 runs/mêsFreelancers e solopreneurs
GrowthR$ 149/mês10 agentes, 2.000 runs/mêsPMEs com time de 5–15 pessoas
ScaleR$ 399/mêsIlimitado + SLA + suporteScale-ups com time comercial estruturado

Integrações prioritárias para escala

As integrações que maximizam o valor percebido imediato, em ordem de impacto:

  1. HubSpot / Pipedrive — CRM nativo elimina o principal atrito do SDR Agent; uma ferramenta real substituindo a simulação de lookup_lead
  2. Slack — notificações de runs concluídos no canal do time comercial; aumenta a percepção de valor sem esforço do usuário
  3. Google Calendar — Research Agent entrega briefing automaticamente 24h antes de cada reunião na agenda
  4. Zendesk / Intercom — Support Agent integrado ao sistema de tickets real, com histórico de conversa e escalação nativa

FAQ (Schema.org)

  • A IA vai substituir meu time comercial? Não. Ela amplia a capacidade humana. Um Tony Stark (vendedor) com Jarvis (Agente) é 10x mais produtivo.
  • Quanto custa manter essa stack? No volume de MVP, R$ 0,00. Groq, Supabase (Free Tier) e Vercel possuem camadas gratuitas generosas.
  • É seguro usar Groq com dados sensíveis? Sim, desde que você utilize as chaves de API em ambiente Server-Side (Next.js) e configure o RLS no Supabase.

🚀 Conclusão

A janela de oportunidade para construir essa infraestrutura sem custo é agora. O Groq oferece o Llama 3.1 70B gratuitamente como estratégia de tração. Em quatro semanas, com R$ 0,00 e foco em arquitetura, você pode validar se agentes autônomos resolvem o gargalo do seu time.

O objetivo do AgentForce MVP não é ser a plataforma definitiva: é ser o instrumento de descoberta mais barato possível para validar se agentes autônomos resolvem o problema do seu time comercial.

Quatro semanas, R$ 0,00 e dez usuários beta reais são suficientes para ter uma resposta definitiva.

Publicado por Elvis Silva · Arquiteto de Sistemas Cognitivos na AI2YOU.