DEV Community

Cover image for Agentes de IA para Marketing: Um Estudo de Caso Real de Automação de Conteúdo
jucelinux
jucelinux

Posted on

Agentes de IA para Marketing: Um Estudo de Caso Real de Automação de Conteúdo

O Desafio: 45 Artigos por Mês Sem Virar uma Fábrica de Conteúdo Genérico

Criar 45 artigos de qualidade por mês parece loucura, certo? É exatamente o que pensei quando defini essa meta para o AffiliateOS - meu experimento de marketing de afiliados automatizado com IA.

O problema não é apenas velocidade. É manter qualidade editorial, personalidade única e honestidade em escala. Ferramentas de IA genéricas (Jasper, Copy.ai e similares) geram conteúdo rápido, mas tudo soa igual - aquele tom corporativo pasteurizado que ninguém quer ler.

A hipótese que testei: e se ao invés de uma IA generalista, eu criasse 8 agentes especializados? Cada um com uma responsabilidade específica, trabalhando em conjunto como uma equipe de marketing real.

Este artigo documenta a jornada. Não é um tutorial passo-a-passo nem um case de sucesso inflado. É um relato honesto de como construí o sistema, as escolhas técnicas que fiz, os desafios que enfrentei e o que aprendi no processo.

Por Que Automação de Conteúdo é Tão Difícil

O marketing de conteúdo moderno tem um dilema cruel: escala versus qualidade.

Você precisa publicar consistentemente para ranquear no Google. Mas cada artigo precisa ser único, útil e envolvente para converter leitores. Templates ajudam com consistência, mas matam personalidade. IA genérica é rápida, mas produz conteúdo sem alma.

Aqui está o que NÃO funciona:

  • Templates fixos: Todo review fica idêntico. Leitores percebem. Google também.
  • Prompts genéricos: "Escreva um artigo sobre X" produz conteúdo superficial e previsível.
  • IA sem contexto: Alucina dados técnicos, ignora nuances do nicho, usa jargão errado.
  • Ausência de processo: Escrever direto sem planejamento resulta em estrutura fraca e SEO ruim.

O que eu precisava era um sistema com opinião - que entendesse profundamente cada etapa da criação de conteúdo e mantivesse qualidade através de especialização.

A Solução: Arquitetura de 8 Agentes Especializados

Pense em cada agente como um especialista em uma equipe de marketing. O planning-agent é o estrategista criativo. O content-agent é o escritor. O seo-agent é o analista de performance. Cada um faz uma coisa muito bem.

Aqui está a arquitetura completa:

🧠 Orchestrator Agent - Coordena todo o pipeline e toma decisões estratégicas de priorização.

📝 Planning Agent - Dialoga com você sobre a ideia do artigo e cria um creative brief detalhado (conceito, ângulo, tom, estrutura customizada).

🗺️ Routing Agent - Decide a melhor URL analisando benchmarks do nicho (ex: /coupons/ converte 4x mais que /reviews/ segundo dados de VPNMentor).

🔍 Research Agent - Pesquisa dados atualizados de produtos, analisa concorrência e valida informações antes da criação.

✍️ Content Agent - Gera o artigo seguindo o creative brief com estrutura personalizada (não templates genéricos).

🎯 SEO Agent - Otimiza meta tags, headings e keywords sem quebrar a personalidade do conteúdo.

🚀 Publisher Agent - Gerencia commits Git, deploy automático e validação de publicação.

📊 Analytics Agent - Monitora performance e sugere otimizações baseadas em dados reais (planejado - funciona após validação inicial).

O fluxo completo é: Planning → Routing → Research → Content → SEO → Publish → Analytics.

Do conceito inicial ao deploy automático, leva 20-35 minutos. Mas a mágica não está na velocidade - está na qualidade mantida através da especialização.


🛠️ Box Técnico: Arquitetura de Agentes e Prompts

Cada agente é um arquivo .md em .claude/agents/ com prompt especializado. Não são scripts executáveis - são prompts refinados que guiam o comportamento de Claude 4.5 Sonnet via Claude Code CLI.

Estatísticas do código:

  • 8 agentes definidos (7 implementados, 1 planejado)
  • 3.170 linhas de prompts especializados
  • Maior agente: content-agent (790 linhas)
  • Menor agente: seo-agent (305 linhas)

