Codex Acaba de se Tornar o MELHOR Harness para Agentes de Longa Duração

CChase AI
Computing/SoftwareVideo & Computer GamesInternet Technology

Transcript

00:00:00O Codex pode ter superado o Claude Code com o lançamento do novo recurso experimental Goals.
00:00:05O Codex agora é a maneira mais fácil de executar tarefas de codificação autônomas de longa duração sem
00:00:10ter que incluir qualquer tipo de camada de orquestração adicional. O Goals funciona como um
00:00:15loop REPL integrado mais sofisticado. Você dá a ele algum tipo de objetivo e ele trabalhará
00:00:19por potencialmente horas e horas para resolver esse problema sem que você precise intervir.
00:00:25E hoje vou mostrar como funciona, como configurar e faremos uma
00:00:29demonstração real para que você veja isso em ação. Hoje criaremos o Rift Salvage, nosso videogame
00:00:35de combate 2D que usa ativos totalmente originais e que construiremos estritamente através do Goals. O recurso Goals
00:00:42é um dos diferenciais reais do Codex no momento e é hilariamente simples de usar.
00:00:47Estamos falando de um único comando de barra, então há muito valor a ser obtido aqui. Seja
00:00:51usando o app desktop do Codex ou a CLI do Codex, você precisa ativar o Goals porque é um
00:00:56recurso experimental. Você pode pedir para o Codex fazer isso ou você mesmo pode fazer rapidamente.
00:01:01Dentro do app Codex, vou em configurações e depois vou em configuração,
00:01:07bem aqui onde diz abrir config.toml. Vou clicar, abrir no VS Code
00:01:15e aqui embaixo você precisa adicionar duas linhas se ainda não estiverem lá: features e depois goals igual a true.
00:01:22É isso. Deve levar uns dois segundos. Se for muito complicado, você também pode dizer ao Codex:
00:01:27“ei, você pode ativar o goals para mim?”, então features goals equals true. É isso. Agora, para usar o Goals
00:01:35dentro do app desktop e da CLI, você só vai digitar /goal. Agora, por algum motivo,
00:01:40acho que é porque é novo e experimental, ao digitar /goal, você não receberá nenhuma
00:01:43notificação de que está funcionando, mas verá que, assim que dermos um prompt adequado,
00:01:48receberemos um pequeno selo indicando que o goal está funcionando. Se você o ativar, certifique-se de
00:01:53reiniciar o Claude Code depois disso para garantir que as mudanças ocorram. Mas ao digitar
00:01:58/goal, você não verá nada como veria normalmente, como se estivesse usando
00:02:02uma skill ou algo onde recebe um feedback adequado de que está funcionando. Mas isso é bom.
00:02:08Antes de demonstrarmos o goal no app, deixe-me explicar como ele funciona nos bastidores.
00:02:13Mas primeiro, uma palavra rápida do patrocinador de hoje: eu. Como sabem, dentro do Chase AI Plus, tenho a
00:02:18Masterclass do Claude Code, mas também acabei de lançar a Masterclass do Codex. Agora você tem duas ferramentas que
00:02:24podem te levar do zero a desenvolvedor de IA. Este é o melhor lugar para aprender a fazer isso porque
00:02:29assumo que você não tem conhecimento técnico e focamos em casos de uso reais. Se quiser conferir isso
00:02:34ou ouvir meu webinar gratuito que farei em alguns dias, o link estará abaixo no comentário fixado.
00:02:40Espero te ver lá. Como eu disse na introdução, o Codex Goals é basicamente
00:02:46um loop Ralph integrado mais sofisticado. O que é um loop Ralph, você pergunta? Bem, faremos uma
00:02:51revisão rápida para quem não lembra. Em sua essência, um loop Ralph, se estivéssemos usando em
00:02:57algo como o Claude Code, é simplesmente uma linha de código. É apenas um loop bash. É exatamente o que você vê
00:03:03bem aqui. A ideia é: eu rodo essa linha de código e o que vai acontecer é que ela vai iniciar o
00:03:09Claude Code ou o Codex ou qualquer sistema de IA, e ele vai analisar um arquivo prompt.md.
00:03:16Este prompt vai dizer: “ei, aqui está o que estamos tentando fazer, aqui está como quero fazer e,
00:03:21a propósito, aqui estão os critérios para considerar completo”. Neste exemplo, queremos aumentar a cobertura nos
00:03:28arquivos de autenticação, o que basicamente significa que precisamos criar mais testes e pararemos quando a cobertura
00:03:33está em 75%, então esse é o objetivo final. E assim funcionaria: você iniciaria esse loop e então
00:03:41o loop analisa o prompt e então o injeta na sessão de IA; a sessão executa um único
00:03:48turno, lê o prompt e também lê um arquivo state.md; o arquivo de estado é basicamente um arquivo que ele
00:03:56pode consultar dizendo: “ok, se temos as tarefas um, dois e três, o que fizemos até agora e está
00:04:03funcionando?”; digamos que nos primeiros turnos ele complete a tarefa um e, no próximo turno, ele vai
00:04:10olhar o arquivo de estado e dizer: “ei, a tarefa dois não está completa. Adivinha o que faremos nesta
00:04:14sessão? Vamos fazer a sessão dois”. Talvez não funcione no primeiro turno e ele diga:
00:04:18“ei, aqui está o que tentei, o próximo tenta”, etc., até completar todas as tarefas. Após o agente
00:04:25executar seu turno, ele atualiza o arquivo, o turno termina e o loop continua. Assim você tem esse tipo de
00:04:30loop contínuo onde ele está constantemente verificando alguns arquivos diferentes para ver o que fizemos,
00:04:35o que precisamos fazer, qual é o estado final e, eventualmente, ao atingir os critérios de conclusão,
00:04:41ele diz: “ei, terminamos”. Tudo autônomo. Essa é a ideia dos Loops Ralph. Agora, se você quer que os Loops Ralph
00:04:48façam mais coisas, requer andaimes adicionais, sabe, coisas relacionadas a faturamento, o que
00:04:53fazer, se há algum tipo de uso inteligente de tokens? Não necessariamente. O que acontece se ele desligar,
00:04:58o agente travar, você der control C? Como ele sabe que realmente terminou? Existe de fato um
00:05:02terceiro integrado que verifica se tudo foi feito? Na verdade não, porque em sua essência, novamente, é apenas uma única
00:05:08linha de código. Agora compare isso com o Goals. O Goals, em termos gerais, funciona da mesma forma. Dizemos a ele para fazer
00:05:15algo, ele tem uma ideia de como vai fazer e está constantemente atualizando arquivos internos dizendo:
00:05:19“aqui está o que fiz, aqui está o que ainda precisamos fazer” e tenta chegar àquele estado final. De modo
00:05:23geral, é quase o mesmo. No entanto, existem algumas diferenças. Primeiro, temos esses dois
00:05:29arquivos markdown que são essencialmente invisíveis para você: continuation e budget limit. O que
00:05:35esses dois fazem? Bem, eles permitem que o Codex aja de uma maneira diferente se você
00:05:40estiver prestes a atingir os limites de uso, o que é importante. Então, há realmente uma espécie de
00:05:46término gracioso para como seu sistema lidará com uma tarefa em um loop Goals versus um loop Ralph. No loop Ralph,
00:05:52você atingiu seu orçamento e acabou. No Codex, não necessariamente. Ele vai descobrir uma boa maneira de
00:05:57te levar a um ponto que você possa trabalhar depois. E a forma como isso acontece na realidade é: o Codex executa seu
00:06:03turno no seu loop Goals ou loop Ralph, como queira pensar, e ao chegar no fim
00:06:08do turno, ele realmente tem quatro caminhos a seguir. Um: se ainda tiver trabalho a fazer e o orçamento estiver bom,
00:06:13“ei, vamos continuar em frente”. Dois: se estivermos perto do nosso limite de tokens, o que ele vai fazer é
00:06:19injetar aquele arquivo budget limit.md e vai essencialmente encerrar o turno de forma graciosa,
00:06:25dando a você um relatório final do que foi feito e do que você precisa fazer a seguir se atualizar
00:06:29seu limite. Se tivermos terminado o projeto, ele fará uma chamada de ferramenta update goal, então
00:06:34ele vai lá e muda seu status, garante que todos os entregáveis foram auditados e, se
00:06:39tudo voltar com um sinal positivo, pronto, objetivo concluído. Por fim, temos formas de pausar o objetivo,
00:06:45editar o objetivo, lidar com falhas. No caso de algo dar errado enquanto fazemos nosso loop,
00:06:49bem, não é como um loop Ralph tradicional onde ficamos meio que perdidos. Então, um pouco mais
00:06:54sofisticado que o loop Ralph, muito semelhante na visão geral, e não precisamos fazer nenhuma
00:06:59orquestração adicional. Tudo isso deve soar muito familiar se você já trabalhou com
00:07:05algo como GSD, GSD Superpowers. Todas essas ferramentas são camadas de orquestração que ficam sobre o Claude Code para
00:07:11fazer essencialmente o que estamos fazendo com um único comando de barra dentro do Codex com Goals. E por ser
00:07:18literalmente apenas um comando de barra, é super fácil de executar. Você não precisa assistir a uma
00:07:24demonstração de 40 minutos sobre as complexidades do GSD. Você apenas faz /goal e o Codex vai lá
00:07:30e conquista. Com isso em mente, vamos colocar à prova. Primeiro de tudo, vamos
00:07:35colocá-lo no modo de planejamento, porque podemos ir do modo de planejamento para o Goals muito facilmente,
00:07:39e vamos pedir que ele crie essencialmente um jogo de sobrevivência arcade top-down para nós e vamos
00:07:44pedir que ele crie todos os seus próprios ativos. A coisa legal sobre o Codex versus algo como
00:07:49o Claude Code, por exemplo, é que por ser um produto da OpenAI, temos acesso ao modelo GPT Images
00:07:562 também. Então ele vai criar todos os seus ativos para este jogo: eu quero seu sprite de drone,
00:08:01quero três inimigos, quero uma criatura chefe, núcleo de energia, mina de perigo, fundo de fenda, selos para a UI,
00:08:07ativos de ambientação. Vou pedir para criar bastante coisa. Ok, então o prompt é relativamente sofisticado,
00:08:15porque isso pode durar muito, muito tempo. Eu deveria ter mostrado a captura de tela já,
00:08:18do cara que disse: “estou rodando isso por 50 horas seguidas”. Quero dizer, quem sabe se 50 horas
00:08:23seguidas é realmente a melhor maneira de fazer isso, mas a ideia é: temos uma ideia vaga, vamos para o modo plano,
00:08:31conseguimos algo muito, muito preciso. E muito importante com algo assim é que
00:08:36você precisa ser extremamente específico sobre qual deve ser o resultado final, porque se não tivermos um
00:08:43resultado final muito específico, buscando um conjunto de coisas quantificáveis que ele deve atingir para
00:08:50concluir o loop, você terá um resultado medíocre. Pode ficar
00:08:55pela metade. Então eu sugiro fortemente que você use o modo plano e reserve um tempo para realmente detalhar
00:09:02o plano, em vez de dizer apenas “/goal faça para mim um produto SaaS que fature um bilhão de dólares”. E aqui está
00:09:07o plano para o nosso jogo. E quando se trata de verificação, é nisso que ele vai estar de
00:09:12olho, certo? É isso que ele vai testar antes de dizer que está completo. Obviamente, ele precisa
00:09:17rodar npm run build e corrigir todos os erros, iniciar o servidor de desenvolvimento e fornecer a URL local; adicionar e
00:09:24executar um script de verificação automatizada com Playwright que abre o app, confirma que tudo carrega,
00:09:29verifica se o canvas não está em branco, simula movimentos de teclado, simula coleta de itens, força dano,
00:09:34confirma mudanças na vida, estado de vitória contra o chefe, UIs, e assim por diante. É para isso que você realmente quer
00:09:39olhar. Sabe, se você olhar para a verificação e disser: “ei, se tudo isso for
00:09:44concluído, ficarei feliz”, então você está pronto para seguir em frente. Agora, quando diz implementar o plano,
00:09:49você vai querer ir em... não, eu vou te dizer o que fazer. Você pode fazer /goal: use goal
00:09:54para implementar este plano. E vamos enviar. E bem aqui em cima, o que você vê? Você tem esse
00:10:02pequeno selo que diz “goal”, então agora sei que estamos executando o goal. E diz aqui também. Então,
00:10:09como eu disse antes, ao fazer /goal, você não verá comandos, mas está
00:10:12funcionando. Acho que é apenas um bug de UI por ser um recurso experimental. Diz que
00:10:17ainda está no modo plano, então vamos cancelar esse objetivo. Use goal para implementar este plano. Um pouco bruto
00:10:28ainda, mas vamos ver o que ele faz por nós. A ideia é que agora estou totalmente livre,
00:10:34ele vai executar seu pequeno loop Ralph, sua pequena coisa de objetivo, e no final teremos
00:10:39um produto final. Ele está trabalhando há cerca de 12 minutos e você pode ver que já está
00:10:43no processo de criar todos os diferentes ativos usando o modelo Image Gen 2,
00:10:49o que é muito legal. E, novamente, a outra coisa boa é que ao usar o app desktop em vez
00:10:54de apenas rodar no terminal puro, tudo isso é apresentado para você em linha, o que é ótimo. Eu
00:11:00pessoalmente fiquei muito impressionado com o app desktop do Codex. Não que eu ainda não ame o Claude
00:11:06Code, acho que uso essas duas ferramentas de forma intercambiável. Você pode ver meu último vídeo com toda minha
00:11:11opinião sobre isso, onde acho que a ideia de que precisamos escolher entre essas duas ferramentas é meio idiota.
00:11:15Por que não usamos as duas, e muitas vezes em conjunto? No caso do Claude Code, sou
00:11:20muito mais terminal puro, mas com o Codex, tenho gostado muito do app desktop. Parte disso pode
00:11:26ser apenas uma boa mudança de ritmo às vezes, em vez de estar sempre no terminal o tempo
00:11:32todo. Então, até agora, tenho gostado bastante. Depois de uns 30 minutos, ele disse que terminou e, na verdade,
00:11:38concluiu mais rápido do que eu pensava. Vamos ver como ficou na primeira tentativa e, como
00:11:44fez isso tão rápido, provavelmente pedirem para fazer algumas coisas ao final. Ele diz que implementou
00:11:49o Rift Salvage; o servidor de dev local está rodando aqui. É um jogo em canvas com controles de teclado e toque, gerando
00:11:56inimigos, minas, pontuação, escudo, power-ups, fase de chefe, vitória, derrota, pausa e reinício. 11 ativos de bitmap
00:12:03gerados por IA com recortes alfa, verificador automatizado Playwright e mostra todas as coisas que construiu,
00:12:10o que é bem legal. Vamos ver se funciona e o que podemos adicionar para forçar um pouco
00:12:17um pouco mais. Vamos ver no navegador real. Ok, temos uma pequena tela de carregamento
00:12:27e o contraste está um pouco baixo, difícil de ver. Pode ser difícil para você enxergar, mas
00:12:32tenho minha pequena nave espacial. Aquilo é uma mina, acho que devo pegar estas coisas
00:12:39enquanto gera inimigos que me perseguem. Funciona, parece legal. Acho que poderíamos
00:12:49provavelmente trabalhar um pouco nos gráficos, mas é bem interessante que tudo aqui foi criado
00:12:56como imagens únicas. Acho que o que poderíamos fazer é adicionar... primeiro de tudo, quero ver como
00:13:00é a luta contra o chefe, se pudéssemos acelerar isso e também adicionar algum tipo de
00:13:04sistema de tiro, seja com lasers ou algo legal assim. Vamos fazer
00:13:11isso. Vamos pedir que faça isso antes de ficarmos aqui por mais tempo. Vou colocar no modo play
00:13:15e ver se conseguimos fazê-lo trabalhar um pouco mais. Ok, acho que foi uma boa primeira tentativa,
00:13:19tudo está funcionando, mas eu gostaria de torná-lo um pouco mais complexo. Podemos adicionar algum tipo
00:13:24de sistema de combate, seja lasers atirando em inimigos diferentes e eles
00:13:31atirando de volta em nós? Poderíamos também fazer a fase do chefe vir um pouco mais rápido ou incluir algum
00:13:37tipo de botão que eu possa apertar para iniciar a fase do chefe? Poderíamos também mudar um pouco o contraste,
00:13:42porque agora tudo meio que se mistura com o fundo. E se você tiver outras ideias
00:13:49para apenas tornar isso um pouco mais complicado e te levar aos seus limites,
00:13:53deixe-me ver essas ideias. Este é o plano que ele criou. Agora, algo que você deve saber ao usar
00:13:58usando o sistema de objetivos, cada execução está ligada ao tópico ou à sessão que você está usando no
00:14:07momento; estivemos no mesmo chat, o que significa que estamos na mesma thread de objetivo; se eu quiser usar
00:14:12o Goals novamente, fazer uma segunda rodada de objetivos no mesmo projeto, podemos fazer, mas temos que fazer
00:14:18em uma segunda thread ou um segundo chat, como abrir outro terminal. Então, tudo o que vou fazer é copiar
00:14:24este plano, vou abrir outro chat, faremos /goal e vamos
00:14:33colar lá. Depois de 15 minutos, completamos a segunda etapa de objetivos. Ele implementou o upgrade
00:14:40de combate. Vamos ver como o jogo está agora. Aqui está a tela de carregamento novamente, muito parecida
00:14:44com o que vimos na primeira vez, exceto que adicionou alguns widgets aqui em cima: temos combo de alvos,
00:14:50assim como o sinal do chefe agora. Se lançarmos, já saio atirando com
00:14:56minha arma, os inimigos podem atirar de volta e eles têm pontos de vida. Também posso
00:15:01ativar o sinal do chefe; lá está o chefe. Bem legal, na verdade. Acho que a coisa mais bacana
00:15:09sobre este jogo e o que ele fez foi apenas todos os ativos únicos, né? O fato de que tudo é um
00:15:13ativo original e que fez tudo isso usando o Image Gen 2, o que achei
00:15:19sensacional. E sei que, obviamente, isso levou apenas cerca de 45 minutos no total entre as duas rodadas, e vimos
00:15:24pessoas fazendo rodadas de três dias em suas capturas de tela, mas acho que a melhor parte
00:15:30disso é como é simples executar esses objetivos. Você simplesmente dá um objetivo
00:15:36e ele vai fundo, assumindo que você tenha algo definido. Nós vencemos? Não sei se
00:15:43morremos ou não, mas como eu dizia, a coisa legal sobre isso e sobre o Goals em geral é a
00:15:48ideia de que, se você tem um objetivo claro e critérios claros para o que é sucesso,
00:15:54você pode tirar muito disso e isso pode rodar para sempre. Em vez de ter que configurar
00:15:59seu próprio loop Ralph e seu próprio andaime ou usar algo externo como camada de orquestração,
00:16:05como GSD ou Superpowers, isso já vem embutido para você. E como fizemos aqui,
00:16:10você pode adicionar muitas coisas legais que são mais difíceis de implementar, mas é possível no Claude Code. Por exemplo,
00:16:15se usássemos o Claude Code para isso, com certeza poderíamos ter feito. Teríamos apenas que
00:16:18implementar algo como a CLI Higgsfield ou o MCP Higgsfield para fazer toda aquela geração de imagens
00:16:24para nós, em vez de ser este sistema único, integrado e holístico. Espero que você tenha conseguido
00:16:31tirar algo deste vídeo e sugiro fortemente que confiram o Codex. Tenho gostado muito do
00:16:35app desktop, como venho dizendo, e acho esse recurso sensacional. E, novamente,
00:16:40poderíamos ter feito isso em conjunto com o Claude Code também. Poderíamos ter criado o plano no
00:16:44Claude Code e depois jogado no Codex para o Goals; fazer o Claude Code analisar o trabalho que ele
00:16:49fez e ter esse vaivém, que é onde acho que se obtém o maior valor. É como
00:16:53aquela história do todo ser maior do que a soma das partes. Então, como sempre, me digam
00:17:02o que acharam, não esqueçam de conferir o Chase AI Plus, há um link para isso logo abaixo no comentário
00:17:07fixado. Também farei um webinar em alguns dias, haverá um link lá também, então espero vocês lá.
00:17:12No mais, a gente se vê por aí.

