ULC Lab · implementação reproduzível
Laboratório: Agente de Síntese Executiva com Claude Agent SDK, OpenAI Agents SDK e ElevenLabs TTS
Você implementa um agente de apoio à decisão executiva que sintetiza dados fictícios, gera recomendações e lê o resultado em voz natural. Em cerca de 2 horas, o agente roda localmente, com prompts versionados, ferramentas, testes e guardrails.

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 · OpenAI Agents SDK (Python) a versão estável atual · ElevenLabs Python SDK a versão estável atual
Demonstrar, na prática, como construir um agente de análise e recomendação usando Claude Agent SDK (Python), OpenAI Agents SDK e ElevenLabs TTS, integrando ferramentas customizadas, avaliação automatizada e guardrails. O agente sintetiza dados de múltiplas fontes simuladas, explicita premissas, recomenda ações e lê a recomendação em voz, com registro de decisões e revisão de falhas.
Topologia
O agente Python central conecta-se à Claude API (via Agent SDK), à API da OpenAI (via Agents SDK) e à ElevenLabs TTS. Dados simulados são lidos de arquivos locais. O agente orquestra prompts, ferramentas e testes, e salva logs localmente. Endereços de exemplo: 192.168.56.10 (host), 127.0.0.1 (localhost para scripts), APIs externas via internet.
+-------------------+
| Usuário local |
+-------------------+
|
v
+-------------------+
| Agente Python |
| (Claude/OpenAI/ |
| ElevenLabs SDKs) |
+-------------------+
| | |
v v v
Claude OpenAI ElevenLabs
API API TTS API
Equipamentos e software
| Item | Requisito, licença ou versão |
|---|---|
| PC ou VM x86_64 | 2 vCPU, 4 GB RAM, 20 GB disco, acesso à internet |
| Python | PSF · 3.10 ou superior |
| Claude Agent SDK (Python) | MIT · 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 |
Roteiro
- Preparar ambiente Python isolado
Isolar dependências e evitar conflitos criando um ambiente virtual.
python3 -m venv ia_lab_env source ia_lab_env/bin/activateO que você deve ver: Prompt do terminal indica ambiente ativado (ia_lab_env).
- Instalar SDKs necessários
Instalar Claude Agent SDK, OpenAI Agents SDK e ElevenLabs SDK para acesso às APIs.
pip install claude-agent-sdk-python openai-agents elevenlabsO que você deve ver: Pacotes instalados sem erros.
- Configurar variáveis de ambiente para segredos
Evitar exposição de chaves de API. Use variáveis de ambiente para Claude, OpenAI e ElevenLabs.
export CLAUDE_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 setadas na sessão atual.
- Criar arquivos de dados simulados
Gerar arquivos CSV de EXEMPLO para simular fontes de dados (financeiro, vendas, produção).
echo 'mes,receita,despesa 2024-01,10000,7000 2024-02,12000,8000' > dados_financeiros.csv echo 'produto,vendas A,500 B,300' > dados_vendas.csvO que você deve ver: Arquivos dados_financeiros.csv e dados_vendas.csv criados no diretório.
- Definir prompt de sistema versionado
Criar arquivo prompt_v1.txt com instruções claras: sintetizar dados, explicitar premissas, recomendar ação e declarar incerteza.
echo 'Você é um agente de decisão executiva. Leia os dados fornecidos, sintetize os pontos-chave, explicite premissas, recomende uma ação e declare o grau de incerteza. Responda apenas com texto estruturado.' > prompt_v1.txtO que você deve ver: Arquivo prompt_v1.txt salvo.
- Implementar ferramenta customizada de leitura de CSV
Criar função Python para ler e resumir arquivos CSV. Expor como ferramenta para o agente.
cat <<EOF > ferramentas.py import csv def resumo_csv(path): with open(path, newline='') as f: reader = csv.DictReader(f) linhas = list(reader) return f'{len(linhas)} linhas, colunas: {reader.fieldnames}' EOFO que você deve ver: Arquivo ferramentas.py criado com função resumo_csv.
- Configurar agente Claude com ferramenta e prompt
Criar script Python que inicializa Claude Agent com prompt_v1.txt e ferramenta resumo_csv.
cat <<EOF > agente_claude.py import os from claude_agent_sdk import Agent, Tool from ferramentas import resumo_csv with open('prompt_v1.txt') as f: prompt = f.read() agent = Agent( name='AgenteExecutivo', instructions=prompt, tools=[Tool('resumo_csv', resumo_csv, {'path': str}, str)] ) EOFO que você deve ver: Arquivo agente_claude.py criado com agente configurado.
- Configurar agente OpenAI com ferramenta e prompt
Criar script Python que inicializa Agent do OpenAI Agents SDK com mesmo prompt e ferramenta.
cat <<EOF > agente_openai.py import os from openai_agents import Agent, Tool from ferramentas import resumo_csv with open('prompt_v1.txt') as f: prompt = f.read() agent = Agent( name='AgenteExecutivo', instructions=prompt, tools=[Tool('resumo_csv', resumo_csv, {'path': str}, str)] ) EOFO que você deve ver: Arquivo agente_openai.py criado com agente configurado.
- Implementar avaliação automatizada (casos de teste)
Criar script test_lab.py que executa o agente com dados de teste e compara a saída com o esperado.
cat <<EOF > test_lab.py from agente_claude import agent as agente_c entrada = {'path': 'dados_financeiros.csv'} resposta = agente_c.run('resumo_csv', entrada) assert '2 linhas' in resposta, 'Falha no resumo do CSV' print('Teste OK') EOFO que você deve ver: Arquivo test_lab.py criado para testar ferramenta.
- Adicionar guardrails de entrada e saída
No agente, valide que o caminho do arquivo termina com .csv e que a saída não contenha dados pessoais.
cat <<EOF >> ferramentas.py def guardrail_entrada(path): if not path.endswith('.csv'): raise ValueError('Arquivo deve ser CSV') def guardrail_saida(saida): if 'cpf' in saida.lower(): raise ValueError('Dados pessoais detectados') EOFO que você deve ver: Guardrails adicionados ao arquivo ferramentas.py.
- Integrar ElevenLabs TTS para leitura da recomendação
Criar script Python que recebe texto do agente e gera áudio usando ElevenLabs.
cat <<EOF > tts_lab.py import os from elevenlabs import ElevenLabs api = ElevenLabs(api_key=os.environ['ELEVEN_API_KEY']) texto = 'Recomendação: aumentar vendas do produto A.' voz = api.text_to_speech(text=texto, voice_id='EXEMPLO_VOICE_ID') with open('output.mp3', 'wb') as f: f.write(voz) EOFO que você deve ver: Arquivo output.mp3 gerado com áudio da recomendação.
- Executar agente de ponta a ponta
Rodar script principal que integra leitura dos dados, síntese pelo agente e leitura em voz.
python agente_claude.py python tts_lab.pyO que você deve ver: Recomendação impressa e arquivo de áudio gerado.
Como saber que funcionou
| Teste | Comando | Critério |
|---|---|---|
| Executar test_lab.py para validar ferramenta resumo_csv | python test_lab.py | Mensagem 'Teste OK' exibida. |
| Rodar agente_claude.py com dados_financeiros.csv | python agente_claude.py | Resumo dos dados e recomendação impressos no terminal. |
| Ouvir arquivo output.mp3 | aplay output.mp3 (Linux) ou abrir em player | Áudio reproduzindo a recomendação. |
| Testar guardrail com arquivo não-CSV | python agente_claude.py path='dados.txt' | Erro 'Arquivo deve ser CSV' exibido. |
| Testar proteção contra dados pessoais | Inserir 'cpf' em uma saída simulada e rodar guardrail_saida | Erro 'Dados pessoais detectados' exibido. |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| Erro de autenticação na Claude, OpenAI ou ElevenLabs | Chave de API ausente ou inválida | Verifique variáveis de ambiente e chaves corretas |
| Arquivo CSV não encontrado | Caminho incorreto ou arquivo ausente | Confirme nome e localização dos arquivos de dados |
| Saída do agente vazia ou sem recomendação | Prompt ou ferramenta mal configurados | Revise prompt_v1.txt e funções em ferramentas.py |
| Arquivo output.mp3 não reproduz áudio | Erro na chamada ElevenLabs ou arquivo corrompido | Cheque resposta da API e permissões de escrita |
Segurança e hardening
- Nunca inclua chaves de API em arquivos de código ou prompts
- Use variáveis de ambiente para segredos
- Não armazene dados pessoais nos arquivos de teste
- Restrinja permissões de leitura/gravação dos arquivos de dados
- Revise logs para evitar vazamento de informações sensíveis
Checklist final
Referências
- Claude Agent SDK Documentation · Code.claude (code.claude.com)
- OpenAI Agents SDK (Python) · Openai.github (openai.github.io)
- ElevenLabs Python SDK · Elevenlabs (elevenlabs.io)
- Python venv · Python Software Foundation (docs.python.org)
- LGPD - Lei 13.709/2018 · Presidência da República (Planalto) (planalto.gov.br)
- Publicado
- 13/09/2026
- Última revisão
- 13/09/2026
- Versão do conteúdo
- 1.0
- Referências
- 5 oficiais · 1 de normas ou órgãos
- Revisão técnica
- redação e revisão por IA, URLs conferidas na publicação
- Status
- Atual
