Pular para o conteúdo

Cozinhando com Codex — Charlie Guo e Gabriel Chua, OpenAI

Ver no idioma original →

Autoria: AI Engineer · Assistir no YouTube

Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.

Idioma original: inglês

Vídeo original: Cooking with Codex — Charlie Guo & Gabriel Chua, OpenAI · Canal: AI Engineer · 1:06:50 · Assistir no YouTube

Tópicos: Agentes de IA, Automação de tarefas e workflows, Engenharia de software com IA, Ferramentas de desenvolvimento com IA, Open source e ecossistemas de software

Charlie Guo e Gabriel Chua, da OpenAI, apresentam maneiras de usar Codex para fornecer contexto, criar artefatos e automatizar tarefas. Eles demonstram recursos como plugins, computer use, tarefas de longa duração, subagents e automations, além de explicar como coordenar threads e verificar o trabalho do modelo. A apresentação também mostra o app server, que permite integrar Codex a outros produtos, e termina com recomendações para passar de pedidos isolados à criação de workflows e sistemas de software mais amplos.

  • Fornecer contexto relevante — de conversas e documentos a informações na tela e preferências pessoais — ajuda Codex a executar tarefas com mais eficácia.
  • Plugins reúnem skills, configurações de conexão e MCP servers para facilitar o acesso a ferramentas e práticas específicas de uma equipe.
  • Computer use, a extensão do Chrome e o navegador integrado atendem a diferentes necessidades de interação com aplicativos e páginas web.
  • Tarefas longas podem ser organizadas com goals verificáveis, dashboards de progresso, code review e threads dedicadas a etapas específicas.
  • Subagents ajudam a delegar trabalho com contexto separado; thread handoff é útil quando a pessoa quer acompanhar a colaboração entre threads.
  • Hooks permitem executar verificações ou ações determinísticas em pontos específicos do workflow.
  • Automations podem monitorar tarefas em intervalos regulares, retomar trabalho após uma espera ou iniciar novas threads.
  • O app server permite integrar recursos centrais de Codex a produtos e plataformas próprios.
  • Instruções claras e critérios de sucesso verificáveis ajudam Codex a entender o resultado esperado sem depender de frases mágicas no prompt.
  • A evolução de pedidos individuais para loops e sistemas automatizados pode reduzir etapas manuais, mantendo pessoas envolvidas quando necessário.
Início Capítulo Resumo
00:18 Abertura e exemplos do que as pessoas estão criando Os apresentadores mostram projetos feitos com Codex, incluindo jogos, edição de vídeo e um carrinho de golfe autônomo.
03:26 Agenda e novidades de Codex A sessão apresenta recursos recentes, como record and replay, thread handoff e o aplicativo móvel.
05:29 As seis maneiras de cozinhar com Codex Os apresentadores introduzem seis etapas, começando por fornecer contexto e construir coisas.
06:31 Contexto de conversas e criação de artefatos Uma conversa no Slack vira contexto para criar um app de tradução, e Sites é usado para apresentar novidades do Agents SDK.
09:10 Codex remoto e plugins Uma tarefa enviada pelo celular pede uma visualização do repositório em estilo de manual, e os apresentadores explicam o papel dos plugins.
13:21 Teste do app de tradução e personalização A demonstração do app de tradução é seguida por uma explicação sobre memórias, Chronicle e instruções personalizadas.
19:41 Compartilhamento, code review e computer use A apresentação aborda Sites e code review antes de demonstrar Codex usando a interface de um aplicativo para baixar dados.
26:24 Formas de controlar aplicativos Os apresentadores comparam computer use, a extensão do Chrome e o navegador integrado, destacando quando cada opção é útil.
28:29 Tarefas complexas e de longa duração Exemplos de projetos longos mostram como definir requisitos, organizar objetivos e dividir o trabalho entre threads.
34:12 Comunicação, testes e acompanhamento do progresso Codex pode enviar atualizações pelo Slack, usar threads auxiliares e coordenar testes entre sessões remotas e locais.
42:28 Compaction, goals e subagents A conversa explica como compaction ajuda em threads longas e discute critérios verificáveis, subagents e thread handoff.
48:09 Hooks e trabalho ao longo do tempo Hooks podem impor verificações determinísticas, enquanto automations retomam tarefas e conectam etapas de um workflow.
50:43 Automations e loops de trabalho As demonstrações mostram automations para provisionar infraestrutura, tratar feedback e monitorar o andamento de uma apresentação.
58:30 Integração com o app server O app server é apresentado como forma de incorporar recursos de Codex a produtos e interfaces próprias.
1:02:07 Conclusões e próximos passos Os apresentadores recomendam evoluir de pedidos isolados para loops e sistemas automatizados, e encerram com informações sobre o workshop.

Qualquer pessoa pode cozinhar, mas só quem não tem medo pode ser excelente. — 05:29

Codex não consegue ler sua mente. — 30:02

Você quer que esses critérios sejam o mais verificáveis possível. — 44:02

Eu já tentei pedir isso a Codex? — 1:02:07

  • Codex (ferramenta): Ferramenta da OpenAI apresentada para criar software, interagir com aplicativos e automatizar tarefas.
  • Charlie Guo (pessoa): Integrante da equipe de developer experience da OpenAI e um dos apresentadores da sessão.
  • Gabriel Chua (pessoa): Integrante da equipe de developer experience da OpenAI e um dos apresentadores da sessão.
  • OpenAI (empresa): Empresa cujos produtos e recursos são apresentados na sessão.
  • Codex app (ferramenta): Aplicativo usado nas demonstrações para trabalhar com threads, plugins, automations e outras funções de Codex.
  • Agents SDK (ferramenta): SDK da OpenAI usado como exemplo de repositório para criar visualizações e testar integrações.
  • app server (ferramenta): Protocolo que conecta o Codex app, o Codex CLI e a extensão para VS Code ao harness de Codex.
  • Computer Use (conceito): Recurso que permite a Codex interagir com aplicativos por meio da interface visual do computador.
  • plugins (conceito): Pacotes que combinam skills, configurações de conexão e MCP servers para dar contexto e recursos a Codex.
  • Sites (ferramenta): Recurso usado para criar artefatos compartilháveis, como sites internos e formulários.
  • Chronicle (ferramenta): Prévia de pesquisa mencionada como recurso que pode fornecer contexto sobre o que está na tela.
  • subagents (conceito): Agentes delegados que trabalham em tarefas específicas com contexto separado do thread principal.
  • hooks (conceito): Ações ou verificações determinísticas configuradas para ocorrer em pontos específicos do ciclo de trabalho.
  • automations (conceito): Tarefas programadas que podem continuar em um thread ou iniciar novos threads em intervalos definidos.
  • Retroex (ferramenta): Interface experimental criada na demonstração usando o app server de Codex.
  • openai/codex (repo): Repositório open source citado como ponto de partida para explorar Codex e desenvolver integrações.
  • Google Chrome (ferramenta): Navegador usado nas demonstrações de interação com páginas e testes.
  • Slack (ferramenta): Serviço usado como fonte de contexto e exemplo de integração para mensagens e automations.
  • DigitalOcean (empresa): Provedor mencionado na demonstração de provisionamento de infraestrutura por meio de um plugin.

00:18 Certo. >> Bom dia, pessoal. >> Obrigado pela paciência. Havia uma fila grande lá fora, então queríamos garantir que todo mundo pudesse entrar e conseguir um lugar. Muito obrigado por estarem aqui. Esta é a oficina Cooking with Codex. Estamos muito animados por receber vocês. Meu nome é Charlie. Faço parte da equipe de experiência para desenvolvedores da OpenAI. >> E meu nome é Gabriel, também faço parte da equipe de experiência para desenvolvedores, vindo de Singapura. É ótimo estar aqui.

00:48 Antes de entrarmos nos detalhes, queria fazer uma rápida retrospectiva do que as pessoas têm criado com Codex. >> É um programa de culinária. >> Talvez vocês tenham visto alguns destes tweets. Há uma grande variedade de coisas que as pessoas têm criado. Algumas são realmente incríveis. Acho que este aqui é uma sessão com quase 300 subagents. Alguém já superou isso

01:19 em uma sessão? Não. Acho que talvez o Dom tenha conseguido, mas vamos ver. Codex trabalhando em um plugin de sintetizador para Ableton. Coisas realmente muito legais. Na nossa equipe, temos o Brent, que, a esta altura, está fazendo edição de vídeo com Codex controlando o Premiere, certo? Não é o que você normalmente esperaria ver em um aplicativo de programação.

01:51 Jogos jogáveis. Acho que, para mim, os jogos são mesmo um lugar em que os modelos e o aplicativo podem brilhar. A capacidade de verificar o trabalho feito para o jogo, ou de alternar entre diferentes threads e gerenciar áudio, design de arte, mecânicas de jogo e balanceamento de dificuldade. Acho que as diferentes threads e os subagents são incríveis nesse caso. E, por último, mas não menos importante, construir um carrinho de golfe autônomo com

02:24 Codex, o que acho absolutamente incrível. Isso até me faz desejar estar de volta à escola, para poder voltar a criar coisas à noite e nos fins de semana. Mas onde as pessoas têm criado? Acho isso bem divertido. Dá para ver que estão usando Codex em todos os lugares, em qualquer lugar, o tempo todo. Quero dizer, literalmente entre reuniões, vocês veem pessoas carregando seus laptops para todo lado, deixando-os abertos. Isso virou

02:54 um meme a esta altura. Felizmente, agora temos o Codex no celular. Então, esse rapaz no Japão conseguiu alternar entre ideias e cidades enquanto viajava no trem-bala ou passeava com o cachorro. E não é necessário usar o Codex no aplicativo Codex nem dentro do aplicativo ChatGPT. Você pode colocar o Codex em qualquer lugar. Como ele é open source, existe o app server, sobre o qual falaremos brevemente no final. Você pode colocá-lo aqui. Por exemplo, Daniel o colocou em

03:26 três dispositivos E-Ink. Então, você realmente pode usar o Codex em qualquer lugar. Se esta é a primeira vez que usa o Codex, dê uma olhada. Baixe-o. O legal é que, se você já tem configurações para outros agents, pode simplesmente importá-las e começar rapidinho. E hoje, com este programa de culinária, queremos ajudar vocês a criar algo bem rápido e fazer algo muito legal. Então, temos uma agenda rápida. Vamos falar sobre as novidades e, depois, o prato principal — trocadilho intencional — da sessão são as seis

03:57 maneiras de criar com Codex. Algumas considerações finais e, na segunda hora da sessão, teremos uma mini-hackathon, em que vamos criar ao vivo aqui nesta sala. Vamos circular por aí e ajudar como sous-chefs dos chefs principais. Então, o que há de novo? O que acabou de sair do forno? Algumas coisas — várias coisas, na verdade — que, fundamentalmente, ajudam a dar contexto ao Codex rapidamente. Temos gravação e reprodução. Talvez você passe um tempo explicando: “Ah, tem que apertar aquele botão, tem que apertar este botão”. Talvez seja mais fácil mostrar ao Codex fazendo. Isso se baseia

04:28 na nossa tecnologia de uso do computador e coisas do tipo. A transferência de threads é muito legal. Dá para enviar coisas da nuvem para o ambiente remoto, para o local e vice-versa. Vamos demonstrar um pouco disso. E o aplicativo para celular agora está disponível para todos. Assim, há um pareamento individual entre dispositivos, uma forma muito mais segura de trabalhar com o Codex. Então, estamos em 2026. Este slide mal resume tudo o que lançamos, e só estamos em 50%, literalmente 50% do ano. Algumas coisas têm sido

04:59 muito legais: os plugins, o uso do computador, a multimodalidade, a possibilidade de usar o Codex no celular, as capturas de tela do app — essa é uma das minhas favoritas. Essas coisas tornam o Codex e o aplicativo Codex muito divertidos de usar. Vamos falar sobre algumas delas. Todas são ingredientes essenciais. Então, é assim que se prepara o Codex. Queríamos começar com esta citação do nosso filme favorito, Ratatouille: “Qualquer um pode cozinhar, mas só os destemidos podem ser grandes.” E hoje, com os ingredientes que vamos compartilhar com vocês, algumas das receitas

05:29 mas, com a criatividade de vocês, achamos que vão criar coisas muito legais. Estes são os seis passos para criar com Codex. Número um: vocês precisam dar contexto ao Codex. Há muito contexto nos documentos, na cabeça de vocês, nas conversas, nos e-mails, no Notion, no Linear e por aí vai. Vocês precisam dar esse contexto ao Codex. É um ingrediente muito importante. E, depois de fazer isso, podem simplesmente construir coisas. E isso já é o passo dois. Para quem usa bastante o Codex aqui na sala, há algumas coisas interessantes

05:59 que o Codex pode fazer, de fato. Talvez vocês percebam que estou no Chrome e vejam esta mensagem legal no topo dizendo que o Codex começou a depurar este navegador. O que está acontecendo em segundo plano é que o Codex está lendo os slides enquanto falo. Assim, vocês podem colaborar com o Codex em tarefas de longa duração e trabalhar nelas ao longo do tempo. Também podem fazer com que algo seja repetível, garantir consistência e realmente criar esses ciclos. E, por fim, queremos levar o Codex a todos os lugares. Se quiserem incorporá-lo ao próprio produto ou às plataformas internas de vocês, isso também é possível. Então, vamos

06:31 entrar direto nos dois primeiros passos para criar com Codex: dar contexto a ele e simplesmente construir. Há alguns dias, na sexta-feira, Charlie, Christine e eu estávamos pensando: “Puxa, é sexta-feira. Sexta à noite”. Mandamos uma mensagem às 16h44. Não tínhamos uma ideia de demonstração para esta oficina. Alguma sugestão? Então, Christine sugeriu: “Ei, vamos criar um tradutor em tempo real”. Charlie sugeriu: “Ei, vamos usar o GPT realtime translate. É um dos nossos modelos mais recentes. É muito bom”. E

07:02 aí podemos até criar um plugin. Nunca fiz um aplicativo para macOS, mas, com o plugin, todas as melhores práticas já estão lá. Talvez você queira copiar e colar, usar o Google, fazer uma busca ou descobrir o que são essas coisas. Então, você vai até o Codex, mas vou fazer algo divertido. Vou colocar meus dois polegares aqui, o direito e o esquerdo, sobre a tecla Command. Vou apertá-la. E pronto: um aplicativo. Todo aquele contexto no Slack, a conversa toda, a sessão de brainstorming, está bem ali. Vamos simplesmente pedir ao Codex: “Ei, pode construir isso?”

07:38 É, acabou o programa de culinária. Não, estou brincando. Vamos deixar o Codex trabalhar nisso. Com uma captura de tela do app, você obtém algo como uma captura de tela, mas todo o texto também fica incorporado. Isso é muito útil porque é onde há bastante contexto pessoal: as conversas, o brainstorming. Você não precisa se repetir. Basta dar isso ao Codex, e ele consegue descobrir o que fazer. Vamos deixar que ele trabalhe nisso um pouco e tentar outra coisa também. Temos o Agents SDK. É open source. É bem legal. E vocês

08:08 como algumas coisas que surgiram nos últimos meses. Então, eu estava pensando: ei, talvez pudéssemos criar um site para descrever brevemente o que há de novo, e vamos usar esse recurso chamado Sites. Então, Sites é algo que lançamos no início do mês, em junho, em prévia para os planos Enterprise e Business. Ele permite criar um site simples e trata basicamente de criar artefatos que você pode compartilhar. Então, aqui trabalhamos um pouco com o Codex e vamos ver o que ele preparou. Vamos abrir. É tudo sobre as novidades do Agents SDK. Temos… ficou bem legal. Temos umas seis mudanças: agentes em sandbox, Codex como ferramenta, busca de ferramentas,

08:40 agentes em tempo real. Também vamos falar disso nos próximos dias. E aí você pode ver que os trechos de código estão aqui. Então, sim, o Sites é bem legal. Você pode criar artefatos para compartilhar com a sua equipe. Esse é outro exemplo de trazer contexto, porque você tem uma base de código. É uma base de código bem grande. Há commits do Git, há um histórico. Há muita coisa. Esse é o contexto, e essa é a etapa um. Você simplesmente vai fornecê-lo ao Codex para que ele crie isso, e essa é a etapa dois. Você pode simplesmente criar coisas. Então, vamos dar uma olhada neste último exemplo. Talvez agora o Charlie esteja na rua, dando uma caminhada com os filhos e o cachorro,

09:10 e esteja pensando: ei, talvez você queira criar alguma coisa. Então, vou deixar o Charlie assumir aqui. Entendi. Legal. O que quero mostrar é o Codex remote. O Gabe mencionou que talvez estivéssemos pelo mundo, certo? Talvez estivéssemos, sabe, na praia. Talvez estivéssemos acampando ou algo assim, mas ainda quiséssemos trabalhar. Ainda quiséssemos continuar criando. O Codex remote é um recurso que agora está disponível no aplicativo móvel ChatGPT e nos permite conectar a um laptop ou servidor remoto e emitir comandos que podem ser executados remotamente. Então, neste caso, digamos que nós

