Construir o Seu Primeiro Agente

Construir o Seu Primeiro Agente

Este guia orienta-o na construção de um Agente de Recuperação de Carrinho, um agente de IA que monitoriza carrinhos abandonados e orquestra uma sequência de recuperação personalizada por e-mail, SMS e WhatsApp usando as ferramentas MCP do Brevo.

Pré-requisitos

  • Conta Brevo com chave de API (obter uma aqui)
  • Servidor MCP Brevo configurado (guia de configuração)
  • Claude Desktop, Claude Code ou qualquer cliente compatível com MCP
  • Templates de e-mail criados no Brevo para recuperação de carrinho

Como Funcionam os Agentes

Um agente é um ficheiro markdown que define:

  1. Identidade, o que o agente faz e as suas restrições
  2. Ferramentas, quais ferramentas MCP pode aceder
  3. Instruções, como deve raciocinar e agir
  4. Barreiras de proteção, o que nunca deve fazer

Quando invocado, o agente usa um LLM para raciocinar sobre o objetivo, selecionar as ferramentas adequadas e executar ações contra a API do Brevo.

Profissional de Marketing: "Configure recuperação de carrinho para carrinhos acima de $50"
Agente lê a sua especificação (ferramentas, restrições)
Agente raciocina: "Preciso de criar um segmento, projetar uma sequência, configurar rastreamento"
Agente chama: brevo/create-segment → brevo/send-email → brevo/send-sms → brevo/track-event
Resultado: sequência de recuperação de 3 passos ativa, eventos de rastreamento a fluir

Passo 1: Definir o Agente

Crie um ficheiro chamado cart-recovery-agent.md:

---
name: cart-recovery-agent
description: Recover abandoned carts with personalized multi-channel sequences
version: 1.0.0
temperature: 0.2
max_tokens: 4096
tools:
- brevo/list-contacts
- brevo/get-contact
- brevo/create-segment
- brevo/send-email
- brevo/send-sms
- brevo/track-event
- brevo/get-email-templates
- brevo/get-email-stats
triggers:
- event: cart_abandoned
conditions:
- cart_value: "> 50"
- time_since_activity: "> 30m"
- schedule: "0 */4 * * *"
permissions:
- contacts:read
- email:send
- sms:send
- events:write
---
# Agente de Recuperação de Carrinho
É um especialista em recuperação de carrinho de e-commerce a trabalhar com a
plataforma de envolvimento do Brevo. O seu objetivo é recuperar carrinhos
abandonados através de contacto multicanal personalizado e bem temporizado.
## Estratégia
Quando um carrinho é abandonado:
1. **Aguardar 1 hora**, depois enviar e-mail de lembrete com conteúdo do carrinho
2. **Aguardar 24 horas**, se sem abertura → enviar SMS com mensagem de urgência
3. **Aguardar 48 horas**, se ainda sem recuperação → enviar e-mail final com
incentivo (código de desconto se o valor do carrinho > $100)
## Estrutura de Decisão
- Valor do carrinho < $50: Ignorar (não compensa o custo de recuperação)
- Valor do carrinho $50-$100: Apenas e-mail (2 contactos)
- Valor do carrinho $100-$250: E-mail + SMS (3 contactos)
- Valor do carrinho > $250: E-mail + SMS + sinalização de contacto pessoal
## Regras
- NUNCA enviar mais de 3 mensagens por carrinho abandonado
- NUNCA contactar clientes que cancelaram a subscrição de marketing
- SEMPRE verificar se o carrinho foi recuperado antes de enviar o próximo passo
- SEMPRE personalizar com o primeiro nome do cliente e itens do carrinho
- SEMPRE rastrear eventos de recuperação para atribuição
- Respeitar horários de silêncio: sem SMS entre 21h-9h hora local do cliente
## Templates de E-mail
Use estes IDs de template Brevo:
- Lembrete (passo 1): template_id 101
- Urgência (passo 2): template_id 102
- Incentivo (passo 3): template_id 103
## Métricas a Rastrear
- `cart_recovery_email_sent`, e-mail de recuperação enviado
- `cart_recovery_sms_sent`, SMS de recuperação enviado
- `cart_recovered`, cliente concluiu a compra
- `cart_recovery_failed`, sequência concluída sem recuperação

Passo 2: Registar Ferramentas

O agente necessita de acesso a ferramentas MCP Brevo específicas. O campo tools no frontmatter define quais ferramentas o agente pode invocar. Quando o agente é executado, apenas pode chamar estas ferramentas, tudo o resto é bloqueado.

Aqui está o que cada ferramenta faz no contexto deste agente:

tools:
# Ler dados de clientes e estado do carrinho
- brevo/list-contacts # Encontrar clientes com carrinhos abandonados
- brevo/get-contact # Obter detalhes individuais do cliente
# Criar segmentos direcionados
- brevo/create-segment # Segmentar por valor do carrinho, tempo, comportamento
# Enviar mensagens de recuperação
- brevo/send-email # E-mails transacionais de recuperação
- brevo/send-sms # Nudges SMS para carrinhos de alto valor
# Rastrear resultados
- brevo/track-event # Registar tentativas e resultados de recuperação
- brevo/get-email-stats # Verificar se os e-mails foram abertos
- brevo/get-email-templates # Verificar se os templates existem

Passo 3: Criar a Cadeia de Execução

Para agentes complexos, pode definir uma cadeia de execução de múltiplos passos onde sub-agentes especializados tratam diferentes fases:

