Pular para o conteúdo principal
OpenAI

Como a OpenAI usa o Codex

Introdução

O Codex é usado diariamente por diversas equipes técnicas da OpenAI, como Segurança, Engenharia de Produto, Front-end, API, Infraestrutura e Engenharia de Performance. As equipes usam o Codex para acelerar uma ampla gama de tarefas de engenharia, desde entender sistemas complexos e refatorar grandes bases de código até lançar novos recursos e resolver incidentes sob prazos apertados.

Com base em entrevistas com engenheiros da OpenAI e em dados internos de uso, reunimos casos de uso e melhores práticas que mostram como o Codex ajuda nossas equipes a avançar mais rápido, melhorar a qualidade do trabalho e gerenciar a complexidade em escala.


Caso de uso 1: compreensão do código

O Codex ajuda nossas equipes a se atualizarem rapidamente sobre partes desconhecidas da base de código durante a integração, a depuração ou a investigação de um incidente.

Eles costumam usar o Codex para localizar a lógica central de um recurso, mapear as relações entre serviços ou módulos e acompanhar o fluxo de dados em um sistema. Também ajuda a identificar padrões arquitetônicos ou lacunas na documentação que, de outra forma, exigiriam um esforço manual significativo para serem descobertos.

Durante a resposta a incidentes, o Codex ajuda engenheiros a se familiarizarem rapidamente com novas áreas, revelando interações entre componentes e rastreando como estados de falha se propagam entre sistemas.

Histórias de nossas equipes

“Quando corrijo um erro, uso o modo Ask para ver onde mais, na base de código, o mesmo problema pode aparecer.”
Engenheiro de desempenho, sistemas de recuperação
Experimente usar o Codex para entender código com este exemplo de prompt:
  • Onde a lógica de autenticação está implementada neste repositório?

  • Resuma como as solicitações fluem por este serviço, desde o ponto de entrada até a resposta.

  • Quais módulos interagem com [inserir nome do módulo] e como as falhas são tratadas?

Caso de uso 2: refatoração e migrações

O Codex é comumente usado para fazer alterações que abrangem vários arquivos ou pacotes. Por exemplo, quando engenheiros estão atualizando uma API, alterando a forma como um padrão é implementado ou migrando para uma nova dependência, o Codex facilita a aplicação consistente de mudanças.

Isso é especialmente útil quando a mesma atualização precisa ser feita em dezenas de arquivos ou quando exige conhecimento da estrutura e das dependências que não são facilmente identificadas com regex ou busca e substituição.

Eles também utilizam essa abordagem para a limpeza de código, dividindo módulos excessivamente grandes, substituindo padrões antigos por versões mais modernas ou preparando o código para melhorar a testabilidade.

Histórias de nossas equipes

“O Codex substituiu todas as chamadas legadas de getUserById() pelo nosso novo padrão de serviço e abriu um PR. Em minutos, fez o que teria levado horas.”
Engenheiro de back-end, ChatGPT Web
Experimente usar o Codex para refatoração e migrações com estes exemplos de prompt:
  • Divida este arquivo em módulos separados por responsabilidade e crie testes para cada um.

  • Converta todo o acesso ao banco de dados baseado em callbacks para async/await.

Caso de uso 3: otimização de desempenho

O Codex é usado para identificar e resolver gargalos de desempenho.

Durante esforços de ajuste fino ou de confiabilidade, engenheiros pedem ao Codex que analise caminhos de código lentos ou com uso intensivo de memória, como loops ineficientes, operações redundantes ou consultas custosas, e sugira alternativas otimizadas — o que muitas vezes resulta em ganhos significativos de eficiência e confiabilidade.

O Codex também é usado para melhorar a saúde do código, identificando padrões arriscados ou descontinuados que ainda estão em uso ativo. Nossas equipes contam com ele para reduzir a dívida técnica de longo prazo e prevenir regressões de forma proativa.

Histórias de nossas equipes