09:42 queiramos visualizar algo sobre o Agents SDK, certo? Pessoalmente, no fim de semana passado, montei vários móveis da IKEA, então estou com isso na cabeça. Que tal tentarmos visualizar como este repo funciona no estilo de um manual da IKEA? Você pode criar uma visualização deste repo no estilo de um manual de instruções da IKEA? Quero entender como todos os elementos básicos se encaixam. Então, isso vai ser enviado pelo meu telefone.

10:15 E aí está. Você pode usar o remote para continuar trabalhando. Você deixa o laptop ligado. O Codex mantém o laptop funcionando enquanto trabalha em segundo plano. Isso significa que você pode se libertar da obrigação de ficar no computador o tempo todo ou de andar por aí com o laptop aberto o tempo todo, algo que tenho feito bastante ultimamente. >> É quase uma ocorrência regular. Todo fim de semana, todo mundo deixa o laptop no quarto, em casa, e sai para tocar na grama,

10:45 mas continua conferindo: ei, Codex, está tudo bem? Tem algo que eu possa fazer para ajudar a desbloquear você? E, de certa forma, todo mundo virou gerente. Vamos ver. Voltemos à tradução ao vivo. Vamos ver o que está acontecendo aqui. Certo, está criando. Fez uma busca na web. Está descobrindo o que está acontecendo. Acho que falamos bem brevemente de outro conceito chamado plugins. Então, vou voltar aos slides. Vamos até lá. Aqui está. Isso.

11:17 Então, plugins são um pacote que reúne skills — que são boas práticas —, prompts externos, talvez práticas personalizadas para a sua equipe, apps que têm a configuração e fornecem conectividade com serviços externos, e servidores MCP, que fornecem as ferramentas necessárias. E, nossa, já apareceu ali. Vamos ignorar isso por enquanto. Então, esses são os plugins. Se você der uma olhada em alguns dos plugins que usamos aqui, basta ir ao app Codex

11:48 e rolar até o topo. Há um botão chamado Plugins. Você vai ver vários plugins. Por exemplo, usamos o plugin Built Mac OS, que inclui várias boas práticas nas skills para usar o AppKit, usar Liquid Glass, assinar e inspecionar o aplicativo compilado. Também usamos o plugin OpenAI developers. Afinal, estamos em 2026. Não vamos acessar a plataforma para desenvolvedores e clicar em “criar API key”, salvá-la em algum lugar e torcer para que você realmente tenha salvado.

12:18 Agora, com o Codex e o plugin, ele pode simplesmente criar a API key para você quando necessário, e isso torna tudo muito fluido, sem interromper esse processo. Esses foram os dois plugins que usamos. Mas há outros que podem ser úteis, como Gmail, Outlook, talvez Microsoft Teams, Slack, e eles fornecem toda a conectividade relevante de que seu agent precisa para trabalhar e trazer contexto para a cozinha. >> Acho que acrescentaria que o app Codex vem com as skills para criar seus próprios plugins. Então,

12:50 ao dar contexto ao app, muitas vezes trabalho em um problema difícil ou em um workflow em que, antes, eu não sabia bem como explicar ao Codex o que fazer. E, quando chego ao fim dessa conversa, muitas vezes digo: “Ei, transforme isso em uma skill ou, melhor ainda, em um plugin, para que, da próxima vez que eu precisar fazer isso, você possa simplesmente acionar o plugin e concluir o trabalho, sem precisarmos passar por todo esse processo de novo.” Então, foi isso que o Codex criou em, digamos, 4 minutos e 2 segundos. Vamos ver se funciona. É uma tradução ao vivo. Então, talvez façamos… sei que há alguns falantes de alemão na

13:21 sala. Vamos escolher alemão e garantir que o áudio também esteja funcionando. Vamos ver o que o Codex consegue fazer. Como eu disse, nunca usei… nunca criei um app para Mac OS. Sou cientista de dados por formação. Não sou muito bom trabalhando com WebRTC e WebSockets. Mas, com o app Codex e os plugins, consigo obter essas boas práticas. Então, vamos fazer isso. Vamos garantir que a entrada esteja configurada para o telefone e que a saída esteja aqui. Certo, dedos cruzados. É um app ao vivo. Ele está…

13:51 pronto. Então, é como… não sabemos que sabor isso vai ter. E dedos realmente cruzados. Ops. Olá. Olá. Teste do microfone. Um, dois, três. Certo, vamos mudar o áudio.

14:28 Sabe que é uma demo de verdade, ao vivo, quando você precisa fazê-la no palco. É real. >> Teste do microfone. Um, dois, três. Está me ouvindo? >> Sim. Obrigado pela dica. Olá. Você morreu? Olá. >> Então, agora estou na conferência AI Engineer

15:00 conferência >> e estou improvisando ao vivo. Eu realmente… na verdade, não está muito preparado. >> Sim, porque, na verdade, agora o alto-falante está… meu microfone. Como foi? >> Certo.

15:31 Uma coisa é que contexto não se resume a boas práticas ou informações externas. Há muito contexto na nossa cabeça. Sempre que você conversa com o Codex, há muitas coisas que ele pode aprender sobre você. É aí que entra a memória. Ela é muito útil. Penso nela como uma forma de trazer contexto ao longo do tempo. Ela fica desativada por padrão, mas, se você acessar o app Codex, pode ativá-la. Por exemplo, digamos que eu use UV; com o tempo, o Codex aprenderia que prefiro usar UV para o gerenciamento de pacotes Python. Mas memórias e contexto não são apenas textuais. Também dizem respeito ao que nós

16:02 fazendo o que está na tela e assim por diante. E temos uma prévia de pesquisa chamada Chronicle para assinantes Pro. Também vale a pena conferir. Com ela, você poderia, por exemplo, estar no GitLab ou no GitHub, olhando seu pipeline, que falhou, e simplesmente perguntar ao Codex: “Por que isso está falhando?”. Ele percebe: “Ah, você estava olhando seus pipelines do GitLab ou do GitHub”, e então tenta descobrir o que aconteceu. Para configurar isso, é bem simples: basta abrir o app do Codex, entrar em Configurações, depois em Personalização e ativar o recurso. Você pode ativar as memórias e também, por assim dizer,

16:35 como recurso de segurança, pode pular a geração de memórias em conversas que envolvam ferramentas, porque às vezes as ferramentas podem retornar informações que você talvez não queira que fiquem armazenadas ao longo do tempo. Então, também vale a pena considerar isso. No momento, estou usando um plano Business, então não tenho o Chronicle, mas, se você estiver no plano Pro, verá o Chronicle como uma opção que também pode ativar aqui. E há esta opção chamada instruções personalizadas. Aqui, é como configurar o agents.mmockdown no diretório inicial. Ela se aplica a todas as conversas. Por exemplo, escrevi aqui: “Responda sempre como um pirata”. Então, na

17:06 mensagem seguinte, o Codex responderia sempre como um pirata. Um exemplo trivial. Esse é o contexto. E, para resumir, vou deixar o Charlie resumir nossos dois primeiros pratos do dia. Recapitulando: na parte um, queremos dar contexto ao Codex. É preciso saber quais ingredientes você está usando de fato na sua receita. Isso inclui trazer conteúdo externo por meio de plugins, certo? Eu, pessoalmente, uso bastante o Slack, o Gmail,

17:36 o Linear. E aí fica muito fácil dizer, por exemplo: “Ei, veja minhas mensagens não lidas de hoje no Slack e crie uma agenda diária para eu consultar quando começar a trabalhar”. Você quer conseguir manter o fluxo ao adicionar seu próprio contexto para as tarefas em que está trabalhando. Eu adoro ditar. Acho que poder simplesmente dizer, como demonstramos aqui no palco: “Aqui está o contexto. Faça isso”, é ótimo. Para mim, a ditagem é um recurso muito subutilizado, porque falamos muito mais rápido do que digitamos, certo? E, hoje em dia, já

18:08 passamos da época em que era preciso garantir que cada palavra estivesse correta ao falar com um modelo de linguagem grande. Você pode simplesmente despejar um monte de divagações suas em forma de transcrição, e ele geralmente vai entender o que precisa fazer, certo? E você pode desenvolver a ideia falando e chegar a um ponto melhor antes de enviá-la ao modelo. Da mesma forma, acho que as capturas de tela de apps são incríveis e também muito subutilizadas. A possibilidade de fazer isso em qualquer app… Acho que não copio mais nada do Slack para colar em outro lugar. Simplesmente faço uma captura de tela da janela do Slack ou do navegador e envio diretamente ao Codex

18:39 e digo para ele descobrir o que fazer, certo? E, sabe, em mais de 90% das vezes, ele consegue descobrir a coisa certa a fazer. Por último, mas não menos importante, temos a personalização. Acho que todo mundo conhece e adora o agents MD. E também há as memórias no app do Codex, por meio do Chronicle. Vale observar que as memórias e o Chronicle consomem um pouco mais do seu orçamento de tokens, mas pode ser uma experiência realmente mágica ter o app entendendo o que deve fazer com base nas conversas que você teve com ele no

19:10 passado. Isso realmente eleva o nível e faz com que ele comece a parecer um verdadeiro colaborador. Há muitas outras coisas, tanto relacionadas a contexto quanto à personalização, no app do Codex. Recomendo muito que vocês confiram. Os pets são um recurso de personalização que todo mundo adora, mas não vamos demonstrar isso aqui hoje. Ainda assim, sim, com certeza, criem seu pet. >> Legal. E, depois de ter todos os ingredientes, você está aqui para construir, e, para realmente ajudar você a construir e distribuir o que criou, Sites é uma

19:41 ótima opção. Na OpenAI, temos usado bastante o Sites. Eu, por exemplo, tenho usado o Sites para resumir eventos. Depois de um evento como o de hoje, eu perguntaria: “Ei, Codex, você pode resumir o que aconteceu hoje e criar um site?”. Aí podemos compartilhá-lo com a equipe e com o restante da organização. Criei um site para ajudar a planejar nosso retiro da equipe, e o Cory, da equipe, criou um site para nos ajudar a planejar, escolher diferentes locais e entender as vantagens e desvantagens. Então, você pode criar artefatos para ajudar na tomada de decisões. Para código especificamente, isso também pode ajudar na revisão de código.

20:13 Então, vamos dar um exemplo rápido com uma tradução ao vivo do que acabamos de criar. Basta digitar /code review e, em seguida, escolher revisar as alterações não confirmadas. Pronto: você iniciou uma tarefa de revisão de código. É um pouco como ter aquele sous-chef, sabe, conferindo tudo. Vocês já viram os filmes, certo? Antes de o chef mandar um prato, ele sempre dá uma provadinha rápida. Acho que é um pouco assim. Com geração de imagens, você pode criar imagens. Vamos ver o que o exemplo que o Charlie iniciou criou. Ah, certo. Usou SVG, mas não ficou tão ruim.

20:44 Não ficou tão ruim. Então, o que você também pode fazer é usar a skill de geração de imagens e pedir ao Codex para preparar algo. Voltaremos a isso daqui a pouco, mas vamos tentar. Vamos usar isso, além de planilhas, documentos e slides. Não vamos falar muito sobre isso hoje, mas você também pode criar esses artefatos. Nas palestras seguintes, ao longo dos próximos dias, nos AI Engineers, o Jason, por exemplo, vai compartilhar mais sobre como está criando esses tipos de entregáveis com o Codex. Esses são os dois primeiros passos: contexto e construção.

21:14 Mas não para por aí. Se você está começando a usar o Codex e ainda é sua primeira vez com agentes de programação, acho que isso é muito útil. Mas tenho quase certeza de que este é o AI Engineers Welfare. Estamos em uma sala cheia de usuários avançados. Então, esperamos compartilhar algo que seja prático e útil para vocês nos próximos quatro passos. O primeiro é o uso do computador. O Codex pode realizar ações; como vocês veem agora, no navegador, ele está depurando alguma coisa. Não vou contar o que está acontecendo. Vamos revelar a surpresa no final, mas ele está trabalhando em segundo plano, pensando em algo. Então, vamos dar

21:45 um exemplo. Eu trabalhava em uma grande organização antes da OpenAI, e nem tudo tinha uma API. Havia muitos softwares corporativos antigos, com diferentes painéis. Você queria baixar dados. Vamos supor, por exemplo, que temos este painel que, de algum modo, busca dados do repositório GitHub do OpenAI Python. Há um seletor de intervalo de datas bem prático. Mas imagine que eu precisasse obter os dados de cada mês, desde o começo do ano até hoje. Eu clicaria em segunda a domingo, segunda a domingo, segunda a domingo, segunda a

22:17 domingo. São muitos botões para clicar. E há diferentes conjuntos de dados que você pode escolher. E se o Codex pudesse me ajudar com isso? A resposta é sim. Então, de novo, vou fazer uma captura com os dois polegares e pronto. Certo, vamos só garantir que estamos em uma conversa nova. Vou perguntar: >> Ei, você pode me ajudar a baixar o número de commits dos últimos sete dias em um arquivo CSV e os dados dos pull requests em JSON, desde o início do mês até

22:47 hoje. É, sim, use algo como o computer use e mande ver. Então, de novo, são duas datas diferentes. Estou pedindo os dados de segunda a domingo, ou dos últimos sete dias, mas também do dia 1º de junho até hoje, que é 29 de junho. E você vai ver: certo, o Codex invocou corretamente a skill computer use e, muito em breve, vai começar a olhar para o aplicativo. Você vê aqui que olhou para o aplicativo e, em breve, nos resumos da cadeia de pensamento, vai ver mais disso. E muito, muito em breve…

23:18 de novo, minhas mãos não estão no teclado e dá para ver que este é o meu cursor. Vou deixá-lo parado aqui, bem ao lado de “Enterprise”. É… você vai ver outro cursor aparecer. >> Lá vai ele. >> E sim, lá está. Está se movendo. Está baixando tudo de novo. Minhas mãos estão aqui. As mãos do Charlie estão aqui. Meu celular está, tipo, desbloqueado. Está bloqueado. E o Codex está baixando todos esses dados sozinho. É meio mágico. É bem mágico da primeira vez que você vê. E vamos deixar o Codex trabalhar em segundo plano. Essa é a beleza do computer use do Codex. Você não precisa disputar o controle da tela com o agent. Pode deixá-lo trabalhar em segundo plano.

23:48 >> Acho que também vale a pena apontar que, no macOS, ele não toma o controle do seu cursor, certo? O Gabe ainda está abrindo o aplicativo. Ele ainda pode usar outra aba. >> Posso rolar o Twitter ou fazer alguma coisa. É. >> Isso. Então, você ainda pode controlar o computador enquanto as coisas estão acontecendo nos aplicativos aos quais o Codex precisa ter acesso. >> Então vamos deixar isso rodando. Mas às vezes nem tudo é um aplicativo nativo. E às vezes você está usando, por exemplo, o Google Drive e criando um formulário de feedback para o workshop de hoje. Sabe, eu pessoalmente…

24:19 acho muito trabalhoso criar um formulário de feedback. Você precisa criar uma pergunta, preencher as diferentes opções, e eu sempre me esqueço de marcá-la como obrigatória, mesmo querendo que seja obrigatória. E é preciso clicar em tantos botões para criar esses formulários de feedback. Então, já deixei as perguntas preparadas aqui. Vamos ver se o Codex pode me ajudar com isso. Vou criar uma nova thread. De novo, o app do Codex é bastante viciante, preciso dizer, por causa da interface de usuário. E vamos dizer: “Ei, você pode criar este…

24:49 formulário de feedback para mim usando as perguntas do Google Docs? Lembre-se de marcar cada pergunta como obrigatória.” E só para dar ao Codex um pouco de… quer dizer, só para deixar as coisas claras para a demonstração: o que estamos usando aqui é a extensão do Chrome, que é um pouco parecida com o computer use. Então, isto aqui é o computer use, mas aqui ele está controlando diretamente um aplicativo específico, que é o Chrome. Vamos iniciar a tarefa e, em breve, veremos outro cursor aparecer. Vou colocar estas duas janelas lado a lado aqui, e…

25:21 você vai ver o Codex pensando na tarefa. Ele percebe: “Ei, as perguntas do formulário já estão prontas.” Mas ainda precisa controlar a aba aberta para de fato criá-lo. E, de novo, como vimos antes, ele vai começar a clicar nos botões. Vamos esperar um pouco para ver o primeiro botão ser clicado e, daqui a pouco, voltamos aos slides. Ah, lá está. Está vendo de novo? Meu cursor está aqui e, depois, você vê os azuis aqui. Então, dá para continuar fazendo outras tarefas. Digamos que talvez eu queira aprender algo sobre o repo do Codex. Estávamos falando de memórias. Então, posso…

