Laboratório: Agente de IA para Geração e Análise de Campanhas de Marketing com Claude Agent SDK, ElevenLabs e HeyGen
Você terá um agente de IA funcional que gera textos de campanha, converte em voz e cria um vídeo automatizado, além de analisar resultados simulados. O laboratório leva cerca de 2 horas.

Roteiro para estudo em ambiente de laboratório ou de teste. Execute apenas em equipamentos, redes e contas que você tenha autorização para usar, com backup e homologação próprios. Comandos podem causar indisponibilidade ou perda de dados. Software e marcas citados pertencem aos seus titulares. Termos de Uso.
- Duração estimada
- 120 min
- Passos
- 12
- Validações
- 5
- Versões da documentação consultada
- Python 3.10 ou superior · Claude Agent SDK (Python) a versão estável atual · Requests a versão estável atual
Demonstrar, de ponta a ponta, como orquestrar um agente de IA para marketing usando Claude Agent SDK em Python, integrando geração de texto, voz sintética (ElevenLabs) e vídeo automatizado (HeyGen), com avaliação automática e registro de execuções. O laboratório cobre desde o prompt de sistema versionado até a validação dos resultados, promovendo boas práticas de segurança e operação responsável.
Topologia
O agente Python roda localmente e conecta-se à API Claude (Anthropic) para geração de texto, à API ElevenLabs para síntese de voz e à API HeyGen para criação de vídeo. O usuário interage via terminal. As APIs externas são acessadas via Internet, com endereços de exemplo na faixa 192.168.56.0/24 para a máquina local.
Usuário
|
[Terminal local]
|
[Agente Python]
/ | \
Claude ElevenLabs HeyGen
(API) (API) (API)
Equipamentos e software
| Item | Requisito, licença ou versão |
|---|---|
| Notebook ou VM | 2 vCPU, 4GB RAM, 1 porta Ethernet, Ubuntu 22.04 ou equivalente |
| Python | PSF · 3.10 ou superior |
| Claude Agent SDK (Python) | Apache-2.0 · a versão estável atual |
| Requests | Apache-2.0 · a versão estável atual |
Roteiro
- Preparar ambiente Python
Crie um ambiente virtual para isolar as dependências e evitar conflitos.
python3 -m venv venv source venv/bin/activateO que você deve ver: Prompt do terminal indica ambiente virtual ativo.
- Instalar dependências
Instale Claude Agent SDK, requests e dependências necessárias.
pip install claude-agent-sdk-python requestsO que você deve ver: Pacotes instalados sem erros.
- Configurar variáveis de ambiente
Defina as chaves de API das três plataformas em variáveis de ambiente para segurança.
export ANTHROPIC_API_KEY='SUA_CHAVE_CLAUDE' export ELEVENLABS_API_KEY='SUA_CHAVE_ELEVENLABS' export HEYGEN_API_KEY='SUA_CHAVE_HEYGEN'O que você deve ver: Variáveis disponíveis na sessão atual.
- Criar prompt de sistema versionado
Implemente um arquivo de prompt de sistema para o agente, em português, com instruções claras e data de versão.
echo 'Versão: 2024-06-10 Você é um agente de marketing. Gere um texto de campanha para o produto X, converta para voz e crie um vídeo curto. Analise resultados simulados e proponha melhorias.' > prompt.txtO que você deve ver: Arquivo prompt.txt criado com o conteúdo especificado.
- Definir ferramentas do agente
Implemente funções Python para: gerar texto (Claude), sintetizar voz (ElevenLabs) e criar vídeo (HeyGen), cada uma com contrato claro (parâmetros e retorno).
# Exemplo de função para Claude import os from claude_agent_sdk import Agent import requests def gerar_texto_campanha(prompt): agent = Agent(name='AgenteMarketing', instructions=prompt) resposta = agent.run_sync('Gere um texto de campanha para o produto X.') return resposta['output'] # Função ElevenLabs def sintetizar_voz(texto): url = 'https://api.elevenlabs.io/v1/text-to-speech/EXEMPLO_VOICE_ID' headers = {'xi-api-key': os.environ['ELEVENLABS_API_KEY']} data = {'text': texto} r = requests.post(url, headers=headers, json=data) with open('campanha.mp3', 'wb') as f: f.write(r.content) return 'campanha.mp3' # Função HeyGen def criar_video(audio_path): url = 'https://api.heygen.com/v3/videos' headers = {'x-api-key': os.environ['HEYGEN_API_KEY']} data = {'type': 'avatar', 'avatar_id': 'EXEMPLO_AVATAR_ID', 'audio_url': 'EXEMPLO_URL_AUDIO'} r = requests.post(url, headers=headers, json=data) return r.json()['data']['video_id']O que você deve ver: Funções Python criadas e salvas em um arquivo, sem erros de sintaxe.
- Implementar avaliação automática
Implemente casos de teste com entrada e saída esperada para o texto gerado, voz e vídeo.
# Exemplo de teste entrada = 'Campanha para lançamento de fibra óptica.' esperado = 'Conheça a nova fibra óptica da Upnetix...' resultado = gerar_texto_campanha(entrada) assert esperado.split()[0] in resultadoO que você deve ver: Testes executados sem falhas (AssertionError).
- Adicionar guardrails de entrada/saída
Implemente validações para garantir que o texto não contenha termos proibidos e que o áudio/vídeo sejam gerados.
# Exemplo de guardrail PROIBIDOS = ['EXEMPLO_PROIBIDO'] def validar_texto(texto): for termo in PROIBIDOS: if termo in texto: raise ValueError('Termo proibido detectado.')O que você deve ver: Função de validação impede uso de termos proibidos.
- Registrar execuções (tracing)
Implemente registro de cada execução em arquivo local, incluindo entradas, saídas e status.
import json def registrar_execucao(entrada, saida, status): with open('execucoes.log', 'a') as f: f.write(json.dumps({'entrada': entrada, 'saida': saida, 'status': status}) + '\n')O que você deve ver: Arquivo execucoes.log criado e atualizado a cada execução.
- Executar agente ponta a ponta
Rode o script principal: leia prompt, gere texto, sintetize voz, crie vídeo e registre tudo.
python agente_marketing.pyO que você deve ver: Texto de campanha exibido, arquivo campanha.mp3 salvo, ID do vídeo retornado.
- Revisão humana para ação irreversível
Inclua etapa manual para aprovar envio do vídeo antes de qualquer publicação ou uso externo.
# Exemplo: input('Aprovar envio do vídeo? (s/n): ')O que você deve ver: Execução aguarda aprovação manual antes de prosseguir.
- Simular análise de resultados
Implemente função que recebe dados simulados de campanha e gera análise textual.
def analisar_resultados(dados): if dados['cliques'] > 100: return 'Campanha com bom desempenho.' else: return 'Resultados abaixo do esperado.'O que você deve ver: Análise textual exibida conforme dados simulados.
- Testar casos de falha
Altere entradas para provocar erros e valide se guardrails, logs e mensagens de erro funcionam.
try: validar_texto('EXEMPLO_PROIBIDO na campanha') except ValueError as e: print(e)O que você deve ver: Erro detectado e registrado, sem execução indevida.
Como saber que funcionou
| Teste | Comando | Critério |
|---|---|---|
| Geração de texto de campanha | python agente_marketing.py | Texto gerado e exibido no terminal. |
| Arquivo de áudio criado | ls campanha.mp3 | Arquivo campanha.mp3 existe e tem tamanho maior que zero. |
| ID do vídeo retornado | grep 'video_id' execucoes.log | ID de vídeo presente no log. |
| Guardrail de termo proibido | python agente_marketing.py # com termo proibido | Execução interrompida e erro registrado. |
| Registro de execuções | cat execucoes.log | Entradas, saídas e status registrados em formato JSON. |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| Erro de autenticação na API | Chave de API inválida ou variável de ambiente não definida | Verifique e exporte a chave correta. |
| Arquivo campanha.mp3 não criado | Falha na chamada à ElevenLabs ou voice_id incorreto | Confirme o voice_id e a resposta da API. |
| ID do vídeo não retornado | Parâmetros obrigatórios ausentes na requisição HeyGen | Inclua avatar_id e audio_url válidos. |
| Execução não registra no log | Permissões de escrita no diretório ou erro no código de logging | Ajuste permissões e revise a função registrar_execucao. |
| Guardrail não bloqueia termo proibido | Lista de proibidos não carregada corretamente | Garanta que os termos estejam definidos antes da validação. |
Segurança e hardening
- Nunca inclua chaves de API em arquivos de código ou logs
- Restrinja permissões do arquivo execucoes.log para acesso apenas do usuário
- Garanta que dados pessoais só sejam processados com base legal e minimização
- Valide todas as entradas do usuário antes de enviar a APIs externas
- Revise manualmente qualquer conteúdo gerado antes de publicação
Checklist final
Referências
- Claude Agent SDK (Python) · Code.claude (code.claude.com)
- Anthropic API Reference · Platform.claude (platform.claude.com)
- ElevenLabs API Reference · Elevenlabs (elevenlabs.io)
- HeyGen API Reference · Developers.heygen (developers.heygen.com)
- Python Official Documentation · Python Software Foundation (docs.python.org)
- Publicado
- 13/09/2026
- Última revisão
- 13/09/2026
- Versão do conteúdo
- 1.0
- Referências
- 5 oficiais
- Revisão técnica
- redação e revisão por IA, URLs conferidas na publicação
- Status
- Atual
