Entrar ou criar conta

Laboratório: Agente de Suporte Interno com Claude Agent SDK e OpenAI Agents SDK (Python) usando MCP

Você vai implementar um agente de suporte interno, com três ferramentas, usando Claude Agent SDK e OpenAI Agents SDK lado a lado, em Python. Em cerca de 2 horas, será possível comparar código, operação e integração MCP.

Orquestração de agentes de IA com Claude Agent SDK + OpenAI Agents SDK + MCP
Ligado ao treinamento Orquestração de agentes de IA com Claude Agent SDK + OpenAI Agents SDK + MCP

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.

Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
12
Validações
5
Versões da documentação consultada
Python 3.10 ou superior · Claude Agent SDK a versão estável atual · OpenAI Agents SDK a versão estável atual · FastAPI a versão estável atual · Uvicorn a versão estável atual · requests a versão estável atual
Objetivo

Demonstrar, na prática, como criar e operar um agente de IA de suporte interno com três ferramentas (consulta de FAQ local, abertura de chamado e busca web), usando Claude Agent SDK e OpenAI Agents SDK, ambos integrados via Model Context Protocol. O laboratório mostra diferenças de implementação, configuração e execução, além de práticas obrigatórias de segurança, tracing e validação.

Topologia

Você usará um computador local (192.168.56.10) rodando duas instâncias Python: uma com Claude Agent SDK, outra com OpenAI Agents SDK. Ambas expõem endpoints HTTP (localhost:8001 e localhost:8002) para interação. As ferramentas são scripts Python locais e um conector MCP simulado. Não há dependências externas além das APIs dos provedores (Anthropic e OpenAI), acessadas via internet.


+-------------------+
| Seu computador    |
| 192.168.56.10     |
|                   |
| +-------------+   |
| | Claude      |   |
| | Agent SDK   |<--|---> Internet (Anthropic API)
| | (localhost:8001)|
| +-------------+   |
|                   |
| +-------------+   |
| | OpenAI      |   |
| | Agents SDK  |<--|---> Internet (OpenAI API)
| | (localhost:8002)|
| +-------------+   |
+-------------------+

Equipamentos e software

ItemRequisito, licença ou versão
PC ou VM x86_642 vCPU, 4 GB RAM, 1 porta Ethernet, Ubuntu 22.04 ou superior
PythonPSF · 3.10 ou superior
Claude Agent SDKApache 2.0 · a versão estável atual
OpenAI Agents SDKMIT · a versão estável atual
FastAPIMIT · a versão estável atual
UvicornBSD · a versão estável atual
requestsApache 2.0 · a versão estável atual