25:51 simplesmente perguntar: “Ei, posso configurar o modelo usado para as memórias no Codex? E qual é o nome da configuração que preciso alterar?” Assim, enquanto você continua fazendo outras tarefas, o Codex vai clicando nos botões por você em segundo plano. Vamos iniciar isso. Esse é o computer use, e há diferentes versões dele, como… sabe como seus pratos favoritos talvez tenham sabores diferentes? Vou deixar o Charlie fazer um bom resumo de quais são essas diferentes versões.

26:24 >> Sim, até agora mencionamos algumas maneiras diferentes de o Codex começar a controlar os aplicativos que você usa. É importante entender quando recorrer a cada uma. As três opções que temos atualmente são o computer use, que vocês viram; a extensão do Chrome, que também viram; e o navegador no aplicativo, que acho que não demonstramos. O navegador no aplicativo — vou começar por ele — é um recurso em que o app do Codex tem a capacidade de abrir uma aba do navegador ao lado, como se fosse um editor de código para desktop comum, desses que temos hoje. Mas, além de abrir e renderizar páginas da web…

26:55 o Codex tem integrações muito profundas com esse mecanismo de navegador, mais profundas do que as disponíveis na extensão do Chrome. Por isso, acho que o navegador no aplicativo é ótimo para quando você está criando aplicações web locais e quer fazer muitos testes aprofundados do design de interação e de como a página está sendo renderizada, porque o Codex consegue enxergar muito mais detalhes do layout nesse caso. Mas, voltando às duas opções de que falamos hoje, temos o computer use, certo? Que é ótimo para… bem, qualquer coisa no seu laptop ou no seu…

27:26 computador. Mas ele se destaca mesmo quando você tem aplicativos que não oferecem uma interface programática, certo? É ótimo se for um app da web e você puder fazer engenharia reversa das chamadas de API, mas há muito software para desktop por aí. Também há muito software legado que não expõe facilmente esse tipo de interface a um agent. Então, se você precisa que o Codex controle o aplicativo da mesma forma que uma pessoa faria, o computer use é realmente incrível e meio que não se parece com nada que eu já tenha experimentado. Até hoje, ainda é mágico ver aqueles pequenos cursores voando pela tela. Aí…

27:58 temos a extensão do Chrome, que usa o navegador em que você está conectado. Acho que ela é mais útil quando você precisa transferir o estado ou a autorização para o agent. Provavelmente todos nós já nos deparamos com este problema: queremos criar um agent que use a internet exatamente da mesma forma que nós, e a primeira coisa que acontece é: “Ops, não consigo entrar na sua conta do Gmail.” E, pior ainda, o Google detecta que estou usando um Chromium sem interface gráfica e fica me enviando para um loop infinito de CAPTCHA, certo? A extensão do Chrome permite que o Codex, com a sua permissão, leia…

28:29 determinados sites como se fosse você e use suas credenciais, para que você não precise se preocupar com a etapa de autenticação enquanto está desenvolvendo. Legal. Então, essa foi a parte sobre o Codex executar ações. Agora vamos passar à colaboração em tarefas complexas. >> Esta parte é muito divertida. Acho que muita gente já comentou que o Codex é muito bom em refatorações complexas e tarefas de longa duração. Nos próximos 15 a 20 minutos, quero compartilhar algumas dicas de como você pode…

28:59 trabalhar melhor com o Codex nessas tarefas complexas. Vai ser meio difícil iniciar uma tarefa de longa duração de 20 horas e ficarmos todos aqui sentados, aproveitando o almoço, o jantar e o café da manhã. Então comecei algumas tarefas na noite anterior. São quatro tarefas diferentes, cada uma abordando uma variação um pouco diferente. Esta ainda está rodando há umas 15 horas. Está sendo executada na minha instância remota. >> Dá para ver aqui embaixo que estou executando uma meta. Ela está rodando há 15 horas, 30 minutos e 55 segundos. Então, eu…

29:31 Preciso rolar, rolar, rolar, e aqui estou bem no topo. Então, é um projeto meio que começando do zero. Quero criar um site de perguntas e respostas ao vivo. Ele vai ser para uma sala com umas 400 pessoas. Há uma visualização de administrador, uma visualização de participante e uma visualização de palco. E aí descrevo: “Ah, talvez o administrador possa criar tags com IA. Há recursos de moderação na visualização de palco. Há uma proporção de 16:9. Execute cada aplicação pela nossa API de moderação. Faça a experiência parecer algo que a OpenAI lançaria”, e assim por diante.

30:02 Aqui estou sendo particularmente direto no prompt, para fins de demonstração. Você também poderia simplesmente divagar para o Codex, e ele daria conta do recado. Mas, aqui, para fins de demonstração, sei que as pessoas estão animadas para tirar fotos. Este é um exemplo de como ser claro. Acho que um equívoco comum hoje em dia é as pessoas sempre perguntarem: “A engenharia de prompt importa?”. Desde que as instruções sejam claras, ela ainda importa. Não consigo ler sua mente. O Codex não consegue ler sua mente. Então você só precisa dizer com muita clareza ao Codex o que quer. Mas a engenharia de prompt em que você pensa como: “Ah, preciso usar esta frase mágica”…

30:33 Acho que já não estamos mais nessa situação. Os modelos de raciocínio são realmente inteligentes, e o que importa de verdade é o contexto. Então, na prática, voltamos ao nosso primeiro passo: fornecer o contexto com clareza. A maneira como escrevi esse prompt foi simplesmente conversando com o Codex. Eu estava falando sem parar com ele pelo celular. Só disse: “Ei, Codex, você pode dar uma polida neste prompt para eu poder mostrá-lo no palco?”. Então, sim, ele está construindo isso, e estou usando algumas coisas diferentes, como o Convex. Há um plugin para o Convex que ajuda a fazer interações em tempo real. Vou fazer o deploy no Vercel e, claro, usar o plugin da OpenAI…

31:04 Certo, o formulário de feedback está pronto. Ficou muito bom. E sim, esse é um exemplo. É um projeto começando do zero, mas, como sabem, nem tudo começa do zero. Então, aqui vai outro exemplo, que levou 5 horas e 57 segundos. Este é um repo open source de um criador de formulários, e pensei: “Ei, será que eu poderia reaproveitá-lo e criá-lo internamente no Sites?”. Talvez você não queira comprar um SaaS. A equipe é pequena, com umas sete pessoas. Você só quer ter um criador de formulários interno. Quer usar a autenticação do ChatGPT que vem com esses…

31:34 Sites para garantir que só as pessoas da sua equipe o usem; depois, você deixa o Codex construí-lo. E vou mostrar mais tarde um exemplo de como isso fica. O último exemplo de uma tarefa de longa duração foi este. Levou, vejamos, acho que 7 horas, 1 minuto e 40 segundos. São alguns artigos de pesquisa da época da minha pós-graduação. Foram escritos em Julia e, acho, depois em R. E pensei: “Ei, será que posso escrever um pacote Python com um backend em Rust?”. Então, expliquei de novo ao Codex e dei algumas…

32:05 restrições: não quero usar programação dinâmica; você precisa usar algumas heurísticas. Então, o Codex leu os artigos e fez isso. Esses são os três exemplos de tarefas de longa duração, e quero apresentar alguns exemplos e algumas das melhores práticas relacionadas a elas. Em uma delas, por exemplo, o que disse ao Codex foi isto aqui: você pode definir um objetivo. Na verdade, há uma skill no repo de skills da OpenAI chamada define goal, e eu disse ao Codex: “Ei, não crie um único objetivo; crie uma série de objetivos e coloque-a em um arquivo goals.md”. De novo, é algo bem arbitrário, mas é só…

32:36 uma coleção de arquivos que você pode consultar e inspecionar; depois, crie um dashboard de progresso, progress dashboard.html, para poder voltar e ver o que está acontecendo. Porque, durante essas sete horas, você não sabe muito bem o que está acontecendo. É bom ter alguma maneira de acompanhar o que está acontecendo. E, em vez de deixar uma única thread fazer todo o trabalho, ele está criando novas threads. Então, se formos até… veja, fixei o projeto, mas, se formos até a thread — ou melhor, se formos até o projeto —, vocês vão ver que ele criou várias outras threads. Por exemplo, em diferentes marcos, executou uma revisão de código e, depois…

33:08 também fez uma auditoria dos objetivos. Assim, ele verifica: “Ei, você está no caminho certo? Você falou inicialmente sobre goals.md; está se desviando disso?”. Se estiver, ele dá um toque à thread principal: “Ei, lembre-se disso” ou “Precisamos repensar o plano?”, e assim por diante. Isso foi executado em momentos diferentes. Por isso há marcos distintos, M2, M3A e assim por diante. Há outro exemplo aqui, com o site de perguntas e respostas ao vivo. Ele ainda está em execução. Está rodando em uma sessão remota. É o meu Codex remoto, e quero fazer testes. Então, o que disse ao Codex foi…

33:40 “Ei, você pode iniciar uma thread local na minha máquina e usar a extensão do Chrome para inspecioná-la.” Então, por exemplo, vocês veriam esta thread que chegou; aqui diz “enviado pelo Codex de outra thread”. A thread remota pode se comunicar com a thread local e dizer: “Ei, você precisa fazer operações de clique, usar o navegador e executar testes de QA”. Aí, a thread local fez todos os testes de QA e enviou os resultados de volta para a thread remota. Então, isso é outra coisa que vale a pena considerar para essas tarefas de longa duração. Vamos ver o que mais podemos destacar sobre elas.

34:12 Ah, comunicação. Outra forma de pensar nisso é que você talvez possa simplesmente pedir ao Codex para enviar mensagens pelo Slack. Aqui tenho algumas demonstrações. Eu estava criando um site de perguntas e respostas ao vivo e, sem precisar configurar infraestrutura adicional, você pode simplesmente usar o plugin do Slack e dizer: “Ei, responda a esta thread e me dê um resumo do que foi feito, do que ainda não foi feito e dos possíveis bloqueios”. Porque, às vezes, há bloqueios. Talvez haja um problema de autenticação, uma chave de API que você precisa fornecer ao Codex, e assim por diante. Então, pedi ao Codex para falar comigo. E, ao longo do…

34:43 fim de semana, no domingo, enquanto estava com meus amigos, eu verificava regularmente se havia algo que eu pudesse fazer para ajudar a desbloquear o Codex nessas diferentes tarefas. Vamos mostrar algumas capturas de tela de como foi esse processo. Então, deem uma olhada. Outra funcionalidade interessante do Codex é que, enquanto você tem a thread principal — aqui, na captura de tela, à esquerda está a thread principal e, à direita, você pode iniciar uma thread paralela. Dá para ver aqui que você pode dizer: “Vamos nos concentrar primeiro em entrar com o ChatGPT”.

35:13 Quero dormir em breve. Imagino que você precise que eu faça isso porque, bom, acho que o Codex provavelmente precisa de ajuda com isso. Estou criando uma nova instância no servidor da aplicação, com uma nova interface de usuário, então ele precisa de algumas credenciais e precisa saber onde estão minhas credenciais. E ele diz: “Na verdade, as credenciais já estão aqui”. Então, certo, atualize a thread principal. Você pode usar a thread paralela para atualizar a thread principal. Vamos fazer um exemplo disso ao vivo também. Esta ainda está em execução. Você pode simplesmente digitar /side, e isso cria uma thread paralela. Aí, pode perguntar ao Codex: “O que…”

35:43 … acontecendo. Então talvez a gente só pergunte. Está demorando um pouco, acho que por causa da rede, mas digamos: “Ei, o que está acontecendo? Você pode listar o que fez até agora, talvez na última hora? O que pretende fazer em seguida? Há algo que eu possa fazer para desbloquear você?” A partir daí, quando o agent disser o que vai fazer em seguida, você também consegue perceber se talvez ele esteja no caminho errado. Aí pode dizer ao Codex: “Ei, talvez você não deva fazer isso; deveríamos fazer isto em vez disso.” Então, a thread secundária pode se comunicar com a thread principal, o que é um recurso bem legal. Vale observar isso sobre as threads secundárias.

36:13 Elas são efêmeras. Então, se houver algum contexto que você queira manter no projeto a longo prazo, lembre-se de comunicá-lo à thread principal, porque, depois de um tempo, elas ficam desatualizadas. Aqui está outro exemplo do que estávamos fazendo antes: uma thread secundária conversando com a thread principal. Este exemplo mostra duas threads principais diferentes conversando entre si. Especificamente, à direita — no lado esquerdo — temos o Codex dizendo: “Teste a criação de uma thread local no projeto local do construtor de formulários. Se funcionar, torne-a o local padrão para todas as futuras threads locais, especialmente para o Chrome ou testes de ponta a ponta.”

36:45 Então, novamente, o que está acontecendo aqui é que ele está rodando no serviço remoto, mas não tem acesso ao meu navegador Chrome. Aí, ele enviou uma mensagem ao host local e, a partir dali, conseguiu verificar que o Chrome parece estar instalado. Então, pôde fazer os testes com o Chrome. Assim, você consegue fazer a sessão remota trabalhar com a sessão local. Este foi o teste que ele fez. Enquanto trabalhava na nuvem, localmente no meu laptop, às 3h da manhã, enquanto eu dormia, o Codex abriu o Chrome.

37:17 Ele percorreu o fluxo de criação de formulários e criou um formulário de ponta a ponta. Subagents também são particularmente úteis nessas tarefas longas, porque você quer garantir que o contexto fique bem separado. Os agents se concentram em tarefas diferentes, e aqui está um bom exemplo. Ele estava criando um aplicativo, e eu dei uma olhada. Não necessariamente é uma boa prática, mas simplesmente enviei uma mensagem à thread principal dizendo: “Não está muito bom.” E o Codex respondeu: “É, concordo. Isso está tecnicamente mais limpo, mas ainda é uma interface de chat ruim.”

37:48 E vocês podem notar aqui que ele enviou uma mensagem ao subagent. O subagent já tinha sido iniciado antes, mas então o agent principal mandou uma mensagem para ele. Vocês podem ver essa mensagem aqui. Por exemplo, diz o seguinte: “Atualize sua tarefa de verificação com esta nova captura de tela do usuário e esta instrução.” Então, aí está esse tipo de comunicação entre agents. Depois, foi isso que ele fez. Ele realizou os próprios testes porque enviei uma captura de tela com as mensagens no fim. Eu não queria isso.

38:18 Então, o Codex fez os próprios testes e disse: “Envie o texto visível, tudo bem, em uma frase curta”, e enviou. O próprio Codex fez o controle de qualidade para verificar meu feedback. Este é um exemplo de controle de qualidade ao vivo, em que a thread principal iniciava várias outras threads secundárias — por exemplo, para a auditoria do objetivo e a revisão de código —, além de se comunicar com o Slack. Esta thread aqui, que diz “forneça a URL da thread do Slack”, é aquela em que eu estava compartilhando todas essas atualizações. Uma sessão separada estava cuidando disso.

38:50 Falamos antes sobre o objetivo, e aqui está um painel que o Codex criou para ele. Vocês podem ver que há vários marcos, o que foi concluído, o que está em andamento e o que ainda não começou. O painel também me deu uma ideia do que as diferentes threads estavam fazendo. Por exemplo: “Ah, esta thread é a principal orquestradora. Há uma thread de comunicação. Há uma fazendo o trabalho de UX visual. Há uma gerenciando o protocolo do servidor do aplicativo”, e assim por diante. E ele até organiza tudo em fluxos de trabalho mais conceituais.

39:21 Um fluxo de trabalho para operações, outro para testes e outro para o acabamento da interface. Mas, durante a noite, às vezes o Codex acaba ficando bloqueado. No exemplo com Convex e Vercel, ele disse: “Ah, marquei como bloqueado porque o caminho crítico dependia de autenticação; eu não tinha a identidade necessária para acessar esses serviços externos. Mas fiz tudo o que pude até aquele ponto.” Então, ele indicou que estava bloqueado, e isso apareceu na interface. Aí, selecionei e escolhi “Adicionar ao chat secundário”, e perguntei: “Você pode…

39:51 …por favor, explicar o que está acontecendo? Acabei de acordar e não tinha contexto do que estava acontecendo, mas o Codex estava me dizendo que tinha ficado bloqueado. Então, estou tentando fazer com que o Codex me atualize. Aqui, ele diz para explicar passo a passo o que posso fazer para desbloqueá-lo. Ele me deu várias opções de como fornecer os detalhes da Vercel e da Convex, e então fiz isso. Aqui, selecionei a opção e disse para fazer aquilo. A thread secundária então pediu à thread principal que criasse o fluxo de login da CLI. Vou clicar aqui…

40:21 …e então poderei me autenticar e dar ao Codex — que, novamente, está rodando em uma instância remota — acesso e as permissões necessárias para gerenciar meu projeto na Vercel. No caso da Convex, há uma chave de implantação. Então, pensei: “Ei, não vou colar isso no chat.” Pedi ao Codex que me desse uma forma segura de fazer isso. Ele me forneceu este código bash, que eu podia simplesmente colar e usar para definir a chave no ambiente remoto. Essa foi uma maneira de colaborar com o Codex em uma instância remota, fazer diferentes testes, gerenciar permissões e assim por diante.

