{"id":131562,"date":"2026-05-17T13:04:12","date_gmt":"2026-05-17T13:04:12","guid":{"rendered":"https:\/\/enfoquenoticioso.com\/?p=131562"},"modified":"2026-05-17T13:04:12","modified_gmt":"2026-05-17T13:04:12","slug":"uso-claude-code-y-esta-funcion-me-ayuda-a-que-la-ia-revise-si-el-codigo-funciona-antes-de-entregarlo","status":"publish","type":"post","link":"https:\/\/enfoquenoticioso.com\/?p=131562","title":{"rendered":"Uso Claude Code y esta funci\u00f3n me ayuda a que la IA revise si el c\u00f3digo funciona antes de entregarlo"},"content":{"rendered":"<figure><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/i0.wp.com\/imgs.hipertextual.com\/wp-content\/uploads\/2026\/05\/claude-code-002-scaled.jpg?fit=1024%2C576&amp;quality=70&amp;strip=all&amp;ssl=1\" class=\"attachment-rss-image-size size-rss-image-size wp-post-image\" alt=\"\" \/><\/figure>\n<p>Uno de los problemas m\u00e1s frecuentes cuando trabajas con IA para <strong>escribir c\u00f3digo<\/strong> es que el resultado parece correcto hasta que lo pruebas. <strong>Claude Code<\/strong> <a href=\"https:\/\/hipertextual.com\/inteligencia-artificial\/agentes-ia-anthropic-dreaming\/\" target=\"_blank\" rel=\"noopener\">acaba de a\u00f1adir una funci\u00f3n llamada Outcomes<\/a> que cambia esa din\u00e1mica para bien. Ahora, el sistema <strong>puede verificar si el resultado cumple con los criterios que definiste<\/strong> desde un principio.<\/p>\n<p><strong>Outcomes<\/strong> forma parte de la API de Managed Agents de Claude y representa un salto respecto a c\u00f3mo funcionaban los agentes de c\u00f3digo. Cuando lo activas, el flujo cambia de una conversaci\u00f3n a una sesi\u00f3n en donde se le asigna a la IA un trabajo con condiciones claras de aceptaci\u00f3n. El usuario define c\u00f3mo tiene que ser el resultado final y el <strong>agente trabaja hacia ese objetivo, autoevalu\u00e1ndose e iterando hasta que lo cumple<\/strong>.<\/p>\n<p>De acuerdo con <a href=\"https:\/\/platform.claude.com\/docs\/es\/managed-agents\/define-outcomes\" target=\"_blank\" rel=\"noopener\">la documentaci\u00f3n t\u00e9cnica<\/a>, el mecanismo central es el evento <code>user.define_outcome<\/code>. Cuando lo env\u00edas, la plataforma pone en marcha un segundo agente independiente llamado \u00abgrader\u00bb (o evaluador), cuyo \u00fanico trabajo es comprobar. Este <strong>basa su trabajo en una r\u00fabrica definida por ti<\/strong>, en donde se especifica c\u00f3mo deber\u00eda ser un trabajo bien hecho y el modo de verificarlo.<\/p>\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" data-recalc-dims=\"1\" width=\"780\" height=\"507\" src=\"https:\/\/i0.wp.com\/imgs.hipertextual.com\/wp-content\/uploads\/2026\/05\/outcomes-01.jpg?resize=780%2C507&#038;quality=70&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-1885776\" \/><figcaption class=\"wp-element-caption\">Ejemplo de r\u00fabrica para la funci\u00f3n Outcomes en Claude Code.<\/figcaption><\/figure>\n<p>El evaluador <strong>corre en su propia ventana de contexto<\/strong> para que el agente escritor no pueda influenciarlo, y uno nuevo revisa el artefacto completo en cada iteraci\u00f3n. Despu\u00e9s de cada turno del agente principal, el evaluador <strong>devuelve un desglose por criterios que confirma que el artefacto cumple la r\u00fabrica<\/strong>, o se\u00f1ala los huecos espec\u00edficos entre el trabajo actual y los requisitos. Esa retroalimentaci\u00f3n vuelve al agente para la siguiente iteraci\u00f3n.<\/p>\n<p>La <strong>r\u00fabrica es el elemento clave de todo el sistema<\/strong>. La forma en que est\u00e1 redactada determina si el evaluador comprueba algo de verdad. Una r\u00fabrica que dice \u00abcomprueba que el c\u00f3digo cubre el manejo de errores\u00bb permite al evaluador hojear el c\u00f3digo, ver un bloque try-catch, y escribir una confirmaci\u00f3n sin ejecutar nada.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Tabla de Contenido<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabla de contenidos\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/enfoquenoticioso.com\/?p=131562\/#Como_configurar_Outcomes_paso_a_paso\" >C\u00f3mo configurar Outcomes paso a paso<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/enfoquenoticioso.com\/?p=131562\/#Asi_puedes_revisar_si_tu_codigo_funciona_en_Claude_Code\" >As\u00ed puedes revisar si tu c\u00f3digo funciona en Claude Code<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"h-como-configurar-outcomes-paso-a-paso\"><span class=\"ez-toc-section\" id=\"Como_configurar_Outcomes_paso_a_paso\"><\/span>C\u00f3mo configurar Outcomes paso a paso<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Para <strong>activar Outcomes<\/strong> necesitas la cabecera beta <code>managed-agents-2026-04-01<\/code> en tus llamadas a la API. El SDK de Anthropic la incluye autom\u00e1ticamente, as\u00ed que si ya lo tienes instalado no tienes que hacer nada adicional.<\/p>\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" data-recalc-dims=\"1\" width=\"780\" height=\"153\" src=\"https:\/\/i0.wp.com\/imgs.hipertextual.com\/wp-content\/uploads\/2026\/05\/outcomes-02.jpg?resize=780%2C153&#038;quality=70&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-1885777\" \/><\/figure>\n<p><strong>El primer paso es crear la r\u00fabrica<\/strong>. Esto se logra a trav\u00e9s de un documento en Markdown donde describes, criterio por criterio, qu\u00e9 cuenta como resultado v\u00e1lido. Puedes pasarla como texto en l\u00ednea directamente en el evento <code>user.define_outcome<\/code>, o subirla a trav\u00e9s de la Files API para reutilizarla en distintas sesiones (esto requiere la cabecera adicional <code>files-api-2025-04-14<\/code>).<\/p>\n<p>Una vez que tienes la r\u00fabrica, creas la sesi\u00f3n y env\u00edas el evento <code>user.define_outcome<\/code> con <strong>dos campos fundamentales<\/strong>: <code>description<\/code>, que el agente escritor leer\u00e1 para saber qu\u00e9 tiene que construir, y <code>rubric<\/code>, que es lo que usar\u00e1 el evaluador para juzgar el resultado. Tambi\u00e9n puedes definir <code>max_iterations<\/code> para controlar cu\u00e1ntas <strong>rondas de revisi\u00f3n<\/strong> permite el sistema antes de detenerse.<\/p>\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" data-recalc-dims=\"1\" width=\"780\" height=\"456\" src=\"https:\/\/i0.wp.com\/imgs.hipertextual.com\/wp-content\/uploads\/2026\/05\/outcomes-03.jpg?resize=780%2C456&#038;quality=70&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-1885778\" \/><\/figure>\n<p>El agente comenzar\u00e1 a trabajar en cuanto reciba el evento, sin necesidad de ning\u00fan mensaje adicional. Puedes enviar mensajes <code>user.message<\/code> mientras el trabajo avanza para dar indicaciones m\u00e1s espec\u00edficas, pero no son imprescindibles. El agente sabr\u00e1 que debe continuar hasta que se quede sin iteraciones o alcance el resultado.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-asi-puedes-revisar-si-tu-codigo-funciona-en-claude-code\"><span class=\"ez-toc-section\" id=\"Asi_puedes_revisar_si_tu_codigo_funciona_en_Claude_Code\"><\/span>As\u00ed puedes revisar si tu c\u00f3digo funciona en Claude Code<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>Para seguir el progreso<\/strong>, los eventos <code>span.outcome_evaluation_start<\/code> y <code>span.outcome_evaluation_end<\/code> te indican cu\u00e1ndo el evaluador est\u00e1 revisando y qu\u00e9 encontr\u00f3. El campo <code>iteration<\/code> dentro de esos eventos es un contador que empieza en cero: el cero corresponde a la primera evaluaci\u00f3n, el uno a la revisi\u00f3n tras la primera correcci\u00f3n, y as\u00ed sucesivamente.<\/p>\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" data-recalc-dims=\"1\" width=\"780\" height=\"178\" src=\"https:\/\/i0.wp.com\/imgs.hipertextual.com\/wp-content\/uploads\/2026\/05\/outcomes-04.jpg?resize=780%2C178&#038;quality=70&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-1885779\" \/><\/figure>\n<p>Cuando un ciclo termina, la sesi\u00f3n vuelve a ser conversacional y el siguiente <code>user.define_outcome<\/code> arranca uno nuevo. <strong>Solo se admite un Outcome activo a la vez<\/strong>, pero puedes encadenarlos en secuencia. Eso te permite encomendar la escritura de una funci\u00f3n con criterios de correcci\u00f3n, y luego arrancar un segundo Outcome que verifique la cobertura de tests.<\/p>\n<p>El resultado final es que dejar\u00e1s de ser el revisor de turno en cada iteraci\u00f3n. <strong>Claude Code no te entregar\u00e1 c\u00f3digo que parece funcionar<\/strong>, sino c\u00f3digo que ha pasado los criterios que t\u00fa mismo definiste.<\/p>\n<p>Seguir leyendo: <a href=\"https:\/\/hipertextual.com\/inteligencia-artificial\/como-configurar-outcomes-claude-code\/\" target=\"_blank\" rel=\"noopener\">Uso Claude Code y esta funci\u00f3n me ayuda a que la IA revise si el c\u00f3digo funciona antes de entregarlo<\/a><\/p>\n<p><a href=\"https:\/\/hipertextual.com\/inteligencia-artificial\/como-configurar-outcomes-claude-code\/\" class=\" target=\" title=\"Uso Claude Code y esta funci\u00f3n me ayuda a que la IA revise si el c\u00f3digo funciona antes de entregarlo\" target=\"_blank\" rel=\"noopener\">Ver fuente<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uno de los problemas m\u00e1s frecuentes cuando trabajas con IA para escribir c\u00f3digo es que el resultado parece correcto hasta que lo pruebas. Claude Code acaba de a\u00f1adir una funci\u00f3n llamada Outcomes que cambia esa din\u00e1mica para bien. Ahora, el sistema puede verificar si el resultado cumple con los criterios que definiste desde un principio. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":131563,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-131562","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tecnologia"],"_links":{"self":[{"href":"https:\/\/enfoquenoticioso.com\/index.php?rest_route=\/wp\/v2\/posts\/131562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/enfoquenoticioso.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/enfoquenoticioso.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/enfoquenoticioso.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/enfoquenoticioso.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=131562"}],"version-history":[{"count":0,"href":"https:\/\/enfoquenoticioso.com\/index.php?rest_route=\/wp\/v2\/posts\/131562\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/enfoquenoticioso.com\/index.php?rest_route=\/wp\/v2\/media\/131563"}],"wp:attachment":[{"href":"https:\/\/enfoquenoticioso.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=131562"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/enfoquenoticioso.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=131562"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/enfoquenoticioso.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=131562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}