chain.yaml
steps:
- agent: analyzer
input: |
Analise os dados de carrinho abandonado das últimas 4 horas.
Objetivo: {task}
Use brevo/list-contacts para encontrar contactos com
evento CART_ABANDONED nas últimas 4 horas.
Segmente por nível de valor do carrinho.
- agent: sequencer
input: |
Com base nesta análise, projete sequências de recuperação:
{previous}
Para cada nível, crie a sequência de mensagem adequada
usando a estrutura de decisão.
- agent: executor
input: |
Execute estas sequências de recuperação via Brevo:
{previous}
Envie e-mails e SMS de acordo com as regras de timing.
Rastreie cada ação com brevo/track-event.
- agent: reporter
input: |
Gere um relatório de recuperação a partir destes resultados de execução:
{previous}
Inclua: carrinhos visados, mensagens enviadas, recuperações antecipadas,
impacto previsto na receita.

Passo 4: Testar o Agente

Com Claude Code

Terminal window
# Apontar o Claude Code para a sua especificação de agente
claude --mcp brevo "Execute o agente de recuperação de carrinho para carrinhos abandonados nas últimas 4 horas"

Com Claude Desktop

Uma vez configurado o servidor MCP Brevo, pergunte ao Claude:

Execute o meu agente de recuperação de carrinho. Verifique carrinhos abandonados acima de $50 nas últimas 4 horas e execute a sequência de recuperação.

O Claude irá:

  1. Ler a especificação do agente
  2. Chamar brevo/list-contacts para encontrar carrinhos abandonados
  3. Segmentar por valor do carrinho usando a estrutura de decisão
  4. Enviar e-mails de recuperação via brevo/send-email
  5. Agendar follow-ups SMS via brevo/send-sms
  6. Rastrear todos os eventos via brevo/track-event

Execução Programática

import { TajoAgent } from "@tajo/agent-sdk";
import { BrevoMCPServer } from "@tajo/brevo-mcp-server";
const brevo = new BrevoMCPServer({
apiKey: process.env.BREVO_API_KEY,
});
const agent = new TajoAgent({
specPath: "./cart-recovery-agent.md",
mcpServers: [brevo],
model: "claude-sonnet-4-6",
});
// Executar o agente
const result = await agent.run(
"Recover abandoned carts over $50 from the last 4 hours"
);
console.log(result.summary);
// → "Processed 23 abandoned carts. Sent 23 reminder emails,
// 8 SMS messages. 3 carts already recovered during execution."

Passo 5: Agendar o Agente

Execute o agente num agendamento recorrente:

Baseado em Cron

# No frontmatter da especificação do seu agente
triggers:
- schedule: "0 */4 * * *" # A cada 4 horas
timezone: "America/New_York"

Orientado por Eventos

triggers:
- event: cart_abandoned
conditions:
- cart_value: "> 50"
- time_since_activity: "> 30m"
debounce: 5m

Webhook

triggers:
- webhook: /agents/cart-recovery/trigger
method: POST
authentication: api_key

Passo 6: Monitorizar e Iterar

Acompanhe o desempenho do agente através de eventos Brevo:

-- Taxa de recuperação por nível de valor do carrinho
SELECT
CASE
WHEN cart_value < 100 THEN '$50-$100'
WHEN cart_value < 250 THEN '$100-$250'
ELSE '$250+'
END as tier,
COUNT(*) as carts_targeted,
SUM(CASE WHEN recovered THEN 1 ELSE 0 END) as recovered,
ROUND(SUM(CASE WHEN recovered THEN 1 ELSE 0 END)::numeric
/ COUNT(*) * 100, 1) as recovery_rate_pct,
SUM(CASE WHEN recovered THEN cart_value ELSE 0 END) as revenue_recovered
FROM cart_recovery_events
WHERE created_at > NOW() - INTERVAL '30 days'
GROUP BY tier
ORDER BY tier;

Exemplo: Sessão Completa do Agente

Aqui está uma interação real entre um profissional de marketing e o Agente de Recuperação de Carrinho:

Profissional de Marketing: "Verifique carrinhos abandonados de hoje e inicie a recuperação"
Agente: A verificar carrinhos abandonados nas últimas 24 horas...
[Chama brevo/list-contacts com filtro CART_ABANDONED_AT > hoje]
Encontrei 47 carrinhos abandonados:
- 12 carrinhos abaixo de $50 (a ignorar por política)
- 23 carrinhos $50-$100 (nível apenas e-mail)
- 8 carrinhos $100-$250 (nível e-mail + SMS)
- 4 carrinhos acima de $250 (e-mail + SMS + sinalização para contacto pessoal)
A iniciar sequências de recuperação...
[Chama brevo/send-email × 35 com template_id 101]
[Chama brevo/track-event × 35 com evento "cart_recovery_email_sent"]
✅ Passo 1 concluído:
- 35 e-mails de lembrete enviados
- 12 SMS agendados para follow-up de 24h (carrinhos de alto valor)
- 4 carrinhos sinalizados para contacto pessoal
Próxima verificação agendada em 4 horas.
Eventos de rastreamento de recuperação: cart_recovery_email_sent (35),
cart_recovery_sms_queued (12), cart_recovery_escalated (4)

Próximos Passos

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

Assistente AI

Olá! Pergunte-me qualquer coisa sobre a documentação.

Comece grátis com Brevo