40:51 Vamos ver o que eles realmente construíram durante todo esse processo. Vamos olhar o site um do construtor de sites. Aqui está: o construtor interno de formulários. Para recapitular, existe um repo de um construtor de formulários, mas eu queria personalizá-lo para a minha equipe interna. Somos talvez cinco pessoas. Não quero gastar dinheiro com SaaS, então podemos criar nosso próprio construtor de formulários. Ele cria um novo rascunho. Você pode chamá-lo de “Workshop de engenharia de IA”. Olá. E então é só dizer: “Sim, eu…

41:22 …deveria pedir à extensão do Chrome para fazer isso, mas, para fins de demonstração, tudo bem. Você pode visualizar o formulário e depois compartilhá-lo. Pode copiar o link de publicação. Então, haverá um link compartilhável. Você abre o link e outra pessoa da sua equipe pode preencher o formulário. E, como isso está hospedado no Sites, somente as pessoas que têm acesso ao seu workspace do ChatGPT podem acessar esse formulário. Isso é muito legal. Depois, você pode ver todas as respostas e assim por diante. Então, foi isso que fizemos. Para resumir a tarefa complexa, tivemos…

41:55 …três projetos diferentes. Um era de machine learning, em que eu queria reimplementar um pacote com um backend em Rust. Outro era construir do zero, como um projeto greenfield, um site de perguntas e respostas ao vivo. O terceiro era pegar um projeto open source existente e personalizá-lo para as minhas necessidades. O Codex conseguiu concluir essas tarefas. Por trás disso, há alguns conceitos e elementos fundamentais. Vamos voltar aos slides.

42:28 Então, a primeira coisa é a compactação. Vocês viram como o Codex trabalhou por sete horas. Trabalhou por cinco horas. Trabalhou por, acho que agora o outro está em 12 horas. E muitas vezes ele está compactando a context window. Isso não é uma tecnologia nova. Em 19 de novembro, quando lançamos o GPT 5.1 Codex Max — sim, o nome era GPT 5.1 Codex Max —, treinamos o modelo nativamente em múltiplas context windows por meio de um processo chamado compactação. E é isso que faz o Codex ser realmente bom nisso. Alguns exemplos do que as pessoas têm

43:00 dito sobre compactação, para citar: “A OpenAI basicamente resolveu a compactação?” “Praticamente nunca tive problemas com o 5.5 e o Codex em conversas extremamente longas, que abrangem várias compactações.” Essa pessoa do Japão disse que, na verdade, o Codex tem uma compactação forte. Então, mesmo que você faça muita, muita coisa na mesma conversa, é menos provável que ele esqueça. E, nesse sentido, como ele só se lembra das coisas boas, há uma certa eficiência de tokens nisso, suponho. E, como sempre, as pessoas acham isso bem impressionante. Vou deixar o Charlie compartilhar um pouco mais

43:30 sobre algumas primitivas e conceitos específicos que possibilitam isso, como o Goal. >> Sim, obrigado, Gabe. Como vocês viram, temos um Goal que já está rodando há 15 horas. E acho que o Goal é uma dessas primitivas incrivelmente poderosas se você souber usá-la da maneira certa. Uma das coisas mais importantes que digo às pessoas que estão experimentando pela primeira vez é: sejam bem específicos com os critérios que dão ao modelo para ele saber quando terminou. Mais especificamente, esses critérios devem ser tão verificáveis quanto possível.

44:02 Às vezes, sinto que o Goal é meio como um gênio: quando funciona bem, é absurdamente mágico. E, quando não funciona, às vezes sinto que caí numa situação parecida com a da pata do macaco, em que ele fez tecnicamente o que pedi, mas de um jeito muito diferente do que eu esperava. Então, quando você dá uma tarefa, ele sai fazendo e continua se avaliando de acordo com os critérios de sucesso, com os critérios verificáveis que você forneceu. A cada turno, ele verifica: “Ei, isso foi realmente concluído? E, se não, devo continuar?” Há muitos

44:34 casos de uso para projetos muito grandes dessa forma. Como vocês podem ver, Tama usou um SLGO que ficou rodando por 40 horas e reimplementou Doom em código Swift nativo. Se esse é o tipo de coisa que vocês querem experimentar. Mas também há casos como migrações de código, grandes refatorações, loops de tentativas, experimentos e, sabe, jogos ou aplicativos completos feitos de uma só vez com especificações bem detalhadas. Acho que o Goal é incrível.

45:04 Também temos subagents, dos quais vimos uma pequena prévia aqui. Os subagents no Codex são usados por padrão, sem precisar configurá-los. Você pode dizer ao modelo: “Ei, pense em delegar para subagents aqui”, mas também pode personalizá-los. Se você tem um subagent que deve ser seu revisor de código, por exemplo, pode definir um conjunto específico de instruções de desenvolvedor no prompt. Se quiser que esse revisor de código seja um modelo leve para executar rapidamente, ou um modelo muito mais inteligente para ser bem minucioso, pode personalizar isso no próprio arquivo subagents.toml. Você pode dar nomes a eles. Pode dizer: “Vá consultar o revisor de código” ou “Vá consultar o pesquisador de documentação” para implementar. Os subagents podem trabalhar em conjunto com a transferência de uma thread para outra no Codex. A transferência entre threads é bem recente. Acho que lançamos isso na semana passada. Sim. E isso é um nível de abstração ainda mais alto.

45:34 E você pode dar nomes a eles. Pode dizer: “Vá consultar o revisor de código” ou “Vá consultar o pesquisador de documentação” para implementar. Os subagents podem trabalhar em conjunto com a transferência de uma thread para outra no Codex. A transferência entre threads é bem recente. Acho que lançamos isso na semana passada. Sim. E isso é um nível de abstração ainda mais alto.

46:04 E a maneira como penso em equilibrar essas opções é considerar quando a delegação do trabalho precisa ficar visível para você, usuário, e quando precisa ficar visível apenas para o modelo. Começamos com subagents porque acho que é quando o trabalho precisa ficar visível principalmente para o modelo. Se você quer delegar algo a um subcontratado, não me importo muito com o que ele está conversando; só quero garantir que o trabalho volte bem-feito. Os subagents são ótimos para isso, e o modelo sabe muito bem quando deve transferir o trabalho para sub

46:36 agents. Isso também mantém o contexto separado. Acho que, ao contrário de muitas outras ferramentas que trouxemos para o Codex para ajudar a manter as context windows eficientes, os subagents são uma opção em que você mantém o contexto separado e os modelos se comunicam entre si. A transferência entre threads é útil quando você ainda quer acompanhar tudo e poder ver tudo o que está acontecendo. E talvez, além disso, você esteja pensando em separar mentalmente essas duas threads. Um exemplo: no fim de semana, eu estava trabalhando em um jogo

47:07 e tinha uma thread de direção criativa. Eu poderia ter usado um subagent, e teria funcionado bem, mas queria ver todas as coisas diferentes que estavam acontecendo e não queria que o trabalho fosse simplesmente delegado ao desconhecido por meio de subagents. Então, com a thread de direção criativa, abri várias threads: uma para trabalhar na direção de arte, outra na música, outra para dar acabamento às animações e outra para definir as mecânicas do jogo. Eu as estava usando e disse a elas, no arquivo AGENTS.md: “Quando terminarem, consultem a thread de direção criativa”, à qual eu tinha dado bastante contexto adicional

47:38 sobre a aparência e a sensação que eu queria para o jogo. “Consultem a direção criativa e obtenham aprovação antes de considerar a tarefa concluída”, certo? E todas fizeram isso. Foi muito interessante observar as threads trocando mensagens constantemente enquanto trabalhavam no jogo. Não mostramos isso aqui, mas também temos hooks no aplicativo Codex. Se quiser configurar seus próprios hooks, pode fazer isso no arquivo config.toml, no diretório inicial do Codex. Eles são ótimos quando você quer começar a introduzir comportamento determinístico em pontos de verificação específicos do ciclo de vida de desenvolvimento de software ou, simplesmente, do ciclo geral de desenvolvimento. Então, nesses casos, você pode usar hooks para coisas como

48:09 enviar a conversa para um sistema de registro, por exemplo. Você pode querer verificar entradas ou saídas. Acho que há muitos casos de uso de segurança para hooks. Antes de o Codex executar uma ação específica, talvez você queira examinar os prompts e verificar: “Ei, colamos sem querer uma chave de API que vai ser enviada para algum lugar?” Ou

48:40 antes de ele executar uma ação para chamar uma ferramenta: “Ei, essa ferramenta está fora da nossa lista de permissões ou é algo com que precisamos ter cuidado extra ao chamá-la para avaliar se é seguro usá-la?” Também podemos fazer verificações de validação personalizadas quando o turno termina. Hoje em dia, você pode dizer ao AGENTS.md: “Ei, use o linter antes de considerar o trabalho concluído para verificar o que fez.” E ele faz isso muito bem. Mas, se houver coisas um pouco mais sofisticadas ou complexas que você queira fazer para validar a saída, também pode usar hooks para cuidar disso.

49:11 Sabe, acho que, ao construir projetos cada vez mais complexos, algumas das coisas mais importantes são definir, como eu disse, os critérios de verificação ou os critérios de sucesso. Você quer dar ao modelo o máximo de limites possível e deixá-lo preencher as lacunas de acordo com os limites que você definiu. >> Legal. E isso nos leva a trabalhar ao longo do tempo. >> Obrigado, Charlie. Só para falar rapidamente sobre hooks…

49:42 Isso também me passou pela cabeça. Temos o OpenAI agents SDK e, na verdade, há um exemplo rápido de hooks bem ali. Se você acessar as configurações, os hooks estão todos ali. E você verá o hook do repo do agents SDK. Aqui, no final de cada turno, ele executa um script Python para simplesmente organizar o repo. Então, de novo, há algumas dessas tarefas de manutenção que talvez você queira que o modelo de linguagem faça. Você pode executá-las de forma determinística com um hook. E hooks são particularmente úteis em tarefas de longa duração, porque há uma troca envolvida. Você está dando mais autonomia ao agent. Ele vai…

50:13 trabalhar por períodos cada vez mais longos sem sua supervisão ou com uma supervisão mais abstrata. E, nesse sentido, hooks são úteis para estabelecer as proteções. Sobre trabalhar ao longo do tempo, o que estamos tentando mostrar aqui é que agora colaboramos com o Codex e temos algumas das ferramentas avançadas para usuários avançados, como o uso do computador. Como podemos juntar tudo isso e deixar o Codex trabalhar por conta própria? Para fins de demonstração, estamos dando instruções e sendo mais metódicos, mas, na prática, você pode simplesmente deixar o Codex…

50:43 trabalhar nisso, com transferências entre threads. Na prática, eu poderia ter todas as minhas demos em uma única thread e pedir que ela as separasse, organizasse e enviasse para as várias threads, delegando as tarefas a elas. Aqui está um exemplo rápido de automação. Neste momento, dá para ver na minha tela esses orbes azuis. Isso só indica que é um host remoto, e talvez você queira criar um. Temos um plugin legal para o DigitalOcean, que lançamos na semana passada. E aí você viu: é só pedir para fazer isso. Você pode experimentar no chat. Vou…

51:14 …acioná-lo também. O que ele vai fazer é provisionar essa infraestrutura. Isso vai levar algum tempo. E não vou ficar aqui parado esperando que essa infraestrutura seja provisionada. O Codex também não vai ficar esperando. O que ele vai fazer é criar uma automação de heartbeat. Então, vai monitorar o processo e assim por diante. Ele diz que sim. E, no espírito deste programa de culinária, vamos mostrar um exemplo que já foi feito. Então: provisionar uma instância droplet no DigitalOcean. Certo. Sim. E então ele criou a automação…

51:45 aqui. Configurei um heartbeat do Codex para retomar esta tarefa em cerca de 5 minutos. Então, ele vai continuar verificando a cada 5 minutos: está pronto? Está pronto? Está pronto? Está pronto? E, quando estiver pronto, vai dar o próximo passo. Neste caso, ele fez isso. Então, certo, a instância droplet está pronta. E ele até forneceu um link bem útil. Se você clicar nesse link, ele é um deep link para a página de configurações dentro do app do Codex, que configura automaticamente a instância SSH para você. Basta clicar nele e tudo será pré-configurado. Ele sabe onde criar a chave SSH para você, se necessário…

52:17 e assim por diante. Isso é legal, e você pode estender esse recurso a outras partes do ciclo de vida do desenvolvimento de software. Talvez você esteja criando algo que precisa de deploy. Você tem um pipeline acionado por eventos que leva algum tempo para ser executado. Então, pode pedir ao Codex para executar a cada 5 minutos, a cada 10 minutos, e verificar: está pronto? Está pronto? Está pronto? E talvez, dependendo do evento, ele inicie tarefas diferentes e assim por diante. Essa é uma automação de heartbeat. Ela é executada dentro da thread. Mas também podemos criar automações que iniciam novas threads. Um exemplo disso: neste momento, tenho o canal do Slack…

52:50 aberto. Vamos ver se está funcionando. Lembra do app de tradução para macOS? Nos últimos, digamos, 45 minutos, tivemos vários usuários, todos chamados Gabriela, que o usaram. Eles deram bastante feedback sobre o app de tradução. Por exemplo: “A tela parece bem organizada. Dá para saber por onde começar”, então isso é positivo. “Tem como fazer uma verificação rápida do áudio antes que o público veja as legendas?” Então, há bastante feedback. As pessoas estão dando feedback. E eu quero dar a esse…

53:22 feedback a atenção que ele merece. Então, quero criar uma automação para isso. Só vou garantir que estamos… Vou fechar isto, porque não precisamos mais. Aqui, vamos criar uma nova thread. E então vou fazer um appshot. A cada meia hora, você pode olhar os comentários e as sugestões neste canal e responder a eles? Acho que haverá algumas categorias. Uma categoria será de elogios. Outra será…

53:52 uma categoria de relatos de bugs. Outra será de solicitações de recursos, e assim por diante. Vou mandar isso. Ele vai criar uma automação. Eu acabei de enviar, mas percebi: “Ah, espera. Se for uma solicitação de recurso ou uma correção de bug, quero fazer algo diferente.” Então, vou redirecioná-lo. Ah, se for uma correção de bug ou uma solicitação de recurso, você pode também iniciar uma nova thread em uma worktree e realmente resolver isso, abrir um PR, pedir ao Dom para revisar e assim por diante, e…

54:23 pedir ao Dom para aprovar em até 24 horas. Se não aprovar, continue lembrando-o. Então, sim, é um exemplo cômico, mas é aqui que estou tentando… O que eu estava fazendo primeiro era redirecionar o processo. Não preciso esperar o Codex terminar. Posso redirecioná-lo no meio do caminho. O que estou tentando fazer é, além de todo esse feedback e de classificá-lo — se é um relato de bug, se é algo que podemos corrigir —, fazer com que o Codex inicie uma thread. Estamos juntando todas essas ferramentas: a automação, o plugin, que consegue ler o Slack. O…

54:53 fato de uma thread do Codex poder se comunicar com outras threads do Codex e até criar threads em worktrees, e assim por diante. Imagine que você acorda e, como numa fábrica de software, todos os PRs estão prontos. Você pode até adicionar camadas extras de revisão: criar uma versão de teste, enviá-la a alguém para testar e, depois que essa pessoa aprovar, fica tudo pronto. Esse feedback é enviado de volta ao PR, e quem revisa o PR consegue ver tudo de forma holística. Então, sim, dá para encadear muita coisa e criar essa automação. Aí, a cada meia hora, ela faria isso…

55:24 e também encontraria o Dom no canal. Então, estávamos falando antes sobre como temos executado uma automação em segundo plano. Vamos encontrá-la. Aqui está. Mais cedo, enquanto todos chegavam à sala, perguntei ao Codex: “Você pode executar uma automação a cada cinco minutos, fazendo uma captura de tela do que está acontecendo na tela, da apresentação do Google Drive no Google Chrome? Temos apenas 16 minutos, e estou pedindo ao Codex que estime quanto vamos passar do horário.” Então…

55:56 Agora está no checkpoint 13. Está verificando se a demonstração está lá. Está piscando 12, 10, 12 e assim por diante. Então, o Codex está fazendo a própria avaliação de até que ponto vamos terminar a tempo. É um exemplo um pouco meta de como você pode usar automations e encadear outras ferramentas, como, neste caso, a extensão do Chrome. >> Parece que está dizendo que talvez estejamos um pouco atrasados. >> É, bom, as coisas são como são. Então, automations têm sido muito úteis na minha vida pessoal, realmente para conseguir fazer muita coisa. Algumas automations também podem ser úteis. Uma automation que você pode