Key Takeaway

O novo recurso Goals do Codex automatiza o desenvolvimento de software de longa duração ao integrar orquestração nativa, gerenciamento inteligente de orçamento de tokens e geração de imagens em um único comando de barra.

Highlights

  • O Codex introduziu o recurso experimental Goals que permite a execução de tarefas de codificação autônomas por várias horas sem intervenção humana.

  • A ativação do recurso exige a inclusão das linhas [features] e goals = true no arquivo config.toml do Codex.

  • O sistema utiliza arquivos markdown invisíveis como continuation e budget limit para gerenciar limites de tokens e garantir encerramentos de tarefas de forma graciosa.

  • Diferente do Claude Code, o Codex possui integração nativa com o GPT Images 2 para geração de ativos visuais originais durante o desenvolvimento.

  • A execução de um loop de objetivos no Codex leva cerca de 45 minutos para entregar um jogo funcional com múltiplos ativos, sistemas de combate e verificações automatizadas via Playwright.

  • O comando /goal substitui a necessidade de camadas de orquestração externas complexas como GSD ou Superpowers.

Timeline

Codex Goals como evolução do loop REPL

  • O recurso Goals permite que o Codex opere de forma autônoma em problemas complexos por períodos prolongados.
  • A funcionalidade elimina a necessidade de camadas de orquestração de terceiros para gerenciar agentes de IA.
  • O sistema funciona como um loop REPL sofisticado que processa objetivos sem interrupção constante do usuário.