Por que prompts especializados > prompts genéricos:

  1. Contexto específico: Planning-agent conhece estratégias de elicitação de requisitos. SEO-agent sabe fórmulas de meta description.
  2. Guardrails claros: Publisher-agent tem regra crítica: NUNCA faz commit sem aprovação explícita.
  3. Output consistente: Cada agente produz JSON/Markdown estruturado que o próximo agente consome.
  4. Refinamento iterativo: Prompts evoluem conforme uso real. Planning v2.0 é 40% melhor que v1.0.

Exemplo de trecho do Planning Agent:

## YOUR ROLE
You are the planning-agent of AffiliateOS. Your role is to collaborate
with the user to define a complete creative brief for content creation.

## IMPORTANT PRINCIPLES
1. NEVER suggest generic templates. Each article must have unique structure.
2. ALWAYS ask clarifying questions before assuming intent.
3. BALANCE technical depth with accessibility based on target audience.
4. DEFINE specific tone - "professional" is too vague.
Enter fullscreen mode Exit fullscreen mode

Ferramentas disponíveis aos agentes:

  • WebSearch: Buscar informações atualizadas
  • WebFetch: Extrair conteúdo de URLs específicas
  • Read/Write: Manipular arquivos do projeto
  • Grep/Glob: Buscar padrões no codebase
  • Bash: Executar comandos (git, npm, deploy)

Coordenação entre agentes:
O orchestrator-agent gerencia handoffs. Quando planning-agent gera creative-brief.json, o orchestrator verifica estrutura do JSON antes de passar para routing-agent. Isso previne erros em cascata.


Planning Agent: Como Funciona o Diálogo Colaborativo

Aqui está onde a v2.0 do AffiliateOS ficou interessante. Inicialmente, eu tinha templates fixos (review.md, comparison.md). Funcionava, mas todo conteúdo ficava com a mesma cara. Sites pasteurizados.

A solução foi criar o planning-agent - que dialoga com você antes de escrever qualquer linha.

Como funciona na prática:

Você: "Quero criar conteúdo sobre NordVPN."

Planning Agent: "Legal! Deixa eu entender melhor. Qual o objetivo desse conteúdo?"

Você: "Quero mostrar como NordVPN é bom para privacidade."

Planning Agent: "Ótimo ângulo. Que tipo de pessoa você quer atingir? Usuários iniciantes ou tech-savvy?"

Você: "Mais para iniciantes - pessoas preocupadas com privacidade mas sem conhecimento técnico."

Planning Agent: "Perfeito. E o tom? Você prefere algo educacional e acessível, ou mais agressivo tipo 'pare de ser rastreado AGORA'?"

Você: "Educacional, sem alarmismo."

Planning Agent: "Entendido. Vou criar um brief para um artigo educacional sobre privacidade com NordVPN, focado em iniciantes, tom acessível. Estrutura sugerida: [...]"

O resultado é um creative brief completo em JSON com:

  • Conceito único do artigo
  • Ângulo editorial específico
  • Tom personalizado
  • Estrutura customizada (não template genérico)
  • Keywords alinhadas com intenção
  • Guidelines de qualidade

Exemplo real do brief gerado para ESTE artigo:

{
  title: "Agentes de IA para Marketing: Um Estudo de Caso Real",
  concept: "Documentar a jornada de construção do AffiliateOS",
  angle: "Estudo de caso autêntico e educacional. Não é tutorial nem case inflado.",
  tone: "Mentor técnico acessível - entende tecnologia mas explica claramente.",
  structure: {
    type: "layered",
    description: "Camada 1 (narrativa) acessível a todos. Camada 2 (boxes técnicos) para devs."
  }
}
Enter fullscreen mode Exit fullscreen mode

Essa mudança simples eliminou pasteurização. Cada artigo agora tem personalidade própria, estrutura otimizada para seu objetivo específico e tom adequado à audiência.

Routing Agent: Decisões Data-Driven de URL

Outro aprendizado crucial: a rota importa tanto quanto o conteúdo.

Quando criei os primeiros artigos, usei /reviews/ para tudo. Fazia sentido semanticamente, mas ignorava uma realidade do mercado: diferentes URLs convertem diferente.

Exemplo real de benchmarks:

Analisando o VPNMentor (líder do nicho VPN), descobri:

  • /coupons/nordvpn converte 4x mais que /reviews/nordvpn
  • /best-vpn-for-streaming ranqueia melhor que /vpn-reviews/streaming
  • /tools/ tem CTR 2x maior que /resources/ para conteúdo utilitário