56:27 executar, talvez toda sexta-feira, é pedir ao Codex para analisar todas as suas conversas e ver se há skills que você poderia melhorar. Há coisas que poderia adicionar ao Markdown dos agents? Ou há skills que poderia simplesmente remover? Talvez skills que você não esteja usando. Uma segunda automation ou abordagem que pode ser útil: talvez você esteja usando automations para elaborar respostas de e-mail. Você pode ter uma automation que redige a resposta, mas pode executar uma segunda automation que a valida de forma cruzada com a resposta final que você enviou, porque ela é a verdade fundamental. Aí, ela atualiza um arquivo Markdown com as

56:57 melhores práticas, dicas e assim por diante. E, com isso, a automation de redação de e-mails pode melhorar com o tempo. Então, vou deixar o Charlie recapitular o que são automations e falar um pouco mais sobre o app server também. Nossa etapa final. Legal. Então, acho que, sim, há dois tipos de automations, certo? Acho que, atualmente, as mais poderosas tendem a ser as automations de heartbeat no app ou dentro de uma conversa. Elas ficam em uma única conversa. São executadas em um timer. Elas continuam rodando repetidamente até terminar. Encontrei

57:28 quase infinitas possibilidades de uso para elas. O Gabe compartilhou algumas da experiência pessoal dele. No meu caso, pessoalmente, sinto que estou me afogando em notificações do Slack, de e-mail e do Linear todos os dias. Então, tenho uma automation que percorre e verifica as atualizações mais recentes de todas as fontes que podem exigir minha atenção. Tenho um vault local do Obsidian, que está sempre atualizando minhas notas diárias. Também está sempre atualizando minhas notas sobre diferentes frentes de trabalho e mantendo bastante contexto ali. Assim, posso simplesmente

57:58 consultar essas informações mais tarde se eu disser: “Ei, o que está acontecendo com a palestra mais recente da AI Engineer World’s Fair? Como está o andamento das demonstrações? E das notas?” Aí, o Codex pode me dizer rapidamente o que aconteceu desde a última vez que verifiquei. Mas as automations também podem ficar em uma nova conversa. Se você as configurar no app Codex, na página “Agendadas”, elas também podem iniciar em uma conversa própria. Isso é útil se você quiser dizer: “Olha, toda semana quero que você faça um resumo do que todos os meus subordinados diretos estão fazendo” ou “quero que você analise todas as métricas desse sistema e depois vamos fazer uma análise juntos uma única vez; então vou arquivar a conversa e não me preocupar mais com isso”. Acho que, por último, mas não menos importante, temos o Codex incorporado em qualquer lugar. Para este caso, quero falar um pouco sobre o protocolo do app server, que é o protocolo central por trás do app Codex, do Codex CLI e da extensão Codex para VS Code. O app server é basicamente o que permite que todos esses serviços se comuniquem com o harness principal do

58:30 Codex, certo? Ele integra todas as chamadas de ferramentas, os plugins e a compactação de contexto que vocês conhecem e apreciam. Construímos muitos dos componentes do ecossistema Codex como open source porque queremos muito incentivar os desenvolvedores a construir onde quer que estejam e para qualquer caso de uso que tenham. Então, se você não sabia, pode incorporar o Codex ao seu produto usando o app server. Acho que isso leva muito do poder do Codex diretamente até você. E permite que seus usuários

59:01 usem a assinatura do ChatGPT e, talvez mais importante, usem o orçamento de tokens do ChatGPT para impulsionar os produtos que vocês estão criando. E, como eu disse, ele tem os mesmos recursos subjacentes que demonstramos: compactação, direcionamento. Os recursos que precisam ser executados no seu computador, como o uso do computador, não estarão disponíveis. Mas tudo o que existe no núcleo do agent harness está no app server. Como demonstração rápida disso: havia uma quarta tarefa de longa duração que iniciei ontem à noite. Na verdade, era para criar

59:33 minha própria interface de usuário para o Codex com o app server, chamada Retroex. Ela está funcionando há algum tempo. Acho que trabalhei com ela em tarefas diferentes. E este é o Retroex, ainda em desenvolvimento. Ele usa o app server. Vamos só… certo, aumentar o zoom e otimizá-lo para o palco. Mas, sim, você pode escolher o modelo: 5.5.4 mini, o esforço de raciocínio. Eu pedi: “Ah, deixe um pouco mais divertido quando você mudar o esforço de raciocínio.” Então, em “baixo”, há um pequeno brilho; em “médio”, a cor muda; em “alto” e “muito alto”, fica tipo “uau”, um pouco mais.

1:00:04 Então, você pode simplesmente dizer “olá”. Vamos ver: o Retroex vai enviar “olá”. Agora, permitir acesso. Ele vai executar e responder “olá”. E, para provar que tudo está sendo executado no mesmo app server, o legal é que, se formos ao app Codex no mesmo projeto, Retroex, você deve vê-lo aqui. Vamos ver.

1:00:34 É, deve aparecer. Acho que podemos mudar as conversas, mas sim, esse é um exemplo de como você pode criar algo. É um exemplo trivial de criação de uma interface de usuário divertida. Mas digamos que você queira criar agents na nuvem, gerenciar diferentes provedores de agents — ou que, em uma grande organização, esteja considerando os diferentes provedores que usa e queira criar uma camada unificada. O app server é uma maneira útil de integrá-lo às suas próprias plataformas. E, como é open source, se você executar git clone openai/codex, pode simplesmente perguntar ao Codex sobre o Codex, por exemplo:

1:01:05 “Ei, pode me contar mais sobre o app server do Codex?” Aí, você pode iniciar a tarefa e começar imediatamente a criar seus próprios aplicativos ou integrações a partir daí. Esse é o app server. Temos uma ótima publicação no blog sobre ele, e também houve outras publicações de engenharia, por exemplo, sobre nosso sandbox do Windows, o primeiro do tipo, e sobre como criamos o loop do agent. Coisas incríveis. É também uma ótima referência: se você é engenheiro de IA, o repo do Codex é uma excelente fonte. E teremos mais palestras sobre isso nos próximos dias. Então, vou deixar o Charlie compartilhar

1:01:35 algumas considerações finais depois de assistirem a todo este programa de culinária. Obrigado, Gabe, e obrigado novamente a todos por estarem aqui. Espero que hoje vocês tenham aprendido um pouco sobre como usar o Codex para aprimorar seus workflows. Algumas considerações finais com as quais quero encerrar são perguntas que faço repetidamente a mim mesmo enquanto tento chegar à fronteira do que o Codex pode fazer. Elas começam de forma bem simples, perguntando: “Já tentei pedir ao Codex para fazer isso?” Acho que uma das coisas que dizemos no escritório, com mais frequência do que nunca, agora…

1:02:07 Algumas considerações finais depois de assistir a todo este programa de culinária. Obrigado, Gabe, e obrigado a todos novamente por estarem aqui. Espero que hoje vocês tenham aprendido um pouco sobre como usar o Codex para elevar o nível dos seus workflows. Algumas considerações finais com que quero encerrar são perguntas que sempre me faço enquanto tento chegar à fronteira do que o Codex pode fazer, certo? Elas começam de forma bem simples, perguntando: já tentei pedir ao Codex para fazer isso? Certo? Acho que uma das coisas que dizemos no escritório com mais frequência do que nunca agora

1:02:38 É, você perguntou ao Codex? Mas acho que, à medida que esse workflow evolui, certo, você quer passar de simplesmente fazer perguntas em turnos individuais para criar loops, certo? Todos já ouvimos falar de maximizar loops. Essa é a novidade. E acho que queremos pensar em como isso funciona, certo? O que o loop precisa verificar a cada turno, certo? À medida que você avança por esse caminho, surgem outras perguntas, como: certo, enquanto ele progride, o que impediu o Codex de chegar à resposta, certo? Faltava algum contexto de que ele precisava? Havia

1:03:09 permissões de que ele precisava? Há maneiras de incorporar esse contexto em ferramentas reutilizáveis, como skills ou plugins, que o Codex possa usar da próxima vez que se deparar com esse problema? Como começo a escalar de um agent para vários? Certo? Pensando no trabalho, há maneiras de fazer o prompt do Codex delegar implicitamente a estrutura das coisas que você está criando? Ou de começar a orquestrar vários threads, fazendo diferentes instâncias do Codex se comunicarem entre si? E, por fim, se você der um passo atrás e perguntar: certo, por que esse processo precisa de um humano? Acho que, como mostramos,

1:03:41 como mostramos, uma coisa que você talvez suponha ao criar com o Codex ou ao usar a API da OpenAI é que um humano precisa acessar a página da plataforma, obter uma API key e colá-la no ambiente, certo? Acho que, como mostramos com o plugin para desenvolvedores, isso já não é mais necessário. O próprio plugin pode buscar a API key e configurá-la localmente para você. E, no fim das contas, ainda queremos humanos no loop onde eles são necessários, mas, para tudo que não precisa disso, como podemos descobrir uma maneira de tirar o humano do processo para eliminar os bloqueios? E como podemos descobrir

1:04:13 como construir a máquina que constrói a máquina, certo? Acho que uma coisa é sentar com um agent de programação e criar uma única peça de software; outra é começar a ampliar a perspectiva e dizer: na verdade, quero construir uma fábrica de software. Quero construir um sistema que então produza peças individuais de software em uma linha de montagem. E muitas dessas coisas são como começo a passar de um pedido individual para algo significativamente maior. >> Legal. E acho que, com isso, estamos…

1:04:46 >> Um resumo de… >> É. É. >> Ótimo. Então, muito obrigado por se juntarem a nós hoje às 9h de uma segunda-feira. Espero que seja uma ótima maneira de começar a AI Engineer World’s Fair. E não é só isso. Amanhã teremos nossa palestra de abertura. Vai ser divertido. Não deixem de conferir. Também teremos Jason, da equipe de experiência do desenvolvedor, falando sobre como ele aproveita ao máximo o Codex. É um bom contraponto à apresentação de hoje, sobre como ele o usa no dia a dia. E depois ele terá um

1:05:17 workshop em que vai mostrar passo a passo como configurar os plugins, fazer capturas do app e assim por diante. Então, a sessão de hoje é mais um panorama rápido. Neste workshop, vamos explicar passo a passo como se preparar para ter sucesso com o Codex. Depois teremos uma sessão sobre o harness, apresentada pela equipe do harness, e sessões sobre voice agents. Charlie também vai falar sobre isso. Dom fará uma sessão sobre criar em cima do harness do Codex e, em seguida, outra explicando os bastidores do

1:05:49 harness do Codex. Na primeira, vocês vão criar em cima dele. Na segunda, vamos explicar o harness. Por último, haverá uma sessão sobre inference de LLM em produção e sobre como fazemos isso na OpenAI. Então, obrigado por se juntarem a nós. Esse é o fim do primeiro segmento do workshop de hoje, em que fizemos um panorama rápido de tudo sobre o Codex. Espero que vocês tenham algo divertido para programar. Então, é hora de construir; para ajudar vocês com isso na sessão de hoje… Primeiro, se ainda não baixaram o app do Codex, baixem.

1:06:19 E, quanto aos créditos, vamos oferecer US$ 100 em créditos do Codex e US$ 100 em créditos de API. Vamos deixar este QR code na tela; peguem os celulares e tirem uma foto. É, eu poderia fazer uma captura do app e dizer: “Certo, enviem isso por e-mail a todos que participaram”, mas não temos os e-mails de vocês. >> Legal. E também queria dizer: por favor, fiquem até o fim da sessão de construção, se puderem. Trouxemos brindes para todo mundo. Então, ao final de duas horas, na saída, vocês podem

1:06:50 pegar um moletom, acho. >> Também queremos ver o que vocês estão criando. É. >> É. Bem, estaremos aqui. Estaremos aqui no público. Também temos funcionários da OpenAI aqui para ajudar vocês a resolver bloqueios ou responder a qualquer pergunta sobre o uso do Codex. >> Obrigado.

Transcrição original

[00:18] All right. >> Good morning, everybody. >> Uh, thanks for bearing with us. There was a long line outside, so we just wanted to make sure everybody could get in and get a seat. Um, thank you so much for being here. This is the cooking with Codeex workshop. We’re so excited to have you. Uh, my name is Charlie. I’m on the developer experience team at OpenAI. >> And my name is Gabriel, also on the developer experience team, flying in from Singapore. Nice to be here.

[00:48] Uh so before we kind of dive into the nuts and bolts, you know, I wanted to do a quick review of what have folks been cooking with Codeex. >> It is a cooking show. >> Uh these you might have seen some of these tweets. Um but you know there’s a real range of stuff that people have been making. Some of it pretty pretty incredible. Uh I think this one uh a session with nearly 300 sub aents. Has anybody beat

[01:19] that in a given session? No. I think I think Dom might have, but we’ll see. Um Codeex working on a synth plugin uh for Ableton. Um really really cool stuff. I think on our team um we have a team member Brent who’s doing at this point video editing with codeex driving premiere right which is not what you would normally expect to see from from a coding app.

[01:51] Uh playable you know games I think like gaming to me is is really a place where where the models and the app can shine. the ability to go and check your work um for the game as it’s done or to hand off between different threads and you know manage audio versus art design versus game mechanics versus you know difficulty balancing. Um I think I think the different threads and sub aents are amazing here. And last but not least um you know building a self-driving golf cart with

[02:24] codeex uh which I think is just absolutely incredible. Um, it kind of makes me wish I was back at school so I could be hacking on uh stuff in my nights and weekends again. But where have people been cooking? I think that’s pretty fun. So you we sort of see it everywhere. Everyone’s codex mixing everywhere, anywhere, all the time. I mean, literally in between meetings, you’ve seen people like holding their laptops everywhere, keeping it open. It’s become

[02:54] a meme at this point. Fortunately, we now have Codex on mobile. So, this uh gentleman in Japan was able to like bounce between ideas in bouncing between cities while on the bullet train or while walking a dog. And you don’t just ha you don’t necessarily have to use Codex on the Codex app or use it within like the chat GPD app. You can just put Codex anywhere with it being open source there being the app server which we’ll talk about briefly at the end. You can put it here. So this Daniel for example put it into

[03:26] three e- in devices. So you really can codex max anywhere. So if it’s your first time sort of using codeex uh do check it out. Do give it a download. What’s really nice is that if you have existing configuration for other agents you can just bring it in and just get started really cook quick. And today we want to through the cooking show help you cook really fast and cook something really cool. So there’s a quick agenda. We’re going to talk about what’s new and then the real pun intended meat of the session is the six

[03:57] ways to cook with codeex. Some closing thoughts and then the second hour of the session we’ll have like a mini hackathon where we’re going to have live cooking right in this room and we’ll be like walking around helping to be your sue chef to your main chef. So what’s new? What’s fresh from the oven? A few a bunch of things I think fundamentally to just really help you give context to Codex really fast. There was record and replay. You spend time maybe describing, oh, you got to press that button, you got to press this button. Maybe just show codeexc by doing it. It builds on

[04:28] sort of our technology with computer use and so forth. Tread handoff really fun. You can sort of push things from the cloud to the remote to your local and vice versa. We’ll demonstrate some of that. And the mobile app is now in generally available. So now there’s like sort of onetoone device pairing, a much more secure way of working with codecs. So, it’s it’s been 2026. This slide barely summarizes everything we’ve shipped and we’re only 50% literally 50% of the year. Some things have been

[04:59] really fun. The plugins, computer use, multimodality, being able to use Codex on the mobile, app shots, that’s a personal favorite. These things really make Codex and the Codex app really fun to use. And we’ll be talking about some of these. They are all sort of key ingredients. So, that’s cooking a Codex. Uh we wanted to like start with this quote where it’s from our favorite movie Ratatouille. Anyone can cook but only the fearless can be great. And today with the sort of ingredients we’re going to share with you some of the recipes

[05:29] but with your ingenuity we think you’re going to cook some really fun stuff. And these are the six steps to cooking with CEX. Number one you got to give Codex your context. There’s a lot of context in like your documents, in your brain, in your conversations, in your email, in notion, linear, so forth. You got to give codeex that context. That’s a really important ingredient. And then once you have it, you can literally just build things. And that’s already just a step two. For the power users in the room, there’s some interesting stuff

[05:59] where Codex can actually take action. You might notice right now like on I’m on Chrome and you just see this thing nice thing at the top saying Codex started debugging this browser. what’s happening in background is actually codex is reading the slides as I’m speaking and then you can sort of collaborate with codex on longrunning tasks and you want to work over time where you want to put this make it repeatable sort of ensure consistency and really like build those loops and finally we want to bring codex everywhere if you want to embed it in your own product or in your own internal platforms that’s also possible so let’s

[06:31] just dive right in for the first two steps cooking a codeex where you give it your context and you can just build So, a few days ago, like on Friday, uh Charlie and Christine and myself, we were thinking, “Yikes, it’s it’s Friday. It’s Friday night.” We sent it at 4 4:44 p.m. We don’t have a demo idea for this workshop. Uh we had any suggestions. Then Christine suggested, “Hey, let’s build a real-time translator.” Charlie uh suggested, “Hey, let’s use GPT realtime translate. It’s one of our latest models. It’s really good.” And