Roteiro

  1. Preparar o ambiente Python

    Crie um ambiente virtual para isolar dependências. Isso evita conflitos e facilita a limpeza.

    python3 -m venv agente-lab
    source agente-lab/bin/activate
    pip install --upgrade pip

    O que você deve ver: Prompt do shell mostra (agente-lab) e pip atualizado.

  2. Instalar Claude Agent SDK e dependências

    Instale o SDK do Claude Agent, FastAPI e Uvicorn para expor o agente via HTTP.

    pip install claude-agent-sdk-python fastapi uvicorn

    O que você deve ver: Pacotes instalados sem erro.

  3. Instalar OpenAI Agents SDK e dependências

    Instale o SDK do OpenAI Agents, FastAPI e Uvicorn para expor o agente via HTTP.

    pip install openai-agents openai fastapi uvicorn

    O que você deve ver: Pacotes instalados sem erro.

  4. Configurar variáveis de ambiente para segredos

    Defina as chaves de API Anthropic e OpenAI em variáveis de ambiente, nunca em código.

    export ANTHROPIC_API_KEY='sua-chave-aqui'
    export OPENAI_API_KEY='sua-chave-aqui'

    O que você deve ver: Variáveis disponíveis na sessão (confirme com echo $ANTHROPIC_API_KEY).

  5. Criar ferramenta FAQ local (ambos os agentes)

    Implemente uma função Python que consulta um dicionário FAQ local. Isso simula um conhecimento interno.

    faq_data = {'horário': '8h às 18h', 'ramal TI': '1234'}
    def consulta_faq(pergunta):
        return faq_data.get(pergunta.lower(), 'Não encontrado')

    O que você deve ver: Função retorna resposta correta para perguntas do FAQ.

  6. Criar ferramenta de abertura de chamado (ambos os agentes)

    Implemente uma função que simula abrir um chamado, salvando em um arquivo local. Isso permite rastreabilidade.

    def abrir_chamado(usuario, descricao):
        with open('chamados.txt', 'a') as f:
            f.write(f'{usuario}: {descricao}\n')
        return 'Chamado aberto com sucesso.'

    O que você deve ver: Arquivo chamados.txt criado e atualizado a cada chamada.

  7. Criar ferramenta de busca web (ambos os agentes)

    Implemente uma função que faz uma busca simples na web (exemplo: consulta um endpoint público). Use requests.

    import requests
    def busca_web(termo):
        r = requests.get(f'https://duckduckgo.com/html/?q={termo}')
        if r.status_code == 200:
            return 'Busca realizada.'
        return 'Erro na busca.'

    O que você deve ver: Função retorna 'Busca realizada.' para termos válidos.

  8. Implementar agente com Claude Agent SDK

    Monte o agente Claude com as três ferramentas e prompt de sistema versionado. Exponha endpoint HTTP.

    Consulte a documentação oficial do Claude Agent SDK para o padrão de registro de ferramentas e integração FastAPI. Exemplo básico:
    from claude_agent_sdk import Agent
    from fastapi import FastAPI
    app = FastAPI()
    agent = Agent(system_prompt='v1: Suporte interno', tools=[consulta_faq, abrir_chamado, busca_web])
    @app.post('/claude')
    def chat_claude(input: dict):
        return agent.run(input['mensagem'])

    O que você deve ver: Endpoint /claude ativo em localhost:8001, aceitando POST com campo mensagem.

  9. Implementar agente com OpenAI Agents SDK

    Monte o agente OpenAI com as mesmas ferramentas e prompt de sistema versionado. Exponha endpoint HTTP.

    Consulte a documentação oficial do OpenAI Agents SDK para o padrão de registro de ferramentas e integração FastAPI. Exemplo básico:
    from openai_agents import Agent
    from fastapi import FastAPI
    app = FastAPI()
    agent = Agent(name='suporte-interno', instructions='v1: Suporte interno', tools=[consulta_faq, abrir_chamado, busca_web])
    @app.post('/openai')
    def chat_openai(input: dict):
        return agent.run(input['mensagem'])

    O que você deve ver: Endpoint /openai ativo em localhost:8002, aceitando POST com campo mensagem.

  10. Integrar MCP (Model Context Protocol) nos dois agentes

    Implemente um endpoint MCP mínimo para ambos, permitindo interoperabilidade. Isso conecta agentes a fluxos externos.

    Consulte https://modelcontextprotocol.io/docs para o payload MCP mínimo. Exemplo:
    @app.post('/mcp')
    def mcp_endpoint(input: dict):
        # parse input segundo MCP
        return agent.run(input['mensagem'])

    O que você deve ver: Endpoint /mcp ativo em ambos, aceitando payload MCP mínimo.

  11. Ativar tracing e logs

    Configure logs detalhados para todas as ações dos agentes e ferramentas. Isso é obrigatório para revisão e auditoria.

    import logging
    logging.basicConfig(level=logging.INFO)
    # Adicione logging.info em cada função de ferramenta e entrada/saída do agente.

    O que você deve ver: Arquivo ou console mostra logs das execuções.

  12. Rodar ambos os agentes simultaneamente

    Inicie os servidores FastAPI/Uvicorn em portas distintas para Claude (8001) e OpenAI (8002).

    uvicorn claude_app:app --host 0.0.0.0 --port 8001 &
    uvicorn openai_app:app --host 0.0.0.0 --port 8002 &

    O que você deve ver: Ambos os endpoints ativos e acessíveis via curl ou Postman.

Como saber que funcionou

TesteComandoCritério
Enviar pergunta de FAQ para ambos os agentescurl -X POST http://localhost:8001/claude -H 'Content-Type: application/json' -d '{"mensagem": "Qual o horário?"}'Resposta correta do FAQ ('8h às 18h')
Abrir chamado via ambos os agentescurl -X POST http://localhost:8002/openai -H 'Content-Type: application/json' -d '{"mensagem": "Abrir chamado: impressora travou"}'Resposta 'Chamado aberto com sucesso.' e linha adicionada ao chamados.txt
Executar busca web via MCPcurl -X POST http://localhost:8001/mcp -H 'Content-Type: application/json' -d '{"mensagem": "Buscar: Python"}'Resposta 'Busca realizada.'
Verificar logs de tracingtail -f logs.txtEntradas detalhadas de cada ação do agente
Comparar respostas dos dois agentes para o mesmo inputcurl -X POST http://localhost:8002/openai -H 'Content-Type: application/json' -d '{"mensagem": "Qual o ramal TI?"}'Respostas equivalentes ('1234')

Troubleshooting

SintomaCausa provávelCorreção
Erro 401 ao chamar API externaChave de API não configurada ou inválidaVerifique variáveis de ambiente e permissões da chave
Função de ferramenta não executaRegistro incorreto da função no SDKConfirme assinatura e registro conforme documentação do SDK
Endpoint HTTP não respondeServidor FastAPI/Uvicorn não iniciado ou porta em usoVerifique logs, portas e reinicie o servidor
Logs não aparecemConfiguração de logging ausente ou nível inadequadoAjuste logging.basicConfig(level=logging.INFO) e reinicie
Respostas diferentes entre agentesDiferença no prompt de sistema ou implementação de ferramentaPadronize prompts e funções entre ambos

Segurança e hardening

  • Nunca exponha segredos em código ou logs
  • Restrinja acesso às portas HTTP a redes confiáveis
  • Implemente revisão humana para ações irreversíveis
  • Garanta minimização de dados pessoais conforme LGPD
  • Limite permissões dos arquivos de log e chamados.txt

Checklist final

Referências

  1. Claude Agent SDK Documentation · Code.claude (code.claude.com)
  2. OpenAI Agents SDK (Python) · Openai.github (openai.github.io)
  3. Model Context Protocol · Modelcontextprotocol (modelcontextprotocol.io)
  4. FastAPI Documentation · FastAPI (fastapi.tiangolo.com)
  5. Python Official Documentation · Python Software Foundation (docs.python.org)
Verificação editorial
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
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.