O Codex supera limitações anteriores ao permitir que tarefas de codificação sejam executadas de forma independente. O sistema recebe um objetivo amplo e trabalha continuamente para resolvê-lo. Essa abordagem simplifica o fluxo de trabalho ao consolidar a inteligência do agente e a gestão da tarefa em uma única ferramenta.

Procedimento de ativação do recurso experimental

  • A configuração manual exige a edição do arquivo config.toml no VS Code para habilitar a flag de goals.
  • O comando /goal inicia o modo de objetivo no aplicativo desktop ou na interface de linha de comando.
  • Reiniciar o ambiente após a alteração nas configurações garante a aplicação correta das novas funcionalidades.

A ativação pode ser feita através do menu de configurações no aplicativo desktop, acessando a seção de configuração e clicando em abrir config.toml. O usuário deve adicionar as entradas de features e goals no arquivo. Embora seja um recurso experimental sem feedback visual imediato na interface ao digitar o comando, um selo indicador aparece assim que o prompt é processado.

Mecânica interna e gestão de limites

  • O loop do Codex monitora arquivos internos de estado para verificar tarefas concluídas e pendentes.
  • Arquivos de limite de orçamento injetam instruções para um término gracioso quando os tokens estão próximos do fim.
  • O sistema realiza auditorias automáticas nos entregáveis antes de marcar um objetivo como concluído.