[07:02] then we can even have a plugin. I’ve never built a Mac OS app, but with the plug-in, all the best practices are there. So maybe you would like copy paste, you would like Google or search or what these things are. Then you go to codeex, but I’m going to do something fun. So I’m going to take my two thumbs over here, my my right thumb and my left thumb. I’m going to put it on the command key. I’m just going to press it. And bam, that’s a app. All that context on Slack, all the conversation, that brainstorming is just right there. And let’s just ask Codex. Hey, can you just build this?

[07:38] Yeah, cooking show is over. No, I’m kidding. And we’re going to let Codex cook on that. And what happens with a appshot is that when you take a it’s like a screenshot, but all the text is embedded as well. And it’s very nice because that’s where you have a lot of personal context, the conversations, there’s brainstorming, you don’t have to like repeat yourself. You just give codecs and you can like just figure it out. So, we’re going to look let let that work on it for a bit and we’re going to try something else as well. So, we have the agents SDK. It’s open source. It’s pretty nice. And uh you got

[08:08] like some things that have come up in the recent months. So, I was thinking, hey, maybe we could build like a website to sort of just briefly describe what’s new and we’re going to use this thing called sites. So, sites is something that we launched earlier in the month in June for in preview for enterprise and business plans. It lets you sort of create a simple site and it’s really about just creating artifacts you can share. So here we sort I worked with Codex for a bit and let’s just see what Codex cooked here. So we’re going to open it up and it’s all what’s new with the agents SDK. You have the it’s pretty nice. You have like six changes, sandbox agents, codex as a tool, tool search,

[08:40] realtimes agents. We’ll be talking about that in a in the next few days as well. And then you can see like the code snippets are here. So yeah, it’s pretty nice with sites. You can then create artifacts that you can share with your team. So that’s another example of bringing context because you have a code base. It’s a really large codebase. There’s git commits, there’s history to it. is a lot of things. That’s that context and that’s step one. You’re just going to give it to Codex to build it and that’s step two. You can just build things. So let’s give in that last last example here. Maybe like now we’re Charlie’s out on the streets think uh taking a walk with his kids, his dog,

[09:10] and he’s wondering, hey, maybe you wanted to build something. So I’ll let Charlie uh take the stage here. Got it. Cool. Uh so what I want to show you is Codex remote. Gabe mentioned we might be out in the world, right? We might be, you know, on the beach. we might be um camping something but we still want to get work done. We still want to keep cooking. So Codex remote is a feature that’s now available in chatbt a mobile app and allows us to connect to a you know laptop or remote server and issue commands that can be executed uh remotely. So in this case let’s say we

[09:42] want to visualize something about this agents SDK right um for me personally you know last weekend I was building a bunch of IKEA furniture so that’s kind of on the brain. Uh, why don’t we try to visualize how this repo works in the style of an IKEA manual? Can you create a visualization of this repository in the style of an IKEA instruction manual? Uh, I want to understand how all of the primitives fit together. So, this is going to send for my phone.

[10:15] And here we go. So, you can use remote to keep working. Uh, you know, you leave your laptop on. Codex will keep the the laptop open while it’s cooking in the background. Um, and it means that, you know, you can sort of free yourself from having to be at the computer all the time or having to walk around with your laptop open all the time, which is 100% a thing that I’ve been doing lately. >> It’s almost like a regular occurrence. Every weekend, everyone’s like leaving their laptop in the room at home and just like walking out touching grass,

[10:45] you know, still checking in. Hey Codex, is everything okay? Is there anything I can do to help unblock you? And in a sense, everyone’s become a manager. So, let’s see. Go back to the live translation. We’ll see what’s going on over here. All right, it’s building. It’s did some web search. It’s finding out what’s going on. So, I think we’ve sort of covered very briefly uh to another concept called plugins. So, just going to the slides. So, we go there. Here it is. Yeah.

[11:17] So plugins are a bundle that sort of bundle together skills which are best practices, external prompts, uh maybe practices that are custom to your team, apps which have the configuration and provide the connectivity to external services and MCP servers which provide the tools that are necessary and wow already sort of popped it up there. We’ll just skip that in a bit. So that’s plugins. And if you just take a look at some of the plugins we were using here. So if you just go over to the Codex app

[11:48] and you just scroll right up here, there’s this button called plugins. And you’ll see a bunch of plugins. So for example, what we were using was the built Mac OS plugin which has a bunch of best practices uh in terms of the skills for how to use AppKit, how to use liquid glass, how to sign and inspect the built application. And we were also actually using the OpenAI developers plugin. So it’s 2026. Um we’re not going to go to the developer platform and click uh create API key, save it somewhere, pray that you actually saved it somewhere.

[12:18] Now with Codex and the plugin, it can just directly create the API key for you as necessary and it really keeps things really smooth as you it doesn’t really interrupt you in that flow. So those were the sort of two plugins we were using. But there are other plugins that may be relevant like say uh Gmail, Outlook, uh maybe use Microsoft Teams, use Slack and that provides all the relevant connectivity you need for your agent to work to bring context into the kitchen. >> I think I think I would add to that, you know, the Codex app um comes with the skills to build your own plugins. So in

[12:50] giving the app context, a lot of times I will work through a difficult problem or a workflow that you know I’m not sure how I wasn’t sure before how to tell Codeex how to do it. And when I get to the end of that conversation, I will often say, “Hey, make this a skill or even better make this a plugin so that to next time I need to do this, you can just invoke the plugin and get the job done and we don’t have to step through all of this work again.” So this is what Codex built in say 4 minutes and 2 seconds. Let’s see if it works. So it’s a live translation. So let’s let’s maybe do like I I understand there’s some German speakers in the

[13:21] room. So let’s go let’s do German and let’s just make sure the audio is working as well. And let’s see what Codex can do. So again, I’ve never used built a Mac OS app. I’m a data scientist by training. Not very not the best at like sort of working with like web RTC websockets. But with the Codex app and the plugins, I’m able to get that sort of best practices through the through that. So let’s just do that. Make sure the input change to the phone, the output is here. And all right, fingers crossed. This is a live app. It’s it’s

[13:51] built. So this is like we don’t know how this is going to taste. And fingers really fingers crossed. Oops. Hello there. Hello. Mic test. One, two, three. Okay, let’s change the audio.

[14:28] You know it’s a real demo, live demo when you got to do it on stage. It’s real. >> Mic test. One, two, three. Are you there? >> Yeah. Thanks for the tip. Hello. Are you dead? Hello. >> So, right now I’m at the AI engineer conference

[15:00] conference >> and I’m like winging this live. I have really It’s actually not the most set up. >> Yeah, cuz like actually right now the speakers my mic. How was that? >> All right.

[15:31] So, one thing is that context is not just about best practices or external information. There’s a lot of context in our heads. Whenever you talk to Codex, there’s a lot of a lot of things that Codex can learn about you. And that’s where memory comes in. It’s really useful. It’s I think about it as bringing context over time. So it is off by default but if you go to Codex app you can turn it on and let’s say like for example I use UV and then Codex would learn that over time. I prefer using UV for Python package management. But memories and context isn’t just textural. It’s also about what we’re

[16:02] doing what’s on screen and so forth. And we have a research preview called Chronicle for pro subscribers. Also worth checking out. And with that you could literally for example be on the GitLab GitHub looking at your pipeline it failed and you just ask Codex why is this failing and it sees ah you were looking at your GitLab your GitHub pipelines and then it’ll sort of figure it out. So to sort of set that up it’s quite straightforward you can just go to the Codex app you go into settings and then it’s called personalization and you can enable it. So you can enable memories and also sort of given the um

[16:35] as a safety feature you can also sort of skip uh generating memories in chats that involve tools because sometimes the tools might return information that you might not want persisted over time. So that’s also worth considering. Right now I’m using a business plan so that isn’t chronicle but if you’re on a pro plan you would see chronicle as option to enable here as well. And then there’s this thing called custom instructions. So here you can sort of en it’s like setting the agents.mmockdown in the home directory. It applies to all conversations. So for example, I said here always reply like a pirate. Then in

[17:06] the subsequent commentary, Codex would always reply like a pirate. A trivial example. So that’s context. And to summarize, I’ll let Charlie uh sort of summarize our first two dishes of the day. So to recap, uh part one, right, we want to give codecs context. Um you need to know which ingredients you’re actually using for your recipe. Um that includes bringing in external content via plugins, right? Me personally, I am a pretty heavy user of Slack, Gmail,

[17:36] linear. Um and then it makes it really easy to just say like, hey, go look at my, you know, unread Slack messages for today and create a daily agenda for me to to think about when I get into work. Um, you want to be able to like keep the flow when you’re adding your own individual context for the tasks that you’re working on. Uh, I love dictation. I think just being able to, you know, as we’ve been demoing up here on stage, say, “Here’s the context. Um, go do it.” I think dictation to me is a really underutilized feature because we speak so much faster than we can type, right? And these days, you know, we’re we’re

[18:08] beyond the the era where you have to make sure every single word is correct when talking to a large language model. you can just give it reams and reams of your own rambling uh in transcription form and it’ll generally figure out the right thing to do, right? And you’re able to actually talk through the idea and and get to a better space by the time you send it to the model. Uh likewise, appshots I think are are incredible and also very heavily underused. Um the ability to just like from any app I think I I don’t copy and paste, you know, anything from Slack anymore. I just appshot my my Slack

[18:39] window or I just appshot my browser and send it directly into codeex um and tell it go figure it out, right? And you know 90 plus% of the time it can figure out the right thing to do. Last but not least, we’ve got personalization. Um I think you know agents MD which hopefully folks know and love. Uh and then memories as well uh in the Codex app via Chronicle. Um, worth noting, I think memories, uh, and Chronicle will use up a little bit more of your token budget, but, uh, it can be a really magical experience to have the app just kind of understand what it should be doing based on conversations you’ve had it in the

[19:10] past. It really levels it up and makes it starts to feel like a true collaborator. Um, there’s a ton more stuff, I think, both in like context and personalization in the Codex app. Strongly recommend you go check it out. Um, pets is like a universally beloved uh, personalization feature which we’re not really going to showcase here today, but um, is would would yeah, definitely go make your pet. >> Cool. And once you have all the ingredients, it’s you you’re here to build and to really help you build and you want to distribute it. Sites is a

[19:41] great thing. At OpenAI, we’ve been using sites extensively. Uh I for example have been using sites to summarize like an event like an event after like like after an event like today’s I would ask hey Codex can you summarize what happened today create a site then we can share it with the team the rest of the organization I create a site to sort of uh we we were planning offsite and then Cory Cory on the team created a site to help us plan choose different locations understand the trade-offs so you can create artifacts to help you make decisions specific for code you can even you can also it helps with code review

[20:13] so let’s just give a quick example with a live translate what we had just built. You just do slashcode review and then you can review against uncommitted changes and then voila, you’re firing off a code review task. It’s a bit like having that uh you know sue chef like double check everything. You know, you’ve seen the movies right before the chef like sends out a dish, they always do a quick taste test. I think that’s a bit like that. Image gen where you can create images. And let’s see what the example Charlie kicked off created. Oh, okay. It used SVG but not too bad.

[20:44] Not too bad. So then what you could also do is use the image gen skill and ask codeex to sort of cook it. So we’ll come back to that in a bit but let’s try that. Let’s use this and spreadsheets document and slides. We won’t be talking much about it today but you can sort of build these artifacts as well. And in the subsequent talks in the rest of the days and the AI engineers uh Jason for example will be sharing more about how he’s sort of building with codecs for sort of these uh deliverables. So those are the first two steps,

[21:14] context and building. But it doesn’t just stop there. So if you’re sort of new to Codex, it’s your first time still using coding agents. I think that’s really helpful. But I’m I’m pretty sure this AI engineers welfare. We’re in a room full of power users. So for the next four steps, we hope we’re going to share something that’s practically useful for you. And the first one is computer use. So Codex can sort of take actions like as you see right now in the browser, Codex is debugging something. I won’t tell you what’s happening. I will we’ll reveal the surprise at the end but sort of working in the background thinking about something. So let’s give

[21:45] an example. So I I used to work in a large organization before open AAI and not everything had an API. You had a lot of enterprise software that had like they were legacy. There were different dashboards. You wanted to download data. So let’s say for example we have this dashboard that somehow pulls data from the OpenAI Python GitHub repo. There’s this nice date range picker. But imagine I had to get data for every month from the start of the year the year to today I’ll press Monday to Sunday, Monday to Sunday, Monday to Sunday, Monday to

[22:17] Sunday. It’s a lot of buttons you have to press. Then there are different data sets you could choose. So what if Codex could help me with that? And the answer is yes. So again, I’m going to take a shot my two thumbs and then just take it. Okay, let’s just make sure we’re in a new conversation. I’ll just ask, >> hey, um, can you help me download the, uh, number of commits for the last seven days as a CSV and the number of pull requests, the pull request data as a JSON from the start of the month to

[22:47] today. Uh, yeah, use like computer use and go for it. So again, it’s like two different dates. I’m asking it for the like Monday to Sunday or the last seven dates days but also from like the 1st of June to today which is the 29th of June and you would see okay Codex has correctly invoked the computer use skill and very soon it’s going to like start looking at the application um you see here looked at application and very soon in the chain of thought summaries you would see more of it and very very soon

[23:18] again my hands are not on the keyboard and you can see this is my cursor I’m just going to like park it over here right next to enterprise is uh you would see another cursor pop up. >> There it goes. >> And yeah, there it is. It’s moving. It’s downloading it again. My hands are here. Charlie’s hands are here. My phone is like unlock. It’s locked. And Codex is downloading all this data by itself. It’s a bit like a mag. It’s like pretty magical the first time you see it. And that’s we’re going to let Codex work in the background. And that’s the beauty of computer use of Codeex. You don’t have to wrestle with the agent for control of your screen. You can let it work in the background.

[23:48] >> I I think it’s also worth pointing out that on Mac OS, you know, it doesn’t uh steal your cursor, right? Like Gabe still opening the app. He can still use a different tab. >> I can go scroll on Twitter and something. Yeah. >> Yeah. And so you can still drive your computer while things are just happening, you know, in the apps that Codex needs access to. >> So we’re going to let that work. But sometimes not everything is like a native application. And there’s some sometimes you’re like maybe using Google Drive, you’re creating a feedback form like for today’s workshop, you know, I mean feedback forms are I personally

[24:19] find it very cumbersome to create a feedback form. you need to like uh create a question, you need to like fill in the different options and I always forget to mark it as mandatory even though I want it to be mandatory and it’s you press so many buttons with creating these feedback forms. So I already have the questions drafted here and let’s see if Codex can help me with that. So I just create a new thread. So again, appshot, it’s quite addictive, I must say, the user interface. And we just say, hey, um, can you create these uh this

[24:49] feedback form for me using the questions in the Google docs? Um, remember to make mark each question as mandatory. And just to give codeex a bit of a I mean just to make things for exposition purposes, what we’re using here is the Chrome extension, which is slightly similar to computer use. So that’s this is computer use, but here it’s directly controlling a specific application which is Chrome. So we’re going to fire that off and we’re going to see very soon another cursor come up. So I’m going to put this two side by side over here and

[25:21] you would see codeex thinking about the task. It realizes, hey, I have the question form questions already. Then it still needs to drive the live tab to actually create it. And again, like what we saw earlier, it’s going to sort of start pressing buttons. So let’s just wait for a bit to see the first button get pressed and then we’ll swap back to the slides in a bit. So ah there it is. You see it again. My cursor is here and then you see the blue ones here. So you can continue to go do different tasks. Let’s say like maybe I’m interested to learn something about the codeex repo. We were talking about memories. So I can

[25:51] just like ask hey um can I configure the model that’s used for memories in codecs and what’s the config uh term I need to change? So you see while you’re continuing to do other tasks, codeex in the background is sort of doing the button pressing for you and we’ll fire that off. So that’s computer use and there are like different flavors of it like you know how maybe you know your favorite dishes come in different flavors and I’ll let Charlie just really give a nice summary of what where the different flavors are.

[26:24] >> Yeah, at this point there’s there’s like mentioned a few different ways that Codex can start controlling the applications that you’re using. Um, and it’s kind of important to understand, you know, when you should reach for each one. The three that we currently have today are computer use, which you saw, uh, the Chrome extension, which you also saw, uh, and the inapp browser, which I think we did not demo. Um, the inapp browser, why don’t I start there, is a feature where in the Codex app, you know, it has it the ability to open, uh, a browser tab on the side just like you would kind of a normal um, you know, desktop coding editor these days. Uh but in addition to just opening and

[26:55] rendering web pages, uh Codex has really deep hooks into that browser engine uh deeper than it has at the Chrome extension. Um and so as a result, uh I think the inapp browser is really great for when you’re building local web applications and you want to do a lot of deep testing um on the interaction design on how it’s rendering because Codex can see much further into the uh into the the layout at that point. But going back to the two that we talked about today, um we have computer use, right? Which is great for um I mean anything on your on your laptop or your