“Eu uso o Codex para identificar chamadas repetidas e dispendiosas ao banco de dados. É ótimo para identificar caminhos críticos e elaborar consultas em lote que depois posso ajustar.”
Engenheiro de infraestrutura, confiabilidade de APIs
Experimente usar o Codex para otimização de desempenho com estes exemplos de prompt:
  • Otimize este loop para maior eficiência de memória e explique por que sua versão é mais rápida.

  • Identifique operações repetidas e dispendiosas neste manipulador de solicitações e sugira oportunidades de cache.

  • Sugira uma forma mais rápida de fazer consultas ao banco de dados em lote nesta função.

Caso de uso 4: melhorando a cobertura de testes

O Codex ajuda engenheiros a escrever testes mais rapidamente, especialmente em locais onde a cobertura é insuficiente ou inexistente.

Ao trabalhar em uma correção de erro ou em uma refatoração, os engenheiros costumam pedir ao Codex que sugira testes que abranjam casos extremos ou caminhos prováveis de falha. Para código novo, ele pode gerar testes unitários ou de integração com base na assinatura da função e na lógica ao redor.

O Codex é especialmente útil para identificar casos de limite, como entradas vazias, tamanho máximo ou estados incomuns mas válidos, que muitas vezes passam despercebidos nos testes iniciais.

Histórias de nossas equipes

“Aponto o Codex para módulos com baixa cobertura durante a noite e acordo com PRs de testes unitários prontos para execução.”
Engenheiro de front-end, ChatGPT Desktop
Experimente usar o Codex para otimização de desempenho com estes exemplos de prompt:
  • Escreva testes unitários para esta função, incluindo casos extremos e caminhos de falha.

  • Gere um teste baseado em propriedades para este utilitário de ordenação.

  • Amplie este arquivo de teste para cobrir cenários ausentes relacionados a entradas nulas e estados inválidos.

Caso de uso 5: aumentar a velocidade de desenvolvimento

O Codex ajuda as equipes a avançar mais rápido ao acelerar tanto o início quanto o fim do ciclo de desenvolvimento.

Ao iniciar uma nova funcionalidade, os engenheiros o utilizam para gerar o código boilerplate, criando pastas, módulos e stubs de API para colocar código executável em funcionamento com rapidez, sem precisar conectar manualmente cada parte.

À medida que os projetos se aproximam do lançamento, o Codex ajuda a cumprir prazos apertados ao assumir tarefas menores, mas essenciais, como triagem de bugs, preenchimento de lacunas finais de implementação e geração de scripts de implantação, hooks de telemetria ou arquivos de configuração.

Também é usado para transformar feedback de produto em código inicial: os engenheiros frequentemente colam uma solicitação do usuário ou uma especificação e fazem com que o Codex gere um rascunho ao qual podem voltar depois e refinar.

“Passei o dia todo em reuniões e ainda fiz merge de quatro PRs porque o Codex estava trabalhando em segundo plano.”
Engenheiro de produto, ChatGPT Enterprise
Experimente usar o Codex para aumentar a velocidade de desenvolvimento com estes exemplos de prompts:
  • Estruture uma nova rota de API para POST /events, com validação básica e registro em log.

  • Crie um hook de telemetria para monitorar o sucesso ou a falha do novo fluxo de integração, utilizando este modelo: [insira um exemplo do seu código de telemetria].

  • Crie uma implementação inicial com base nesta especificação: [insira a especificação ou o feedback do produto].

Caso de uso 6: mantendo o fluxo

O Codex ajuda nossos engenheiros a se manterem produtivos quando as agendas estão fragmentadas e cheias de interrupções.
Ele é usado para registrar trabalhos inacabados, transformar anotações em protótipos funcionais ou desdobrar tarefas exploratórias que podem ser retomadas mais tarde. Isso facilita pausar e retomar o trabalho sem perder o contexto, especialmente quando estão de plantão ou têm muitas reuniões.

“Quando identifico uma correção rápida, aciono uma tarefa no Codex em vez de trocar de branch, e reviso o PR quando tenho tempo.”
Engenheiro de back-end, ChatGPT API
Experimente usar o Codex para manter o fluxo com este exemplo de prompt:

Caso de uso 7: exploração e ideação

O Codex também é útil para trabalhos abertos, como encontrar soluções alternativas ou validar decisões de design. É possível pedir ao modelo diferentes formas de resolver um problema, explorar padrões desconhecidos ou testar hipóteses sob pressão. Isso ajuda a evidenciar prós e contras, ampliar as opções de design e refinar as escolhas de implementação.

