{"id":763,"date":"2026-10-06T18:33:43","date_gmt":"2026-10-06T21:33:43","guid":{"rendered":"https:\/\/yellowkode.com\/blog\/openai-ironclad-treino-agentes-computer-use\/"},"modified":"2026-10-06T18:33:43","modified_gmt":"2026-10-06T21:33:43","slug":"openai-ironclad-treino-agentes-computer-use","status":"publish","type":"post","link":"https:\/\/yellowkode.com\/blog\/openai-ironclad-treino-agentes-computer-use\/","title":{"rendered":"OpenAI e Ironclad: Como Funciona o Treino de Agentes de Computer Use em Fluxos de Contrato"},"content":{"rendered":"<p>Em 6 de outubro de 2026, a OpenAI publicou no pr\u00f3prio site um texto chamado <em>Advancing computer use with Ironclad<\/em>, descrevendo uma colabora\u00e7\u00e3o de pesquisa com a Ironclad, empresa de gest\u00e3o de ciclo de vida de contratos. A proposta: usar o produto da Ironclad como terreno de treino e avalia\u00e7\u00e3o para agentes de computer use em trabalho profissional. O an\u00fancio foi replicado por ve\u00edculos como Seeking Alpha e CryptoBriefing no mesmo dia.<\/p>\n<p>O que o an\u00fancio diz, em uma frase: a Ironclad e a OpenAI identificaram 11 tarefas em trabalho jur\u00eddico, comercial e de compras, como configurar NDAs, criar processos de aprova\u00e7\u00e3o de compras e atualizar uma cl\u00e1usula reutiliz\u00e1vel para refletir a jurisdi\u00e7\u00e3o selecionada, tarefas que levariam de 30 a 40 minutos para um usu\u00e1rio experiente. O resto do artigo \u00e9 sobre como esse tipo de setup funciona por baixo e o que ele realmente ensina (e o que n\u00e3o ensina).<\/p>\n<h2>Como funciona o treino descrito no an\u00fancio<\/h2>\n<p>Antes de entrar no mecanismo, vale separar duas coisas que est\u00e3o sendo misturadas na imprensa: <strong>computer use<\/strong> (a capacidade geral do modelo de operar uma interface gr\u00e1fica) e <strong>o treino espec\u00edfico<\/strong> em um dom\u00ednio (contratos). O an\u00fancio da OpenAI \u00e9 sobre a segunda. A primeira j\u00e1 existia.<\/p>\n<h3>O la\u00e7o base do computer use<\/h3>\n<p>Um agente de computer use da OpenAI, publicamente documentado desde o CUA, roda em um la\u00e7o fechado de tr\u00eas passos. O modelo processa pixels brutos para entender o que est\u00e1 na tela e usa mouse e teclado virtuais para completar a\u00e7\u00f5es, navegando tarefas de v\u00e1rios passos, lidando com erros e adaptando-se a mudan\u00e7as inesperadas.<\/p>\n<p>Na pr\u00e1tica, o ciclo \u00e9:<\/p>\n<ol>\n<li><strong>Perceber<\/strong>: um screenshot da tela entra no modelo como imagem.<\/li>\n<li><strong>Decidir<\/strong>: o modelo emite uma a\u00e7\u00e3o estruturada. O modelo examina o screenshot e sugere a\u00e7\u00f5es, emitindo computer_call com instru\u00e7\u00f5es como click(x,y) ou type(text), que voc\u00ea precisa executar no seu ambiente e devolver screenshots dos resultados.<\/li>\n<li><strong>Executar e observar<\/strong>: seu runtime (um browser, um sandbox, um VM) executa a a\u00e7\u00e3o e devolve um novo screenshot.<\/li>\n<li>Volta ao passo 1 at\u00e9 o modelo declarar que terminou ou pedir ajuda.<\/li>\n<\/ol>\n<p>Pense num jogo de perguntas em que voc\u00ea tem os olhos vendados e um amigo descreve a tela a cada jogada. Voc\u00ea fala &#8220;clica no bot\u00e3o azul em cima&#8221; e ele clica, descreve de novo, voc\u00ea decide o pr\u00f3ximo movimento. O modelo \u00e9 voc\u00ea. A venda s\u00e3o os pixels. O amigo \u00e9 o runtime que executa o clique. A pilha de screenshots acumulados \u00e9 a mem\u00f3ria de curto prazo da partida. A analogia quebra num ponto importante: o modelo n\u00e3o enxerga continuamente, ele enxerga em frames discretos, e tudo que acontece entre um screenshot e outro \u00e9 invis\u00edvel para ele. Anima\u00e7\u00f5es, redirecionamentos, popups que fecham sozinhos, nada disso existe se n\u00e3o aparecer no pr\u00f3ximo frame.<\/p>\n<h3>O que a colabora\u00e7\u00e3o com a Ironclad acrescenta<\/h3>\n<p>O an\u00fancio descreve tr\u00eas ingredientes somados ao la\u00e7o base:<\/p>\n<ul>\n<li><strong>Ambientes hospedados do produto real<\/strong>. A Ironclad forneceu ambientes de software hospedados do produto onde os modelos podiam praticar essas tarefas. Isso significa inst\u00e2ncias isoladas do Ironclad onde o agente pode clicar \u00e0 vontade sem destruir dados de cliente.<\/li>\n<li><strong>Tarefas sint\u00e9ticas em cima dos workflows reais<\/strong>. Os pesquisadores desenvolveram tarefas sint\u00e9ticas de treino em torno de workflows representativos e usaram aprendizado por refor\u00e7o para ajudar os modelos a melhorar por meio de pr\u00e1tica e feedback.<\/li>\n<li><strong>Avalia\u00e7\u00e3o por crit\u00e9rio, n\u00e3o por nota \u00fanica<\/strong>. Cada tarefa foi avaliada contra 8 a 50 crit\u00e9rios, dependendo da complexidade, o que permite ver quais partes o modelo acertou e onde errou.<\/li>\n<\/ul>\n<p>Esse terceiro ponto \u00e9 o mais interessante do ponto de vista de engenharia. Avaliar um agente que faz 40 cliques num produto com um \u00fanico booleano &#8220;deu certo ou n\u00e3o&#8221; descarta informa\u00e7\u00e3o. Com 8 a 50 crit\u00e9rios por tarefa, d\u00e1 para medir, por exemplo, &#8220;preencheu o campo de jurisdi\u00e7\u00e3o corretamente&#8221;, &#8220;anexou o PDF certo&#8221;, &#8220;notificou o aprovador&#8221;, de forma independente. Isso vira sinal denso para reinforcement learning: o modelo recebe recompensa parcial por cumprir subcrit\u00e9rios, n\u00e3o s\u00f3 por fechar a tarefa inteira.<\/p>\n<p>Sobre o resultado num\u00e9rico, segundo o CryptoBriefing, o modelo GPT-6 Astra marcou em m\u00e9dia 55,0% nas 11 tarefas de contrato, contra 41,6% do antecessor GPT-5.6 Sol, e o tempo m\u00e9dio por tarefa caiu de 37,0 minutos para 19,2 minutos, uma melhora de 48% em efici\u00eancia. Esses n\u00fameros n\u00e3o est\u00e3o expl\u00edcitos no resumo que capturei do post original da OpenAI, ent\u00e3o trato como relato de terceiros.<\/p>\n<h2>O que isso significa na pr\u00e1tica<\/h2>\n<p>Se voc\u00ea vai construir um agente que opera uma ferramenta de SaaS por fora da API, o padr\u00e3o de refer\u00eancia que o an\u00fancio refor\u00e7a tem tr\u00eas partes replic\u00e1veis sem precisar de parceria com a OpenAI.<\/p>\n<h3>Um esqueleto do la\u00e7o de computer use<\/h3>\n<p>Em pseudoc\u00f3digo, usando a Responses API da OpenAI com a ferramenta de computer use:<\/p>\n<pre><code># laco minimo de computer use\nscreenshot = capturar_tela()\nhistoria = [{\"role\": \"user\", \"content\": tarefa, \"image\": screenshot}]\n\nwhile True:\n resposta = client.responses.create(\n model=\"...\",\n tools=[{\"type\": \"computer_use\", \"display_width\": 1280, \"display_height\": 800}],\n input=historia\n )\n\n chamadas = [i for i in resposta.output if i.type == \"computer_call\"]\n if not chamadas:\n break # modelo declarou fim\n\n for c in chamadas:\n executar_no_browser(c.action) # click, type, scroll, etc\n novo_shot = capturar_tela()\n historia.append({\"role\": \"tool\", \"call_id\": c.id, \"image\": novo_shot})\n<\/code><\/pre>\n<p>\u00c9 basicamente o fluxo que a documenta\u00e7\u00e3o p\u00fablica descreve: o usu\u00e1rio envia uma requisi\u00e7\u00e3o ao modelo incluindo a ferramenta de computer no tools com tamanho de display e detalhes de ambiente, podendo anexar um screenshot do estado inicial, recebe a resposta e procura por itens computer_call que sugerem a\u00e7\u00f5es como clicar, digitar, rolar ou esperar, executa a a\u00e7\u00e3o no computador ou browser e captura o estado atualizado como screenshot. Repete at\u00e9 acabar.<\/p>\n<h3>A parte que a maioria ignora: a avalia\u00e7\u00e3o<\/h3>\n<p>A li\u00e7\u00e3o mais acion\u00e1vel do an\u00fancio n\u00e3o \u00e9 &#8220;use computer use&#8221;, \u00e9 &#8220;decomponha o crit\u00e9rio de sucesso&#8221;. Em vez de medir &#8220;o NDA foi criado?&#8221; como booleano, construa uma rubrica. Por exemplo, para a tarefa de atualizar uma cl\u00e1usula por jurisdi\u00e7\u00e3o:<\/p>\n<pre><code>criterios = [\n {\"id\": \"abriu_clausula_certa\", \"peso\": 1},\n {\"id\": \"identificou_jurisdicao_na_request\", \"peso\": 1},\n {\"id\": \"substituiu_texto_governing_law\", \"peso\": 2},\n {\"id\": \"preservou_outras_secoes\", \"peso\": 2},\n {\"id\": \"salvou_versao\", \"peso\": 1},\n {\"id\": \"notificou_requester\", \"peso\": 1},\n]\n<\/code><\/pre>\n<p>Com isso voc\u00ea consegue, numa rodada de 50 execu\u00e7\u00f5es, dizer <em>onde<\/em> o modelo erra. Erra sempre no \u00faltimo passo? Erra em preservar se\u00e7\u00f5es? Esse \u00e9 o sinal que voc\u00ea precisa para decidir se o problema \u00e9 prompt, \u00e9 ambiente, \u00e9 modelo ou \u00e9 desenho de tarefa.<\/p>\n<p>Em projetos que fiz, inclusive num sistema multi-agente de captura e enriquecimento de lead, essa separa\u00e7\u00e3o por crit\u00e9rio foi o que permitiu discutir onde o sistema estava fraco sem debate religioso. Rubrica expl\u00edcita vira linguagem comum entre quem escreve o prompt e quem olha os logs.<\/p>\n<h2>Onde isso quebra<\/h2>\n<p>Computer use baseado em pixels tem limites que n\u00e3o desaparecem porque o modelo ficou melhor. Alguns deles aparecem no pr\u00f3prio an\u00fancio por omiss\u00e3o, outros s\u00e3o conhecidos da documenta\u00e7\u00e3o p\u00fablica.<\/p>\n<h3>Lat\u00eancia e custo por la\u00e7o<\/h3>\n<p>Cada passo do la\u00e7o \u00e9 uma chamada de modelo com uma imagem no input. Uma tarefa de 30 a 40 minutos para um humano, mesmo que o modelo fa\u00e7a em 19 minutos, pode significar dezenas ou centenas de chamadas de vis\u00e3o. Isso tem custo monet\u00e1rio e tem custo de wall clock. Para processos s\u00edncronos (um usu\u00e1rio esperando), isso quase nunca compensa; para batch e off-hours, compensa muito mais.<\/p>\n<h3>Fragilidade visual<\/h3>\n<p>O agente enxerga pixels. Mudan\u00e7a de tema, modal novo, A\/B test, redirect inesperado, tudo isso \u00e9 oportunidade de perder o fio. O tratamento de tarefas complexas ainda tem taxas de sucesso que mostram espa\u00e7o para melhoria em compara\u00e7\u00e3o com desempenho humano, e a generaliza\u00e7\u00e3o para uma variedade maior de casos de uso exige mais treino e fine-tuning.<\/p>\n<h3>O ganho vem do treino em dom\u00ednio, n\u00e3o s\u00f3 do modelo<\/h3>\n<p>\u00c9 importante n\u00e3o ler o resultado da Ironclad como &#8220;o modelo ficou melhor em computer use em geral&#8221;. A metodologia descrita, ambientes hospedados do pr\u00f3prio produto mais tarefas sint\u00e9ticas em cima de workflows representativos mais RL, \u00e9 treino em dom\u00ednio. Fora do Ironclad, n\u00e3o h\u00e1 garantia de ganho equivalente. O artigo n\u00e3o afirma generaliza\u00e7\u00e3o, e seria leitura precipitada supor que sim.<\/p>\n<h3>Orquestra\u00e7\u00e3o expl\u00edcita ainda ganha de framework em agente que voc\u00ea vai manter<\/h3>\n<p>Para sistemas de agente onde eu precisava de depurabilidade, acabei escolhendo orquestra\u00e7\u00e3o expl\u00edcita em vez de framework, porque quando quebra voc\u00ea precisa saber exatamente qual passo quebrou. O mesmo princ\u00edpio vale aqui: um la\u00e7o de computer use enroladinho em tr\u00eas camadas de abstra\u00e7\u00e3o parece bonito at\u00e9 o dia em que voc\u00ea precisa entender por que o modelo clicou no lugar errado no passo 47.<\/p>\n<h2>O que n\u00e3o d\u00e1 para afirmar ainda<\/h2>\n<p>Alguns pontos onde o material \u00e9 curto ou ausente, e eu n\u00e3o vou extrapolar:<\/p>\n<ul>\n<li>O resumo publicado da OpenAI que capturei n\u00e3o detalha a fun\u00e7\u00e3o de recompensa do RL, nem como foram geradas as tarefas sint\u00e9ticas, nem se o modelo treinado \u00e9 um checkpoint do GPT-6 Astra geral ou um fork espec\u00edfico de dom\u00ednio. Os n\u00fameros divulgados por imprensa de 55% versus 41,6% v\u00eam de uma fonte secund\u00e1ria, n\u00e3o confirmei no post original.<\/li>\n<li>N\u00e3o est\u00e1 claro, pelo material que vi, se os ambientes hospedados usados no treino s\u00e3o variantes do produto p\u00fablico ou builds dedicados com instrumenta\u00e7\u00e3o extra para capturar crit\u00e9rios. Isso muda bastante como algu\u00e9m de fora conseguiria reproduzir algo parecido.<\/li>\n<li>N\u00e3o h\u00e1 informa\u00e7\u00e3o sobre como o modelo lida com tarefas que exigem comunica\u00e7\u00e3o com humanos (pedir aprova\u00e7\u00e3o, esperar resposta de um aprovador), um peda\u00e7o central de workflow de contrato.<\/li>\n<li>N\u00e3o testei o GPT-6 Astra em computer use diretamente. Tudo que falei do la\u00e7o vem da documenta\u00e7\u00e3o p\u00fablica do CUA e da Responses API.<\/li>\n<\/ul>\n<h2>Como testar isso voc\u00ea mesmo<\/h2>\n<p>Sem parceria com a OpenAI, d\u00e1 para reproduzir o padr\u00e3o, n\u00e3o o resultado. Um caminho pequeno:<\/p>\n<ol>\n<li>Escolha uma ferramenta SaaS que voc\u00ea j\u00e1 usa muito e um workflow de 5 a 10 minutos dentro dela. Algo repetitivo o bastante para voc\u00ea ter opini\u00e3o sobre o que \u00e9 &#8220;feito direito&#8221;.<\/li>\n<li>Suba um ambiente de teste da ferramenta (sandbox, conta de dev, workspace separado). Nunca aponte o agente para produ\u00e7\u00e3o na primeira tentativa.<\/li>\n<li>Escreva a rubrica antes de escrever o agente. 8 a 15 crit\u00e9rios booleanos. Se voc\u00ea n\u00e3o consegue listar os crit\u00e9rios, voc\u00ea n\u00e3o consegue avaliar.<\/li>\n<li>Implemente o la\u00e7o m\u00ednimo de computer use acima, usando a Responses API da OpenAI ou a Computer Use da Anthropic. Rode 20 execu\u00e7\u00f5es da mesma tarefa.<\/li>\n<li>Em vez de olhar &#8220;deu certo?&#8221;, conte quantos crit\u00e9rios cada rodada acertou. O gr\u00e1fico vai te dizer onde est\u00e1 o buraco.<\/li>\n<\/ol>\n<p>O passo 3 \u00e9 o que a maioria dos projetos pula e depois vira debate de &#8220;achismo contra achismo&#8221;. A metodologia da OpenAI com a Ironclad, para al\u00e9m do modelo em si, \u00e9 um lembrete de que a avalia\u00e7\u00e3o granular \u00e9 o que transforma agente numa coisa que voc\u00ea pode melhorar de verdade.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como OpenAI e Ironclad treinam agentes de computer use em 11 tarefas de contrato, com RL em ambientes hospedados e avalia\u00e7\u00e3o por crit\u00e9rio.<\/p>\n","protected":false},"author":2,"featured_media":762,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-763","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/posts\/763","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/comments?post=763"}],"version-history":[{"count":0,"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/posts\/763\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/media\/762"}],"wp:attachment":[{"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/media?parent=763"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/categories?post=763"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/tags?post=763"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}