[27:26] computer. Um but it really shines when you have applications that otherwise don’t have a programmatic interface to them, right? Um it’s great if it’s a web app and you can reverse engineer the API calls, but you know there’s a lot of desktop software out there. There’s a lot of legacy software out there which doesn’t easily expose that kind of interface to an agent. And so if you just need C codeex to drive the app in the same way that you a human being would computer use is really incredible and kind of unlike anything else that that I’ve tried it it to this day it’s still just so magical to watch those little cursors fly around. Um then

[27:58] there’s the Chrome extension uh which is your sign-in browser and I think that is the most useful for when you need to hand off um state or authorization to the agent. So, I think we’ve all, you know, probably run into the issue where we want to build an agent to go and, you know, use the worldwide web the exact same way that we do, and the first thing that it immediately runs into is like, “Oops, I can’t log into your Gmail account.” Um, and worse than that, like Google has detected I’m on a headless Chromium, and it’s just sending me this infinite capture loop, right? Uh, and so the Chrome extension allows codeex with your permission to go and read from

[28:29] certain websites as you uh and borrow your credentials so that you don’t have to worry about the authentication step as you’re building. Cool. Um, so that’s Codex take action and then next we’re going to move on to collaborating on complex tasks. >> So this one’s a really fun one. So I think people have really talked about how Codex is really good at like complex refactors, longunning tasks, and in the sort of next 15 to 20 minutes, I want to share some tips on how you can sort of

[28:59] work best with codecs on these complex tasks. So, it’s going to be a bit hard to like kick off a 20our longrunning task and we’re all just going to sit here, enjoy lunch, dinner, and breakfast. So, I started off some tasks the night before, and they’re like four different tasks, each covering a slightly different flavor. So, this one, it’s still running for like 15 hours. It’s running on my remote uh uh instance. >> You can see at the bottom here, I’m running a goal. It’s been running for 15 hours, 30 minutes, and 55 seconds. So, I

[29:31] got to scroll, scroll, scroll, and here I am right at the top. So, it’s a bit of like a green field project. I want to build a live Q&A site. Uh, it’s going to be in a room for like 400 people. There’s like a admin view. There’s a participant view. There is a onstage view. And then like I describe, oh, maybe the admin can do like AI generated tags. There’s a moderation features on the stage view. There’s a 16x9 uh run every application through our moderation API. make the experience feel like something OpenAI would launch so on and

[30:02] so forth. Uh here I’m being particularly prosaic in the prompt for exposition purposes. You could just ramble to codeex as well and it’ll get it’ll get the job done. But here just like exposition purposes, I know people are excited to take photos. This is like an example of how you’re being clear. I think one misconception these days is like people always ask does prompt engineering matter? In so far as the instructions are clear, it still matters. Like I can’t read your mind. Codex can’t read your mind. So you just need to tell Codex very clearly what you want. But it’s prompt engineering where

[30:33] you see as oh I got to use this magic phrase. I don’t think we’re in that state anymore. Reasoning models are really intelligent and they sort of the real thing is about context. So actually goes back to our first step giving context clearly. So how I wrote this prompt was I was just talking to Codex. I was I was yapping it on yapping to it on the phone. I just hey Codex can like polish this prompt so I can show it on stage. So yeah it’s building this thing and I’m using like a few different things like convex. There’s a a plugin for convex that helps to do uh real-time interactions going to deploy in a cell and of course the open AAI uh plugin and

[31:04] all right the feedback form is done. So that very nicely came up and yeah that’s one example so it’s like a green field project but you know not everything is like you’re going to start from scratch. So here’s another example that ran for uh 5 hours and 57 seconds. So here’s an open source repo for a form builder and I wondered, hey, could I like repurpose this and build it internally in sites? So maybe you don’t want to buy SAS. It’s a small team of like seven of you. You want to just have a internal form builder. You want to use the chat GPT authentication that comes with these

[31:34] sites to sort of ensure that only people within your team use it and then you got to let Codex sort of build it. And I I will show you an example what that looks like later. Then the last example of a long-running task that was running. This one ran for uh let’s see I think 7 hours 1 minute and 40 seconds. So it’s like some uh gradu uh research papers from my graduate school days. Uh it was like written in like Julia then I think like an R and I was like hey can I like write a Python package with a Russ backend and then I told Codex again I gave some

[32:05] constraints I don’t want to use dynamic programming you got to use like some heruristics and then codex read the papers and did it. So those are the three longrunning tasks and I want to like give some examples and some of the best practices that come with it. So in one of these for example what I told Codex was this over here you can define a goal. So there is actually a skill in the openi skills repo called define goal and I told codex hey don’t create one goal create a series of goals and put it in a goals.mmuckdown file. Again, it’s just

[32:36] very arbitrary, but it’s just a collection of files that you sort of see and you can can inspect it and then create a dashboard, progress dashboard.html, so you can go back to it and see what’s going on. Because in this seven hours, you don’t really know what’s going on. You want to have some some way to like see what’s happening. And rather than having this one thread do all the work, it’s actually spawning new threads. So, if we go to the see, I’ve pinned the project, but if we go to the the thread, but if we go to the project, you’ll see it’s it’s spun many other threads. So for example at different milestones it ran code review and then

[33:08] it also ran a goal audit. So it’s seeing like hey are you on track there’s this initial thing you talked about like goals mount down are you deviating from it? If it is then it will nudge back the main thread. Hey remember this or do we need to rethink the plan and so forth. So it ran at different times. That’s why there’s like different milestones M2 M3A and so forth. Uh there’s another example here with like the live Q&A site. Uh this is still running. So this is running on a remote session. So it’s like my gaps remote and I want to like do testing. So what I told Codex is that

[33:40] hey you can spawn a local thread on my machine and use the Chrome extension to then inspect it. So you would see for example this is a thread that came and you would see it says here send by codeex from another thread. So the remote thread can communicate with the local thread and says hey you got to do click ops you got to do browser you got to do QA testing. Then the local thread did all the QA testing and it send the results back to the remote thread. So that’s another thing that’s uh worth uh thinking about for these longunning tasks. And let’s see what else we can call out here in the long running tasks.

[34:12] Ah communication. So one other way of thinking about this is that maybe you could just ask codeex to send you Slack messages. So here I have a few demos. So, I was building a live Q&A site and without having to set up additional infrastructure, you can just use the Slack plugin and just say, “Hey, um, reply to this thread and give me like a summary of what’s done, what’s not yet done, and are there any blockers?” Because sometimes there are blockers. Maybe there’s like a authentication issue, there’s an API key that you need to give to Codeex and so forth. So, I asked Codex to speak to me. And over the

[34:43] weekend, like on Sunday while I was out with my friends, I was just regularly checking, is there anything I can help unblock Codex for these different tasks? Um let’s just give some screenshots of what that process looked like. So just take a look at it. So another nice feature with codeex is that while you have the main thread. So right here in you see in the screenshot on the right left is the main thread on the right you can start a site thread. So you literally see here and say let’s focus on signing in with chat GPD first.

[35:13] I want to sleep soon. I assume you need me to do that because I know like okay I think Codex needs probably some help with that because I’m running a building a new instance on the app server a new user interface so it needs to get some credentials so it needs to know where my credentials are and it says okay actually the credentials are already here so okay update the main thread so you can use the site thread to update the main thread so let’s do an example of that live as well so here this one is still running you could just do slash site and it creates a site thread and you can just ask codeex like what’s

[35:43] going on. So maybe we just ask it takes a while this I think due to the network but let’s say uh hey um what’s going on can you list like uh what you’ve done so far maybe in the last hour what do you plan to do next is there anything I can do to unblock you and then from this when you get the agent tells what’s going to do next you can also get a sense of like what maybe it’s like on the wrong wrong track then you can sort of tell codex hey maybe you don’t want to do that we should do this instead then the site thread can communicate with the main thread so that’s a pretty nice uh feature >> it’s worth noting with side threads.

[36:13] Those are ephemeral. So if there is any context that you want to keep longterm in your project, make sure you’re communicating that back to the main thread because they will get stale after a while. >> Uh here’s another example where what we were doing earlier was a site thread talking to the main thread. This example is where two different main threads are talking to each other. Specifically on the right uh the left side um we have uh codecs saying test spawning a local thread in the local form builder project. If it succeeds make that the

[36:45] default location for all local future local threats especially for Chrome or end to end testing. So again on the what’s happening here is that it’s running on the remote service but so it doesn’t have access to my chrome chrome browser. Then it send a message to the local host and then it can then from there uh see uh chrome appears to be installed and then from there it can do the testing with chrome. So there you can get the remote session to work with the local session and this was the test that it did. So while it’s working in the cloud locally on my laptop like me at 3:00 a.m. while sleeping Codex opened

[37:17] Chrome it went through the form building flow and it created a form end to end. Sub aents are also a particularly helpful thing in these longunning tasks because you want to make sure context is well separated. Uh agents sort of focus on different tasks and here’s one nice example. So it was building a application and I just like took a peek at it and I just not necessarily best practice. I just sent it to the main thread saying not very good. Yeah. And then Codex said yeah agreed that’s

[37:48] technically cleaner but it’s still a bad chat interface. And you notice here what it did was that it messaged the sub agent. So the sub agent was already previously spawned but then the main agent messaged the sub aent and you would see this the message over here. So for example it says this. So it sent it and says update your verification task with this new user screenshot and directive. So there you have the sort of inter agent communication. Uh so this was that what it did thereafter. So it did its own tests because I sent a screenshot with the messages flushed to the bottom. I didn’t

[38:18] want that. So then Codex did its own test and it says uh send retroex visible okay in one short sentence and it sent it. So CEX itself did its own QA testing to sort of verify my feedback. Um and this is an example for the live QA where the main thread was spawning different other site threads for example the audit of the goal the code review but also doing that communication back to Slack. So this thread over here where it says provide slack thread URL that’s over here where I was providing all these updates. So a separate sort of

[38:50] session was managing that. We earlier talked about goal and here is a dashboard that the codex created for the goal. So you would see it has all these different milestones, what’s been completed, what’s active, what’s yet to be started. And then the dashboard also gave me a sense of like what the different threads are doing like oh this thread is the main orchestrator. There’s a communication thread. There’s one thread doing like visual UX. There’s one doing like the managing the app server protocol and so forth. And even like creates it into like more conceptual

[39:21] work streams like one workstream on off one workstream on testing one workstream on UI polish. But throughout the night sometimes codeex does get blocked. So then with the example of convex in versel, it said oh um I I marked it as blocked because the critical path it didn’t have the authentication didn’t have like the identity to access these external services but still I did everything I could up till that point. So it said it was blocked so it will come up in the UI and then I just selected it and I say add to site chat and it says can you

[39:51] please explain what’s going on because I just woke up like I I didn’t have context of what’s going on but Codex is telling me he was blocked. So I’m trying to get Codex to to catch me up to speed. So here it’s like saying explain step by step what I can do to unblock you here. So it gave me different options how I can give the code VLE details the convex details and then I sort of did it. So here it I sort of I selected it and say do that. So then the site thread told the main thread to sort of create the CLI login flow and I’ll just click it

[40:21] over here and I’ll be able to then authenticate and give vers uh codeex which again is running on a remote instance access and the right permissions to manage my versel project. Then in the case of convex there’s a deployment key. So I was like hey I’m not going to paste that into the chat. So I asked Codex give me a secure way to do it. Then it gave me this like bash code that I could just paste it in and I could then set the key into the remote environment. So that was like a way where you could collaborate with Codex in a remote instance, do different testing, managing permissions and so

[40:51] forth. Um, so let’s see what they actually built from this entire process. So let’s look at a site builder site one. So this is it, the internal form builder. So to recap again, there’s an existing repo where of a form builder, but I want to like customize it for like maybe my internal team. We’re like maybe five of us. I don’t want to spend money on SAS. So we can build our own form builder. So it creates a new draft. You could call it like AI engineers uh workshop. Hello. And then just say like yeah I

[41:22] should I should ask the Chrome extension to do this but you know for exposition purposes. Okay. And you can like preview the form and then you can sort of share it thereafter. You can like copy publish the link. Then there’ll be a sharable link. You open the link and then someone else in your team can fill it in. And again because this is hosted on sites only people that have access to your chat GPT workspace can then access this form. So that’s really nice. Yeah. Then you can see all the responses and so forth. So this was again what we did. So to summarize on the complex task, we had

[41:55] three different projects. One was a machine learning one where I wanted to reimplement a package with a Rust back end. one was to take a existing uh to build from scratch like a green field project a live Q&A site and the third was to take an existing open source project and customize it for my sort of needs and codex was able to sort of get it done in those cases. So underlying this are a few sort of uh concepts and primitives here. Let’s go back to the slides.

[42:28] So the first thing is compaction. You saw how codex worked for seven hours. It worked for 5 hours. It worked for like right now I think the other one is like 12 hours. And many times it’s compacting its context window. This is not a new technology. In November 19 when we released GPT 5.1 Codex Max, yes the name was GPT 5.1 Codex Max, we natively train the model on multiple uh context windows through a process called compaction. And that’s what lets Codex be really good at it. Um some examples of what people have

[43:00] said about compaction to quote did open AI basically solve compaction I pretty much never had issue with 5.5 and codecs across ultra long threads spanning many compactions. Uh this individual from Japan said like in fact codeex has strong compaction. So even if you make a lot a lot in the same thread it’s less likely to forget. And in that sense because it only remembers the good stuff. There’s some token efficiency to that I suppose. And as always, people think it’s pretty quoted. I’ll let uh Charlie share a bit more

[43:30] about like specific uh primitives and concepts that enable this such as goal. >> Yeah, thanks Gabe. So, as you saw, we we have a goal that’s already been running for 15 hours. And uh I think you know goal is is one of these primitives that um is incredibly powerful if you can use it in the right way. Uh, one of the biggest things that I tell people who are just trying it out for the first time is be really specific with the criteria that you’re giving the model to to know when it’s done. Um, and specifically, you want that criteria to be as verifiable as possible. Uh,

[44:02] sometimes I do feel a little bit like goal is is kind of like a genie in the sense that when it works well, it is insanely magical. uh and when it doesn’t sometimes I feel like I’ve entered into a monkeykey’s paw type situation where you know it has done the thing technically that I asked it to do but like very much not in the way that I was expecting. Um so it when you give it a task it’ll run off it’ll keep evaluating itself against the success criteria against the verifiable criteria that you’ve given it. Um and at each turn it’ll check hey did this actually complete um and if not should I keep going right um there are quite a lot of

[44:34] use cases uh for very large projects in this way. Um, you know, Tama, as you can see, used a SLGO that was running for 40 hours, uh, that did a reimplementation of Doom in native Swift code. Um, if that’s the type of thing that that you want to give a shot. Um, but also things like code migrations, large refactors, uh, retrying loops, uh, experiments, and, you know, like games or or full oneshotting apps with fairly detailed specs. Um, I think goal is is pretty incredible.

[45:04] Uh we’ve also got sub aents which we uh saw a little bit of a preview of here right sub aents in codeex um you know by default will get used out of the box. You can tell tell the model hey uh you know think about delegating to sub agents here um but you can also customize them. So if you want if you know you have a sub agent that should be your um you know code reviewer right you can have a specific prompt set of developer instructions here. Um, if you know you want that code reviewer to just be focused on um, like just be a

[45:34] lightweight model so that it runs quickly. Or if you want it to be a much more intelligent model so that it’s very thorough, you can customize that in its own uh, sub aents.totml file. Um, and you can give these names. You can say, oh, go, you know, check with the code reviewer, go check with the docs researcher, um, in order to to implement, right? Sub aents uh, can work in tandem with uh, thread-to-thread handoff in codec. So, um, thread to thread is is quite new. I think we just released it in the last week. Yeah. Um and so uh that’s just an even higher

[46:04] level of abstraction. Um and the way that I think about balancing them is, um when the the delegation of work needs to be visible to you, the user versus when it just needs to be visible to the model. So sub aents we started with because I think that is when the work, you know, primarily needs to be visible to the model. um if you want to delegate, you know, some uh like a subcontractor, you know, I don’t really care what they’re talking about. I just want to make sure that the work comes back good. Sub aents are a great fit and the model is great at figuring out when it should be um handing off into sub

[46:36] aents. Uh it also keeps the the context separate. I think unlike you know a lot of other tools that um we’ve we’ve brought to codeex to help keep context windows efficient. Um, sub agents are one where uh, you know, you’re keeping the context separate and the mo the the models are communicating with each other. Thread to thread handoff is useful for when you still want to be in the loop and you still want to be able to like look at everything that’s happening. Um, and perhaps even larger than that, you are mentally thinking about separating these two uh, these two threads, right? So, um, one example is over the weekend I was working on a game