Também é usado para identificar bugs relacionados: dado um problema conhecido ou um método obsoleto, o Codex pode identificar padrões semelhantes em outras partes do código, facilitando a localização de regressões ou a conclusão de um trabalho de limpeza.

“O Codex me ajuda a superar o problema da partida a frio. Eu insiro uma especificação e a documentação, e ele gera a estrutura do código ou mostra o que ficou faltando.”
Engenheiro de produto, ChatGPT Desktop
Experimente usar o Codex para exploração e ideação com este exemplo de prompt:
  • Como isso funcionaria se o sistema fosse orientado a eventos em vez de solicitação e resposta?

  • Encontre todos os módulos que constroem strings SQL manualmente, em vez de usar nosso construtor de consultas.

  • Reescreva isto em um estilo mais funcional, evitando mutação e efeitos colaterais.


Melhores práticas

O Codex funciona melhor quando recebe estrutura, contexto e espaço para iterar. Abaixo estão alguns dos hábitos que as equipes da OpenAI estão cultivando para extrair valor consistente dele no trabalho diário.

Comece com o modo de perguntas

Para mudanças grandes, comece pedindo ao Codex um plano de implementação usando o modo Ask, que então se torna a entrada para prompts de acompanhamento quando você muda para o modo Code. Esse fluxo de duas etapas mantém o Codex fundamentado e ajuda a reduzir erros na saída gerada. O Codex funciona melhor com tarefas bem definidas, que levariam cerca de uma hora para você ou um colega concluir, ou algumas centenas de linhas de código para implementar. À medida que os modelos melhoram, espere que o tamanho das tarefas que eles conseguem assumir também aumente.

Melhore iterativamente o ambiente de desenvolvimento do Codex

Definir um script de inicialização, variáveis de ambiente e acesso à internet reduz significativamente a taxa de erros do Codex. Ao executar tarefas, procure erros de build que possam ser corrigidos na configuração de ambiente do Codex. Isso pode exigir algumas iterações, mas traz ganhos significativos de eficiência a longo prazo.

Estruture seu prompt como se estivesse criando uma GitHub Issue

O Codex responde melhor quando os prompts seguem a forma como você descreveria uma mudança em um PR ou issue. Isso significa incluir caminhos de arquivo, nomes de componentes, diffs e trechos da documentação quando relevante. Dar instruções no formato “Implemente isso da mesma forma que é feito no [módulo X]” melhora os resultados.

Use a fila de tarefas do Codex como um backlog leve

Dispare tarefas para capturar ideias tangenciais, trabalho parcial ou correções pontuais. Não há pressão para gerar um PR completo de uma só vez. O Codex funciona bem como uma área de preparação à qual você pode voltar quando recuperar o foco.

Use AGENTS.md para fornecer contexto persistente

Mantenha um arquivo AGENTS.md para ajudar o Codex a operar com mais eficiência no seu repositório em diferentes prompts. Esses arquivos normalmente incluem convenções de nomenclatura, lógica de negócios, peculiaridades conhecidas ou dependências que o Codex não consegue inferir apenas pelo código. Saiba mais sobre como estruturar seu arquivo AGENTS.md na documentação.

Use “Best-of-N” para melhorar os resultados

O recurso Best-of-N permite gerar simultaneamente várias respostas para uma mesma tarefa, para explorar rapidamente diferentes soluções e escolher a melhor. Para tarefas mais complexas, você pode analisar várias iterações e combinar partes de respostas diferentes para obter um resultado melhor.


Olhando para o futuro

O Codex ainda está em pré-visualização de pesquisa, mas já está causando um impacto real na forma como desenvolvemos, ajudando-nos a avançar mais rápido, escrever código melhor e assumir trabalhos que, de outra forma, nunca teriam sido priorizados.

Estamos animados com o potencial pela frente: à medida que nossos modelos melhoram e o Codex se integra mais profundamente aos nossos fluxos de trabalho, esperamos desbloquear formas ainda mais poderosas de desenvolver software com ele. Continuaremos compartilhando o que aprendermos ao longo do caminho.

Quer levar a IA para a sua empresa?

Saiba como ajudamos empresas a criar estratégias de IA escaláveis e responsáveis.