O routing-agent automatiza essa análise. Ele:

  1. Analisa benchmarks do nicho (VPNMentor para VPN, NerdWallet para fintech, swyx.io para tech personal brands)
  2. Consulta o routing-config.json com métricas de conversão por rota
  3. Decide a melhor URL baseado em intent da keyword + potencial de conversão
  4. Justifica a decisão com dados (não achismos)

Para ESTE artigo, a decisão foi /blog/ porque:

  • Padrão universal de personal brands tech (swyx.io, kentcdodds.com, leerob.com)
  • Alinha com objetivo de construção de autoridade (não conversão imediata)
  • SEO otimizado para keywords informacionais de long-tail
  • Simplicidade vence over-engineering (não preciso de /estudos-de-caso/ separado)

🗺️ Box Técnico: Como o Routing Agent Analisa Benchmarks

O routing-agent não inventa decisões. Ele consulta o arquivo routing-config.json que mapeia rotas do site com métricas de performance.

Estrutura do routing-config.json:

{
  active_routes: [
    {
      path: "/blog",
      purpose: "Artigos de opinião, insights e reflexões técnicas",
      benchmark_sites: ["swyx.io", "kentcdodds.com", "leerob.io"],
      notes: "Authority content - builds personal brand and expertise"
    },
    {
      path: "/reviews",
      purpose: "Reviews honestos de ferramentas e SaaS",
      benchmark_sites: ["techradar.com", "theverge.com/reviews"],
      notes: "Affiliate content - monetization while maintaining authenticity"
    }
  ],
  route_performance_insights: {
    "/blog": {
      typical_ctr: "1-2%",
      intent: "informational",
      conversion_stage: "awareness-top-funnel",
      seo_potential: "high - thought leadership keywords"
    },
    "/reviews": {
      typical_ctr: "4-6%",
      intent: "commercial",
      conversion_stage: "consideration-decision",
      seo_potential: "high - product keywords"
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Algoritmo de decisão:

  1. Parse creative brief: Identifica objetivo (monetização vs autoridade), audiência e keywords
  2. Match intent: Keywords informacionais → rotas awareness. Keywords comerciais → rotas decision.
  3. Consulta benchmarks: Verifica o que líderes do nicho fazem para conteúdo similar
  4. Scoring de rotas: CTR esperado × SEO potential × alinhamento com objetivo
  5. Output: Rota escolhida + justificativa detalhada com dados

Benefício:
Rotas otimizadas para conversão desde o primeiro dia. Não preciso esperar 6 meses de A/B testing - aproveito aprendizados de campeões do nicho.

Limitação:
Benchmarks são de terceiros, não dados próprios. Após tráfego real, o analytics-agent vai refinar essas decisões com dados próprios.


Stack Tecnológica: Astro, TypeScript, Tailwind e Claude

Escolher a stack certa foi crítico. Não queria framework JS pesado (Next.js) nem CMS complexo (WordPress). Precisava de:

  • Performance excepcional (static site, zero JS desnecessário)
  • Type safety (conteúdo validado em build time, não em produção)
  • Developer experience impecável (hot reload rápido, componentes reutilizáveis)
  • SEO nativo (sitemap automático, meta tags, canonical URLs)

A stack escolhida:

🚀 Astro 5.14.1 - Framework principal para sites estáticos. Por quê?

  • Static site generation (SSG) - sites absurdamente rápidos
  • Zero JS por padrão - só carrega JavaScript quando necessário
  • Hidratação parcial de React - componentes interativos apenas onde precisa
  • Build em 30-60 segundos para site completo

⚛️ React 18.3.1 - Apenas para componentes interativos. Por quê?

  • ThemeToggle (dark mode) precisa de estado
  • Dialog/Modal (Radix UI) precisa de interatividade
  • Resto é Astro puro (mais rápido)

📘 TypeScript 5.4.5 - Type safety em tudo. Por quê?

  • Content Collections com schema Zod validam frontmatter
  • Componentes tipados previnem bugs
  • Autocomplete perfeito em VSCode

🎨 Tailwind CSS 3.4.18 - Utility-first CSS. Por quê?

  • Design system consistente via tokens CSS
  • Dark mode built-in (dark: prefix)
  • Componentes reutilizáveis com CVA (Class Variance Authority)

🤖 Claude 4.5 Sonnet - IA dos agentes. Por quê?

  • Reasoning superior para tarefas complexas (planning, routing)
  • Context window grande (200k tokens) - processa documentação inteira
  • Tools integration via Claude Code CLI

☁️ Cloudflare Pages - Hosting e deploy. Por quê?

  • Deploy automático via Git push
  • Global edge network (CDN mundial)
  • Zero configuração necessária
  • Grátis para uso pessoal

Resultado: Sites com Lighthouse score 95+ em Performance, carregamento em < 1 segundo e bundle JS de apenas 50-80KB (gzipped).


🏗️ Box Técnico: Content Collections e Type Safety

Uma das melhores features do Astro é Content Collections - type-safe content management com validação em build time.

Como funciona:

Arquivo src/content/config.ts define o schema Zod:

import { defineCollection, z } from 'astro:content';

const contentSchema = z.object({
  title: z.string(),
  description: z.string().max(160),
  slug: z.string().optional(),
  route: z.string(), // Routing dinâmico (v2.0)
  rating: z.number().min(0).max(5).optional(),
  publishDate: z.coerce.date(),
  updateDate: z.coerce.date().optional(),
  category: z.string(),
  tags: z.array(z.string()).min(1),
  author: z.string(),
  featured: z.boolean().default(false),
  affiliateLink: z.string().url().optional(),
  schema: z.record(z.unknown()).optional(),
  faq: z.array(z.object({
    question: z.string(),
    answer: z.string(),
  })).optional(),
});

const articles = defineCollection({
  type: 'content',
  schema: contentSchema,
});

export const collections = { articles };
Enter fullscreen mode Exit fullscreen mode

O que isso garante:

✅ Description nunca ultrapassa 160 caracteres (limite de meta tag)
✅ Tags sempre presentes (mínimo 1)
✅ Rating entre 0-5 (nunca 6 ou -1)
✅ AffiliateLink sempre URL válida
✅ Route obrigatória (routing dinâmico v2.0)

Benefícios reais:

  1. Erros detectados em build time, não em produção
  2. Autocomplete de campos em VSCode ao escrever frontmatter
  3. Impossível publicar conteúdo malformado - build falha se schema inválido
  4. Refatoração segura - mudar schema atualiza todos os artigos

Path aliases para imports limpos:

// tsconfig.json e astro.config.mjs
{
  "@/": "src/",
  "@ui": "src/components/ui/",
  "@content": "src/content/",
  "@design-system": "src/design-system/"
}
Enter fullscreen mode Exit fullscreen mode

Uso:

import { Button } from '@ui/Button'; // Não: '../../../components/ui/Button'
import { cn } from '@/lib/utils'; // Não: '../../lib/utils'
Enter fullscreen mode Exit fullscreen mode

Resultado: Codebase limpa, type-safe e com developer experience de aplicações enterprise.


O Fluxo Completo: De Ideia a Deploy em 30 Minutos

Vamos seguir um artigo real do início ao fim para ver como os agentes trabalham juntos.

Cenário: Quero criar um artigo sobre "NordVPN para Netflix".

Fase 1: Planning (5-10 minutos)

Eu: "Quero criar conteúdo sobre usar NordVPN para assistir Netflix de outros países."

Planning-agent dialoga:

  • Qual o objetivo? (informar vs converter)
  • Audiência? (iniciantes vs tech-savvy)
  • Tom? (educacional vs promocional)
  • Estrutura? (tutorial vs review vs comparação)

Output: creative-brief.json com conceito único, ângulo editorial, tom personalizado e estrutura customizada.

Fase 2: Routing (2-3 minutos)

Routing-agent analisa benchmarks:

  • VPNMentor usa /coupons/nordvpn-netflix (alta conversão)
  • TechRadar usa /how-to/use-vpn-for-netflix (alto SEO)
  • Meu objetivo: converter (afiliado)

Decisão: /coupons/nordvpn-netflix porque conversão > volume de tráfego.

Output: routing-decision.json com rota escolhida + justificativa com dados.

Fase 3: Research (3-5 minutos)

Research-agent coleta dados:

  • Preço atual do NordVPN (via WebSearch)
  • Catálogos Netflix por país (fontes oficiais)
  • Reviews de usuários (Reddit, Trustpilot)
  • Specs técnicas (servidores, velocidade)

Output: research-report.json com dados verificáveis e fontes.

Fase 4: Content Generation (5-8 minutos)

Content-agent cria artigo:

  • Segue estrutura do creative brief (não template genérico)
  • Usa dados do research report
  • Mantém tom definido no planning
  • Inclui disclaimer de afiliado
  • Usa ícones Lucide (não emojis)

Output: Artigo completo em MDX com frontmatter validado.

Fase 5: SEO Optimization (2-3 minutos)

SEO-agent otimiza:

  • Meta description 150-160 caracteres
  • Title tag 50-60 caracteres
  • Headings hierárquicos (H1 → H2 → H3)
  • Keywords density 1-2% (uso natural)
  • Schema markup (Article structured data)
  • Internal links para artigos relacionados

Output: Artigo otimizado sem quebrar personalidade.

Fase 6: Publishing (1-2 minutos + 2-5 deploy)

Publisher-agent:

  • Salva em src/content/articles/coupons-nordvpn-netflix.md
  • Atualiza routing-config.json
  • Cria commit Git descritivo
  • Aguarda aprovação humana (regra crítica!)
  • Push para main → deploy automático Cloudflare Pages

Output: Artigo live em 2-5 minutos após push.

Total: 20-35 minutos do conceito ao deploy. 90% automatizado, 10% revisão humana.

A revisão humana é crítica - valido qualidade editorial, accuracy de dados técnicos e tom antes de aprovar o commit.

Design System: Por Que OKLCH é Superior a HSL/RGB

Um detalhe técnico que fez diferença: escolher OKLCH color space ao invés de HSL ou RGB para o design system.

Por que isso importa?

HSL tem um problema sutil mas crítico: inconsistência perceptual de brilho. Um amarelo hsl(60, 100%, 50%) parece muito mais claro que um azul hsl(240, 100%, 50%), mesmo ambos tendo L=50%.

Isso quebra dark mode - você precisa ajustar manualmente o L de cada cor para parecerem balanceadas.

OKLCH resolve isso.

OKLCH (Lightness, Chroma, Hue) foi projetado para consistência perceptual. L=70% em qualquer cor tem o mesmo brilho percebido pelo olho humano.

Benefícios reais:

✅ Dark mode balanceado sem ajustes manuais
✅ Transições de cor suaves e previsíveis
✅ Acessibilidade melhor (contraste consistente)
✅ Código mais limpo (menos magic numbers)

Implementação:

/* src/design-system/tokens.css */
:root {
  /* Light mode */
  --background: oklch(1.0000 0 0); /* Branco puro */
  --foreground: oklch(0.3588 0.1354 278.6973); /* Roxo escuro */
  --primary: oklch(0.6056 0.2189 292.7172); /* Roxo vibrante */
  --border: oklch(0.9299 0.0334 272.7879); /* Cinza claro */
}

[data-theme="dark"], .dark {
  --background: oklch(0.2077 0.0398 265.7549); /* Roxo muito escuro */
  --foreground: oklch(0.9299 0.0334 272.7879); /* Cinza claro */
  --primary: oklch(0.6056 0.2189 292.7172); /* Roxo vibrante (mesmo!) */
}
Enter fullscreen mode Exit fullscreen mode

Tailwind CSS consome estes tokens via var(--background) automaticamente.

Outros tokens do design system:

  • Tipografia: Roboto (UI), Playfair Display (headings), Fira Code (code)
  • Border radius: 4 níveis (sm, md, lg, xl) baseados em --radius: 0.625rem
  • Shadows: 7 níveis (2xs → 2xl) com consistência OKLCH
  • Dark mode: Toggle React com persistência em localStorage

🎨 Box Técnico: Componentes com Class Variance Authority

Uma das melhores patterns de componentes React que descobri: Class Variance Authority (CVA).

CVA permite definir variantes de componentes de forma tipada e composável.

Exemplo: Button Component

// src/components/ui/Button.tsx
import { cva, type VariantProps } from 'class-variance-authority';
import { cn } from '@/lib/utils';

const buttonVariants = cva(
  // Base classes (sempre aplicadas)
  'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50',
  {
    variants: {
      variant: {
        default: 'bg-primary text-primary-foreground hover:bg-primary/90',
        destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',
        outline: 'border border-input bg-background hover:bg-accent',
        ghost: 'hover:bg-accent hover:text-accent-foreground',
      },
      size: {
        default: 'h-10 px-4 py-2',
        sm: 'h-9 rounded-md px-3',
        lg: 'h-11 rounded-md px-8',
        icon: 'h-10 w-10',
      },
    },
    defaultVariants: {
      variant: 'default',
      size: 'default',
    },
  }
);

export const Button = ({ variant, size, className, ...props }) => {
  return (
    <button
      className={cn(buttonVariants({ variant, size, className }))}
      {...props}
    />
  );
};
Enter fullscreen mode Exit fullscreen mode

Uso:

<Button variant="default" size="lg">Ver Oferta</Button>
<Button variant="outline">Saiba Mais</Button>
<Button variant="ghost" size="icon">×</Button>
Enter fullscreen mode Exit fullscreen mode

Benefícios:

Type-safe: TypeScript garante que variant é um valor válido
Composável: Combina variantes com classes customizadas via className
Consistente: Todas as variações de Button usam mesmas base classes
Manutenível: Mudar estilo de todos os buttons = editar um arquivo

Utility cn() para merge de classes:

// src/lib/utils.ts
import { type ClassValue, clsx } from 'clsx';
import { twMerge } from 'tailwind-merge';

export function cn(...inputs: ClassValue[]) {
  return twMerge(clsx(inputs));
}
Enter fullscreen mode Exit fullscreen mode

Combina clsx (conditional classes) com tailwind-merge (resolve conflitos de classes Tailwind). Essencial para componentes que aceitam className customizado.

Resultado: Biblioteca de componentes profissional, tipada e reutilizável - qualidade de shadcn/ui.


Resultados Reais (Sem Hype)

Projeto está em fase inicial. Vou compartilhar números honestos - sem inflar, sem esconder.

O que foi construído até agora:

  • ✅ 8 agentes especializados (7 implementados, 1 planejado)
  • ✅ 3.170 linhas de prompts refinados
  • ✅ 2 nichos ativos (vpn-saas + jucelinux personal brand)
  • ✅ 1 site deployado (vpn-reviews-br.pages.dev)
  • ✅ Stack completa: Astro + React + TypeScript + Tailwind + Claude
  • ✅ Routing dinâmico v2.0 com benchmarks automatizados
  • ✅ Design system OKLCH com dark mode
  • ✅ Pipeline completo automatizado (20-35 minutos conceito→deploy)

Velocidade de produção:

  • Meta inicial: 45 artigos/mês
  • Tempo por artigo: 20-35 minutos (automação)
  • Revisão humana: ~10 minutos por artigo (validação qualidade)
  • Total realista: 30-40 minutos por artigo (incluindo revisão)

Qualidade percebida:

  • Content Collections com Zod: zero artigos malformados publicados
  • Planning v2.0: eliminou pasteurização - cada artigo tem personalidade única
  • Ícones Lucide: consistência visual profissional
  • Design tokens OKLCH: dark mode perfeito sem ajustes manuais

Desafios enfrentados:

Sincronização entre agentes - garantir que output de um serve como input válido do próximo
Validação de dados - IA pode alucinar specs técnicas se não usar WebSearch
SEO vs personalidade - otimizar sem keyword stuffing
Decisões de routing sem dados próprios - confiar em benchmarks de terceiros inicialmente

O que funcionou bem:

✅ Planning colaborativo - dialoga antes de escrever
✅ Routing baseado em benchmarks - decisões data-driven desde dia 1
✅ Type safety via Content Collections - bugs detectados em build
✅ Prompts especializados - qualidade superior a IA genérica
✅ Guardrails humanos - publisher nunca faz commit sem aprovação

O que não funcionou (ainda):

⚠️ Analytics-agent ainda não implementado - preciso de tráfego real primeiro
⚠️ Internal linking automático - ainda manual
⚠️ A/B testing de creative briefs - preciso de volume para validar

Métricas de SEO: Aguardando primeiros 30-60 dias de indexação. Meta realista: 60% dos artigos ranqueando top 50 em 90 dias para long-tail keywords.

Receita: Zero até agora (aguardando aprovação de programas de afiliados). Meta inicial: R$50-200/mês como validação de que o sistema funciona.

Não é um case de sucesso (ainda). É um experimento em andamento com resultados promissores.

Lições Aprendidas: 7 Insights Práticos

1. Planning Colaborativo Elimina Pasteurização

Problema: Templates fixos (review.md, comparison.md) tornavam todo conteúdo idêntico.

Solução: Planning-agent dialoga antes de escrever. Cada artigo tem creative brief único com estrutura customizada.

Impacto: Qualidade editorial superior. Sites não ficam "pasteurizados". Leitores percebem autenticidade.

2. Routing Dinâmico Baseado em Benchmarks é Game-Changer

Problema: Usar /reviews/ para tudo ignorava que /coupons/ converte 4x mais (dados VPNMentor).

Solução: Routing-agent analisa benchmarks de líderes do nicho e toma decisões data-driven de URL.

Impacto: Taxas de conversão otimizadas desde dia 1. Não preciso de 6 meses de A/B testing.

3. Content Collections + Zod = Type Safety em Conteúdo

Problema: Frontmatter malformado quebrava builds. Descobrir em produção.

Solução: Schema Zod valida todo frontmatter em build time. Description > 160 chars? Build falha.

Impacto: Zero bugs de conteúdo malformado em produção. Developer experience superior.

4. OKLCH > HSL/RGB para Design Systems

Problema: HSL tem inconsistência perceptual. Amarelo L=50% parece mais claro que azul L=50%. Dark mode fica desbalanceado.

Solução: OKLCH garante consistência perceptual de brilho. L=70% tem mesmo brilho em qualquer cor.

Impacto: Dark mode balanceado sem ajustes manuais. Acessibilidade melhor. Design profissional.

5. Lucide Icons > Emojis para Profissionalismo

Problema: Emojis renderizam diferente entre sistemas (Windows vs Mac vs Linux). Inconsistência visual.

Solução: Lucide Icons - 400+ ícones SVG consistentes e acessíveis.

Impacto: Consistência visual. Screen readers entendem. Profissionalismo elevado.

6. IA Precisa de Guardrails Humanos

Problema: Publisher-agent poderia fazer commits automáticos e publicar erros.

Solução: Regra crítica - NUNCA commit/push sem aprovação explícita do usuário.

Impacto: Qualidade controlada. Confiança no sistema. Evita publicações ruins.

7. Prompts Especializados > Prompts Genéricos

Problema: Prompt único "escreva artigo sobre X" produz conteúdo genérico.

Solução: 8 agentes com 3.170 linhas de prompts especializados. Cada um domina sua função.

Impacto: Output de qualidade superior. Menos regenerações. Consistência mantida.

Quando (e Quando Não) Usar Agentes de IA

Agentes de IA não são solução universal. Aqui está meu framework de decisão honesto:

✅ Use agentes de IA quando:

Você tem volume alto de conteúdo repetitivo mas cada peça precisa ser única.
Exemplo: Reviews de 50 produtos - estrutura similar mas cada um é diferente.

Você tem processo editorial claro que pode ser codificado.
Exemplo: Planning → Research → Writing → SEO → Publish é um fluxo repetível.

Você quer escalar sem contratar grande equipe.
Exemplo: 1 pessoa + 8 agentes produz o que 3-4 pessoas fariam.

Você tem expertise para revisar output de IA.
IA gera rápido mas precisa de humano para validar qualidade e accuracy.

Você valoriza consistência de processo.
Agentes seguem o processo sempre. Humanos podem esquecer etapas.

❌ NÃO use agentes de IA quando:

Você precisa de criatividade genuinamente original.
IA é ótima em recombinar conhecimento, ruim em criar algo nunca visto.

Você tem volume baixo de conteúdo altamente personalizado.
Para 5 artigos/mês super customizados, humano é melhor que setup de agentes.

Você não tem tempo/expertise para revisar output.
IA pode alucinar dados. Se você não pode validar, não use.

Você quer conteúdo emocional profundo.
IA gera bem conteúdo técnico/informacional. Conteúdo que toca alma? Humano vence.

Você não tem processo editorial claro.
Se você mesmo não sabe o que quer, IA não vai adivinhar.

Tradeoffs reais:

Aspecto Humano IA + Revisão Humana
Velocidade 1-2 artigos/dia 15-20 artigos/dia
Qualidade criativa Alta Média-alta
Consistência Varia Alta
Custo Alto (salário) Médio (API + revisão)
Expertise necessária Não (se bom escritor) Sim (revisar output)
Escalabilidade Difícil Fácil

Minha recomendação honesta:

Use IA para produção em escala + revisão humana para qualidade. Não é "IA substituindo humanos" - é "IA como multiplicador de humanos".

Para este projeto (marketing de afiliados com 45 artigos/mês), agentes de IA fazem sentido. Para um blog pessoal com 2-3 posts/mês super reflexivos, provavelmente não.

Próximos Passos e Roadmap

O AffiliateOS está em construção ativa. Aqui está o que vem a seguir:

Curto prazo (próximos 30 dias):

  • [ ] Implementar analytics-agent para monitoramento contínuo
  • [ ] Gerar primeiros 15 artigos do nicho vpn-saas para validação SEO
  • [ ] Testar 3-5 creative briefs diferentes e comparar engagement
  • [ ] Cadastrar em programas de afiliados (Hostinger, Impact, Amazon)
  • [ ] Coletar primeiros dados de tráfego real

Médio prazo (60-90 dias):

  • [ ] Refinar routing decisions com dados próprios de conversão
  • [ ] Adicionar internal linking automático entre artigos relacionados
  • [ ] Implementar A/B testing de headlines e CTAs
  • [ ] Expandir para 3º nicho (validar sistema em outro vertical)
  • [ ] Otimizar artigos underperforming baseado em analytics

Longo prazo (6-12 meses):

  • [ ] Open-source dos agentes (se validação for positiva)
  • [ ] Sistema de content refresh automático (atualizar artigos antigos)
  • [ ] Multi-language support (expandir para EN e ES)
  • [ ] Integration com CRMs para lead nurturing
  • [ ] Análise preditiva de trending topics

Limitações atuais a resolver:

⚠️ Analytics-agent depende de tráfego real (aguardando)
⚠️ Internal linking ainda é manual (tedioso em escala)
⚠️ Refresh de conteúdo antigo não é automatizado
⚠️ Multi-language precisa de agentes específicos por idioma
⚠️ Validação de dados técnicos poderia ser mais robusta

Visão de longo prazo:

Transformar AffiliateOS em um framework aberto para criadores de conteúdo e agências que querem usar IA de forma responsável e efetiva. Não é "substituir escritores" - é "dar superpoderes a criadores".

Conclusão: Automação Inteligente, Não Substituição

Depois de construir 8 agentes especializados, 3.170 linhas de prompts e rodar dezenas de experimentos, aqui está minha conclusão honesta:

IA não substitui criadores de conteúdo. Ela multiplica.

Os agentes do AffiliateOS não são "robôs escritores autônomos". São ferramentas especializadas que fazem humanos produzirem mais, melhor e mais consistentemente.

O planning-agent não inventa estratégias sozinho - ele dialoga comigo para estruturar minhas ideias. O content-agent não escreve sem contexto - ele segue creative briefs detalhados. O publisher-agent não deploys sem aprovação - ele aguarda validação humana.

A mágica não está em eliminar humanos. Está em especialização.

Cada agente domina UMA coisa. Planning. Routing. Research. SEO. Publishing. Essa divisão de responsabilidades permite qualidade mantida em escala - algo impossível com uma IA generalista ou templates genéricos.

Para gestores de marketing: Agentes de IA podem 10x sua produção de conteúdo sem contratar 10 pessoas. Mas você ainda precisa de alguém com expertise para revisar output, validar accuracy e garantir alinhamento com brand voice.

Para criadores de conteúdo: IA não vai roubar seu trabalho. Vai eliminar tarefas repetitivas (research, otimização SEO, formatação) e liberar tempo para o que humanos fazem melhor - criatividade genuína, storytelling emocional, insights originais.

Para desenvolvedores: Arquitetura de agentes especializados é pattern poderosa. Não tente fazer um "super agente que faz tudo" - crie especialistas que colaboram. Qualidade vem de especialização.


Quer Usar IA para Alavancar Operações de Conteúdo?

Se você gerencia uma equipe de marketing, agência ou operação de conteúdo e quer explorar como IA pode multiplicar resultados sem perder autenticidade, vamos trocar ideias.

Não estou vendendo produto. Estou compartilhando aprendizados de quem está construindo sistemas reais de IA aplicada a marketing.

Entre em contato se você:

  • Gerencia equipe de conteúdo e quer escalar sem sacrificar qualidade
  • Trabalha em agência de marketing digital explorando automação inteligente
  • É tech lead avaliando IA para operações de content marketing
  • Criador de conteúdo buscando multiplicar produção sem virar fábrica genérica

Não prometo resultados mágicos. Prometo conversa honesta sobre o que funciona, o que não funciona e como construir sistemas de IA responsáveis.


Stack mencionada:

Top comments (0)