[47:07] um, and I had a creative director thread, right? I could have used a sub agent and that would have worked fine, but I wanted to see all of the different things that were happening and I I didn’t want it to just be delegated into the ether via sub agents. So, with the creative director thread, I opened up um different threads, one to work on the art direction, one to work on the music, one to polish the animations, one to figure out the game mechanics, and I was using those um and I told them in the agents MD file, when you’re done, go and check with the creative director thread, which I’d given a bunch of extra context

[47:38] on, you know, the look and feel I wanted for the game. Go check with the creative director and get sign off before you consider this task done, right? Uh and they all did so. that, you know, it was actually really interesting to watch the threads just constantly sending messages to each other back and forth as they worked on the game. Uh, we didn’t quite show it here, but we also have hooks in the Codex app. Um, if you want to set up your own hooks, you can do so in your config.toml file uh in your codeex home directory. Um, these are really great for when you want to

[48:09] start introducing uh deterministic behavior at specific checkpoints in your software development life cycle or in your just you know general uh development life cycle. So I think in these cases you might use hooks to do things like um you know send your conversation to a logging engine right um you might want to scan inputs or outputs. I think there’s quite a lot of security use cases for hooks, right? Before Codeex takes a specific action, maybe you want to look at the prompts and figure out, hey, have we accidentally pasted an API key that’s that’s going to go somewhere um or

[48:40] before it takes an action to call a tool? Hey, is this tool, you know, on like not on our approved white list or something that we need to be extra sensitive about when calling the tool to evaluate if it’s if it’s safe to use. Um, and we can also do custom validation checks as well when the turn stops. these days, you know, you can tell the agency MD, hey, go and use the the llinter, right, before you consider the work done to check your work. Um, and it’s really good about doing that, but if there are things that are a little bit more sophisticated or a little bit more complex that you want to do to validate the output, uh, you can use hooks to to take care of that as well.

[49:11] Um, you know, I find that when building more and more complex projects, some of the most important things are figuring out, like I’ve said, the verification criteria or the success criteria. You want to give the model as many boundaries as it can as you can and let it fill in the lines um in accordance with like the boundaries that you’ve given it. >> Cool. Um and that brings us to working over time. >> Thanks Charlie. So just to quickly share on hooks uh

[49:42] slipped to my mind as well. So we have the OpenAI agents SDK and there’s actually a quick example of hooks right over there. So if you go to settings, all the hooks are sort of there. And you would see the hook for the agents SDK repo. And here it’s sort of doing at the every end of its turn a Python script to just tidy the repo. So again, there like some of these housekeeping that maybe you want the language model to do. You can run it deterministically with a hook. And hooks become particularly useful with longunning tasks because there is that trade-off. You’re giving the agent more autonomy. It’s going to

[50:13] work off work longer and longer without your supervision or abstracted supervision. And to that to that end hooks become useful in getting the guardrail. So on working over time what we’re trying to show here is that now we sort of collaborated codecs we have some of the power tool power user tools like computer use. How can we like sitch this all together and let you know codeex work on its own? I mean for exposition purpose here we are like prompting and like being more methodical but in reality you can just like let codeex

[50:43] work on it like with thread handoffs. In practice, I could have all my demos in one thread and just ask that thread to segregate to separate it and send it and delegate it to the various threads. So here’s one quick example of a automation. So right now you notice like on my uh screen over here that these like blue orbs. So this is just showing that it’s a remote host and maybe you want to create one. So we have a nice plugin here with the digital ocean plugin which we just uh released last week and then you saw do it. You can just try it in chat. I’m just going to

[51:14] like fire it off as well. And what it’s going to do is going to like provision this infrastructure. It’s going to take some time. And I’m not going to like stand here and look for for it to provision this infrastructure. Uh and Codex is not going to like just keep um like waiting. What it’s going to do is create a heartbeat automation. So it’s going to like monitor and so forth. So it says yes. And let’s just show in the spirit of this being a cooking show an example that was already done. So here provision a digital ocean droplet. Okay. Yes. And then it created the automation

[51:45] here. I set a codeex heartbeat to resume this track in about 5 minutes. So it’s going to keep tracking every 5 minutes. Is it ready? Is it ready? Is it ready? Is it ready? And once it’s ready, it will take the next step. So in this case, it did it. So okay, the droplet’s ready. And it even gave a nice link. So if you click this link, it’s a deep link. It’s a link like a deep link to the settings page within the Codex app which automatically sets up the SSH instance for you. So you just need to press it and then it’ll preconfigure everything. It knows where it will create the SSH key for you if necessary

[52:17] and so forth. So that’s nice and you can extend this to other parts of like say the software development life cycle. Uh maybe you’re building something you need to deploy. You have a pipeline that triggers event based and it takes time. So you can get codeex to like run every 5 minutes, every 10 minutes check is it ready, is it ready, is it ready and maybe depending on the event then it sort of spawns different tasks and so forth. So that’s a heartbeat automation. It runs within the thread. But we can also do automations that sort of spawn new threads. Uh so one example of this so right now I have actually the Slack

[52:50] channel. So see if it’s up. So remember the Mac OS translation app. So in the last say 45 minutes we had a bunch of users all called Gabriela and they’ve been using it. They’ve been giving a lot of feedback on the translation app. for example, oh the screen feels focused. I can tell where to start, so it’s positive. Is there a way to do a quick sound check before the audience sees caption? So, so there’s a lot of feedback. People are giving feedback. And I want to like, you know, give this

[53:22] feedback the attention it deserves. So, I want to create an automation to do that. So, just make sure we are in I’m just going to close this since we don’t need it already. Over here, we create a new thread. And then I’m just going to like do a appshot. Um, every half an hour, can you just like look at the comments and uh suggestions in this channel and reply to them? Uh, I think there’ll be like a few categories. There’s one category where it’s like compliments. There’s one

[53:52] category where it’s a bug report. There’s one category where it’s a feature request. Uh, so forth. Let me just like fire that off. So, it’s going to create an automation. And I I just sent it, but I realized, oh, wait. Um, if it’s a feature request or a bug fix, I want to do something different. So, I’m going to like steer this. Oh. Um, if it’s a uh bug fix or feature request, can you also then like spin a new thread in a work tree and actually address that and then open a PR and then like request Dom to review it and then so forth and

[54:23] ask Dom to like approve it within like 24 hours. If not, just keep reminding him. So yeah, it’s it’s it’s a comical example, but here it’s where I’m try I what I was first doing was steering. So I’m going to I don’t have to wait for codeex to finish. I can sort of steer it midway. And what I’m trying to do is in addition to all this feedback and classifying it if it’s a it’s a bug report, if it’s something that uh we can fix. Codex would then sort of spawn a thread. So we’re putting all these primitives together, the automation, the plug-in which can can read slack. The

[54:53] fact that one codex thread can communicate with other codex threads and even create work tree threads and so forth. So imagine then you wake up and this is a bit like that software factory where all the PRs are ready then you can even add additional comp layers to it where it’s all this review you build a test version you send it to someone they test it and then they give the thumbs up then it’s good to go that feedback gets fed back to the PR then the PR reviewer sees all this holistically. So yeah, there’s a lot of it you can chain together to build that automation. So then every half an hour it would do this

[55:24] and it will find DOM as well in the uh channel. So you we were talking earlier about how we’ve actually been running a automation in the background and let’s find that. So let’s see here it is. So earlier while everyone was coming into the room I was asking Codex can you run an automation every five minutes taking a screenshot of what’s happening on screen the Google Chrome uh Google drive presentation we only have 16 minutes and I’m asking Codex to estimate to what extent are we going to overrun so right

[55:56] now it’s at checkpoint 13 it’s seeing if the demo is there it’s flashing 12 uh 10 12 and so forth so Codex is doing its own assessment of like to what extent are we going to finish on time so it’s a bit of a meta example of how you can use automations and chain together other tools like in this case the Chrome extension. >> It looks like it’s telling us we might be a little bit behind the ball here. >> Yeah, it’s it’s a you know it is what it is. So automations have been really useful in my personal life to extent really like getting a lot of things done. Uh some automations that may be useful too. Uh one automation you can

[56:27] run maybe every Friday you ask Codex to look at all your conversation threads and see are there skills that you could improve? Are there like things you could add to the agents markdown? Or are there skills you could just remove? maybe skills that you haven’t been using. A second automation or approach that may be useful. Maybe you’re using automations to draft email replies. You can have one automation that drafts the email reply, but you can run a second automation that sort of cross validates against the eventual reply you sent because that is the ground truth. Then it updates like a markdown file with the

[56:57] best practices, tips and so forth. And in that regard, the email drafting automation can get better over time. So, um I’ll let uh Charlie just recap what automations are and share a bit more about the app server as well. Our final step. Cool. Uh so I think yeah, automations uh there’s two types two types of automations, right? Um I think the more powerful one these days tends to be the inapp or inthread heartbeat automations. And so those just live in a single thread. They run on a timer. Um they you

[57:28] know keep going over and over until they’re they’re done. Um, these I find like have just almost unlimited use cases. Uh, me person, Gabe shared some of his. I think me personally, um, I feel like I’m drowning in Slack and email and linear notifications every day. Uh, so I have an automation that just sort of, uh, goes through and checks the latest updates from, you know, all the sources that might need my attention. I have a local Obsidian uh, vault and so it’s just constantly updating my daily notes. It’s constantly updating my uh, notes on different work streams and it’s keeping a lot of context there. And that way I can just

[57:58] pull from that later if I say, “Hey, you know, what’s going on with the latest uh AI engineer world’s fair talk?” Like, you know, how far are we on the demos, how far are we on the notes? And then I can just Codex can just quickly tell me, here’s what’s happened since the last time you checked in. Uh, but automations can also live in a new thread. If you set them up in the Codex app, uh, under scheduled, the scheduled page, um, you can have them spin out in their own thread as well. Um, and then that’s useful if you just want to say, “Look, every week I want you to do a recap of what all of my direct reports have been doing, or I want you to look at all of the analytics from this uh system, and

[58:30] then we’re just going to do a one-time look together, and then I’m going to archive the thread and not worry about it again.” Uh, I think last but not least, we’ve got embedding codecs anywhere. Um, and so I think we’re for this one, uh, I want to talk a little bit about the app server protocol, right? Which is, um, the core protocol that underpins the Codex app, the Codex CLI, uh, the Codex VS code extension. Um, the app server is basically, uh, what allows all of these services to talk with the main codeex

[59:01] harness, right? Um, and it’s integrating all of the tool calls and the plugins and the context compaction that you know and love. Um we have you know built a lot of the components of the Codex ecosystem to be open source because uh we really want to encourage developers to build wherever you are and for whatever use case that that you have. And so to that extent um you know if you’re not aware you can embed codecs into your product using app server. Uh I think this brings a lot of the uh power of codecs directly to you. Um, and it brings the ability for your users to uh

[59:33] use their chat GBT subscription and perhaps more importantly use their chat GBT token budget uh to power the products that you’re building. Um, and like I said, it has all the same underlying features that we’ve been demoing. You know, compaction, steering, the ones that need to live on your computer like computer use are are, you know, not going to be there. But for everything that exists in the core, uh, you know, agent harness, we’ve got that in the app server. So as a quick demo of that, so there was a fourth longrunning task that I kicked off last night. It was actually to build

[1:00:04] my own user interface for codeex with the app server called Retroex. So it’s been working for a while. I think there are different tasks I worked with it. And this is sort of the work in progress retroex. It’s using the app server. Uh let’s just okay zoom in then optimize it for the stage. But yeah, you can like choose the model 5.5.4 mini the reasoning effort. So I told like oh make it a bit funky when you change the reasoning effort. So at low there’s like a small glitter at medium the color changes you think high and extra high

[1:00:34] it’s like woo a bit more. So you could just like simply say like uh hello and let’s see this is in retroex going to send hello and then allow access. It’s going to run and it’s going to reply back hello. And what’s nice and to just prove that it’s all running on the same app server is that if we go to the Codex app in the same project uh retroex you should see that over here let’s see

[1:01:05] yeah it should we can change the threads I believe but yeah that’s an example of how you can build it’s it’s a trivial example of building a funky user interface but let’s say you want to build agents on the cloud you want to manage different agent providers uh you’re considering in a large organization your different sort of providers you’re using and you want to build a unified layer the app server is a useful way for you to integrate it into your own platforms and because it’s open source if you go to you get clone openai/codex you can just ask codeex about codeex you could just say like uh

[1:01:35] hey can you tell me more about the codeex app server and then you can fire it off and you can start building your own applications or integrations from there immediately so that’s the app server And we have a nice blog post talking about it and there have been more engineering blog posts about like our Windows sandbox first of its kind how we built the agent loop amazing stuff and it’s a good reference point also like if you’re AI engineer seeing the codeex repo it’s a great source and we’ll have uh further talks in the subsequent days about this. So I’ll let Charlie share

[1:02:07] some closing thoughts after seeing this entire cooking show. Uh, thanks Gabe and thanks everybody again for being here. I think um hopefully you’ve learned a bit today about how you can use Codex to kind of level up your workflows. Some of the co closing thoughts that I want to end on here are, you know, questions that I repeatedly ask myself as I’m trying to get to the frontier of what Codex can do, right? Um they start pretty simple just by asking, have I tried asking Codex to do it? Right? Um I think like one of the things around the office that we say uh more frequently than ever now

[1:02:38] is have you asked Codex? Um, but I think as you evolve that workflow, right, you want to go from just asking in individual turns to building loops, right? We’ve all heard about loop maxing. That is the new thing. Um, and I think we want to think about how does that how does that work, right? Like what is it that the loop needs to be checking at each turn, right? Um, as you go down this path, there’s going to be additional questions like, okay, you know, as it’s progressing, how how like what blocked Codeex from actually getting to the answer, right? Um, was there context that it needed? Were there

[1:03:09] permissions that it needed? Are there ways to build that context into repeatable tools like skills or plugins that Codex can use the next time it runs into this problem? Um, how do I start scaling kind of from one agent to many? Right? Like as you think about the work, is there ways that you could be prompting Codex to implicitly delegate the structure of the things that you are building? Um, or to start orchestrating across multiple threads to have different Codex instances communicating with each other. And then ultimately uh you know if you take a step back and ask the question okay why does this process need a human at all right I think like

[1:03:41] as we’ve shown you know one thing that you might assume uh when building with codeex or when building with the open AI API is that a human needs to be involved to like go to the platform page and go get an API key and then paste it into the environment right I think like uh as we’ve shown with the developers plugin that is not the case anymore the plug-in itself can just go fetch the API key and set it up locally for you um and ultimately you know we do still want humans in the loop like where they need to be but uh for everything that’s not that like how do we figure out how to take the human out of the process to unblock ourselves and how do we figure

[1:04:13] out how to build the machine that builds the machine right I think like it is one thing to sit with a coding agent and build a single piece of software is another thing to start zooming out and say actually I want to build a software factory right I want to build a system that um that then builds individual pieces of software on an assembly line as we Um, and so a lot of these things are kind of how I start to get from, um, just an individual ask to something significantly bigger. >> Cool. And I think with that, um, we are

[1:04:46] >> a recap of >> Yeah. Yeah. >> Good. So, um, thanks so much for joining us today on a 9:00 a.m. on a Monday. It’s the I hope it’s a great way to kick off your, uh, AI engineer welfare. And that’s not it. So, tomorrow we have our opening keynote. It’s going to be fun. Do check it out. We also have Jason on the developer experience team giving a talk about how he gets the most out of Codeex. It’s a nice foil to today’s presentation about how he’s using on a day-to-day basis. And then he has a

[1:05:17] workshop after that where he goes through step by step like setting up the plugins, doing app shots and so forth. So today’s session is more uh like a whirlwind tour. This workshop will go through the step by steps of how to get to set yourself up for success with codecs. We then have a session on uh from the harness about the harness and then sessions about voice agents. Charlie will be talking about that as well. Uh Dom will be doing a session on building on the Codex harness and then another session explaining behind the

[1:05:49] Codex harness. So the first one is you build on top of it. Then the second one is explain the harness. Then lastly a session about LLM inference in production and so how we sort of do that at OpenAI. So thank you for joining us and that’s the end of the first segment of today’s workshop where we sort of give that whirlwind tour of everything codex and hopefully you have something fun to cope with. So it’s time to build and to help you with that for today’s session. Uh first things first, if you’ve not downloaded downloaded the Codex app, do

[1:06:19] give it a download. And for credits, so we are giving 100 USD in Codex credits and 100 USD in API credits. So we’ll leave leave this QR code up there’s their phones up and take a photo. Yeah, I could like appshot this and say, “All right, send this via email to everyone who attended, but we don’t have your emails.” Yeah. >> Cool. And I would also mention uh please stick around uh to the end of the build session um if you can. We brought uh swag for everybody. So at the end of the 2our mark um on your way out you can

[1:06:50] pick up a sweatshirt I believe. >> We love to see what you’re building as well. Yeah. >> Yeah. Well, we will be here. We will be here in the audience. We’ve got uh opening eye staff here as well um to help unblock you or to answer any questions about uh using codecs. >> Thank you.