Laboratório: Agente Multi-Fonte para Monitoramento de Concorrentes com Claude Agent SDK, OpenAI Agents SDK e ElevenLabs TTS
Você vai montar um agente de IA que monitora concorrentes em fontes públicas, analisa e sintetiza relatórios falados usando Claude Agent SDK, OpenAI Agents SDK e ElevenLabs TTS. Em até 3 horas, o agente consulta notícias, resume, gera insights e entrega um áudio automatizado.

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.11 · Claude Agent SDK (Python) a versão estável atual · OpenAI Agents SDK (Python) a versão estável atual · ElevenLabs Python SDK a versão estável atual · Requests a versão estável atual
Demonstrar, de ponta a ponta, como construir e rodar um agente multiagente para monitoramento estratégico de concorrentes, integrando Claude Agent SDK e OpenAI Agents SDK em Python para análise, e ElevenLabs para síntese de voz. O laboratório cobre desde a configuração dos ambientes até a execução de casos de teste, validação dos outputs e registro para revisão humana.
Topologia
Uma máquina local (192.168.56.10) executa o agente Python, que consulta a API pública de notícias, usa Claude Agent SDK para análise, OpenAI Agents SDK para sumarização e ElevenLabs TTS para gerar o áudio do relatório. Todos os acessos externos usam as chaves de API em variáveis de ambiente.
+-------------------+
| Máquina Local |
| 192.168.56.10 |
|-------------------|
| Python 3.11 |
| Claude Agent SDK |
| OpenAI Agents SDK |
| ElevenLabs SDK |
+--------+----------+
|
v
+-------------------+
| APIs Externas |
| (Claude, OpenAI, |
| ElevenLabs, |
| Notícias) |
+-------------------+Equipamentos e software
| Item | Requisito, licença ou versão |
|---|---|
| PC ou VM | 2 vCPU, 4GB RAM, 10GB disco, acesso à internet |
| Python | PSF · 3.11 |
| Claude Agent SDK (Python) | Apache-2.0 · a versão estável atual |
| OpenAI Agents SDK (Python) | MIT · a versão estável atual |
| ElevenLabs Python SDK | MIT · 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. Isso evita conflitos e facilita a limpeza.
python3.11 -m venv agenteia source agenteia/bin/activateO que você deve ver: Prompt do terminal com (agenteia) à esquerda
- Instalar Dependências
Instale os SDKs necessários para Claude, OpenAI Agents e ElevenLabs, além do requests para chamadas HTTP.
pip install code.claude.com/anthropics/claude-agent-sdk-python/archive/refs/heads/main.zip pip install openai-agents elevenlabs requestsO que você deve ver: Pacotes instalados sem erro
- Configurar Variáveis de Ambiente
Defina as chaves de API como variáveis de ambiente para não expor segredos no código.
export ANTHROPIC_API_KEY='SUA_CHAVE_CLAUDE' export OPENAI_API_KEY='SUA_CHAVE_OPENAI' export ELEVEN_API_KEY='SUA_CHAVE_ELEVENLABS'O que você deve ver: Variáveis disponíveis na sessão (cheque com echo $ANTHROPIC_API_KEY)
- Criar Ferramenta de Busca de Notícias
Implemente uma função Python que consulta uma API pública de notícias (exemplo: https://newsapi.org, substitua pela sua se necessário).
newsapi_url = 'https://newsapi.org/v2/everything?q=concorrente+EXEMPLO&apiKey=SUA_CHAVE_NEWSAPI' import requests def buscar_noticias(): r = requests.get(newsapi_url) return r.json()['articles'][:3]O que você deve ver: Retorno de até 3 notícias como dicionários
- Definir Prompt de Sistema Versionado
Monte um prompt de sistema para o agente Claude, explicitando objetivo, fontes e critérios de análise. Salve como system_prompt_v1.txt.
Comando não aplicável: crie manualmente o arquivo system_prompt_v1.txt com o texto: "Você é um analista estratégico. Analise as notícias recebidas, destaque riscos, oportunidades e movimentos dos concorrentes. Cite sempre a fonte. Responda em tópicos objetivos."O que você deve ver: Arquivo system_prompt_v1.txt criado
- Implementar Agente Claude para Análise
Use o Claude Agent SDK para rodar o laço de agente, lendo o prompt versionado e recebendo as notícias como entrada.
from anthropics.agent import Agent with open('system_prompt_v1.txt') as f: system_prompt = f.read() agente_claude = Agent(name='AnalistaClaude', instructions=system_prompt) noticias = buscar_noticias() analise = agente_claude.run_sync(noticias)O que você deve ver: Texto com análise dos concorrentes, tópicos claros
- Implementar Agente OpenAI para Sumarização
Passe a análise do Claude para um agente OpenAI Agents SDK, pedindo um resumo de 3 frases.
from openai_agents import Agent as OAAgent, Runner oa_agent = OAAgent(name='ResumidorOpenAI', instructions='Resuma o texto recebido em 3 frases, em português claro.') sumario = Runner.run_sync(oa_agent, analise)O que você deve ver: Resumo em 3 frases, em português
- Gerar Áudio do Relatório com ElevenLabs
Use o ElevenLabs SDK para sintetizar o resumo em voz, facilitando o consumo rápido do relatório.
from elevenlabs import ElevenLabs el = ElevenLabs(api_key=os.environ['ELEVEN_API_KEY']) audio = el.text_to_speech(text=sumario, voice_id='EXEMPLO_VOICE_ID') with open('relatorio.mp3', 'wb') as f: f.write(audio)O que você deve ver: Arquivo relatorio.mp3 criado
- Registrar Execução e Outputs
Salve logs de entrada, saída e erros para revisão humana. Isso garante rastreabilidade e transparência.
with open('execucao.log', 'a') as log: log.write(f'Entradas: {noticias}\nAnálise: {analise}\nResumo: {sumario}\n')O que você deve ver: Arquivo execucao.log com registros da execução
- Criar Casos de Teste Automatizados
Implemente testes simples que verificam se a análise cita fonte, se o resumo tem 3 frases e se o áudio foi gerado.
assert 'fonte' in analise.lower() assert sumario.count('.') >= 2 import os assert os.path.exists('relatorio.mp3')O que você deve ver: Nenhum erro de assert
- Configurar Guardrails Simples
Implemente validações para garantir que a entrada não contenha dados pessoais e que a saída não tenha termos proibidos (EXEMPLO: 'segredo').
def validar_entrada(texto): assert 'CPF' not in texto def validar_saida(texto): assert 'segredo' not in texto.lower()O que você deve ver: Nenhum erro de assert ao rodar as funções
- Rodar Todo o Pipeline e Ouvir o Relatório
Execute o script completo e ouça o arquivo relatorio.mp3 para validar a entrega de ponta a ponta.
python seu_script.py # Depois, abra relatorio.mp3 em um player de áudioO que você deve ver: Relatório falado, com análise e resumo claros
Como saber que funcionou
| Teste | Comando | Critério |
|---|---|---|
| Verificar se o arquivo relatorio.mp3 existe e toca | ls -lh relatorio.mp3 | Arquivo existe e pode ser reproduzido |
| Checar se o log execucao.log contém entradas, análise e resumo | cat execucao.log | Entradas, análise e resumo presentes |
| Garantir que o resumo tem 3 frases | cat execucao.log | grep 'Resumo:' | Resumo com pelo menos 2 pontos finais |
| Validar que a análise cita fontes | cat execucao.log | grep 'fonte' | Pelo menos uma menção a fonte |
| Rodar todos os asserts de teste | python -m unittest seu_script.py | Nenhum erro |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| Erro de autenticação na API | Chave de API ausente ou inválida | Verifique variáveis de ambiente e permissões |
| Arquivo relatorio.mp3 não criado | Erro na chamada ao ElevenLabs ou falta de permissão de escrita | Cheque logs, permissões de pasta e API key |
| Resumo vazio ou incompleto | Erro na integração entre agentes ou resposta inesperada | Reveja o prompt e a passagem de dados entre agentes |
| Análise sem citar fontes | Prompt de sistema mal definido | Inclua a exigência de citação de fonte no prompt versionado |
| Execução lenta | Rede instável ou limites de API | Teste conexão e evite chamadas desnecessárias |
Segurança e hardening
- Nunca exponha chaves de API em código ou logs
- Valide entradas para evitar vazamento de dados pessoais
- Restrinja permissões de arquivos de log e áudio
- Limite acesso à máquina e ao diretório de trabalho
- Desative e revogue chaves não utilizadas
Checklist final
Referências
- Claude Agent SDK Documentation · Code.claude (code.claude.com)
- OpenAI Agents SDK (Python) · Openai.github (openai.github.io)
- Publicado
- 13/09/2026
- Última revisão
- 13/09/2026
- Versão do conteúdo
- 1.0
- Referências
- 2 oficiais
- Revisão técnica
- redação e revisão por IA, URLs conferidas na publicação
- Status
- Atual