O Goals opera de forma semelhante aos loops bash tradicionais, mas com maior sofisticação na gestão de falhas e recursos. Ele utiliza arquivos markdown invisíveis para decidir entre continuar o trabalho, pausar devido ao orçamento ou finalizar o projeto. Existem quatro caminhos possíveis ao final de cada turno: continuação, encerramento por limite de tokens com relatório de progresso, conclusão do objetivo após auditoria ou tratamento de falhas técnicas.

Desenvolvimento autônomo com ativos visuais

  • O modo de planejamento (plan mode) gera roteiros detalhados com critérios de sucesso quantificáveis.
  • A integração com GPT Images 2 permite a criação de sprites e elementos de interface originais para o projeto.
  • Scripts automatizados com Playwright verificam a funcionalidade do software, incluindo colisões e estados de UI.

A criação do jogo Rift Salvage demonstra a capacidade de gerar um produto completo do zero. O prompt inicial deve ser específico sobre o resultado final para evitar resultados medíocres ou incompletos. Durante o processo, o Codex gera ativos como drones, inimigos e chefes, apresentando-os diretamente na interface do aplicativo desktop enquanto constrói a lógica do jogo.

Iteração de projeto e integração de ferramentas

  • Novas iterações no mesmo projeto exigem a abertura de novas threads ou chats para reiniciar o loop de objetivos.
  • Sistemas de combate complexos e ajustes de contraste são implementados em rodadas de desenvolvimento subsequentes.
  • A combinação do Codex com o Claude Code potencializa o fluxo de trabalho através de análises cruzadas de código.

Após a primeira versão funcional, o sistema adicionou sistemas de laser, inteligência artificial para inimigos e barras de vida em cerca de 15 minutos adicionais. O valor máximo é atingido ao tratar o Codex e o Claude Code como ferramentas complementares e não excludentes. É possível criar planos detalhados em uma ferramenta e usar o recurso Goals da outra para a execução pesada, aproveitando os pontos fortes de cada modelo.

Community Posts

View all posts