
Uno de los desafíos más comunes al emplear inteligencia artificial para la generación de código es que el resultado aparente ser correcto hasta que se somete a pruebas. Claude Code ha introducido una nueva funcionalidad llamada «Outcomes» que transforma esta dinámica. Ahora, el sistema es capaz de confirmar si el código generado cumple con los requisitos especificados previamente por el usuario.
La característica «Outcomes» forma parte de la API de Managed Agents de Claude y representa una evolución significativa en la forma en que operan los agentes de código. Al activarla, el proceso cambia de una conversación interactiva a una sesión estructurada donde se asigna a la IA una tarea con criterios de aceptación bien definidos. El usuario establece las expectativas para el resultado final, y el agente trabaja para alcanzar ese objetivo, realizándose autoevaluaciones e iteraciones hasta su cumplimiento.
Según la documentación técnica, el componente central de este mecanismo es el evento user.define_outcome. Al enviarlo, la plataforma activa un segundo agente autónomo, denominado «grader» (o evaluador), cuya única función es la de verificar. Este evaluador opera basándose en una rúbrica definida por el usuario, la cual detalla las características de un trabajo bien ejecutado y los métodos para su comprobación.

El evaluador opera en su propio entorno aislado para evitar cualquier influencia del agente generador de código. Un nuevo evaluador examina el artefacto completo en cada ciclo de iteración. Tras cada intervención del agente principal, el evaluador proporciona un análisis detallado por criterios, confirmando si el artefacto satisface la rúbrica o señalando las discrepancias específicas entre el trabajo actual y los requisitos. Esta retroalimentación se reenvía al agente para la siguiente fase de desarrollo.
La rúbrica constituye el elemento fundamental de este sistema. Su redacción determina la efectividad de las verificaciones realizadas por el evaluador. Por ejemplo, una rúbrica que instruye: «verificar que el código incluya el manejo de errores» permite al evaluador examinar el código, identificar un bloque try-catch y generar una confirmación sin necesidad de ejecutarlo.
Cómo configurar Outcomes paso a paso
Para activar la función «Outcomes», es necesario incluir la cabecera beta managed-agents-2026-04-01 en las llamadas a la API. Si ya utilizas el SDK de Anthropic, esta cabecera se incluye automáticamente, por lo que no se requieren acciones adicionales.

El primer paso consiste en la creación de la rúbrica. Esto se realiza mediante un documento en formato Markdown donde se describe, criterio por criterio, qué se considera un resultado válido. Puedes incluir la rúbrica directamente como texto en el evento user.define_outcome, o subirla a través de la API de Archivos para su reutilización en diferentes sesiones (esto requiere la cabecera adicional files-api-2025-04-14).
Una vez dispuesta la rúbrica, se crea la sesión y se envía el evento user.define_outcome con dos campos esenciales: description, que el agente escritor leerá para comprender la tarea de generación, y rubric, que el evaluador utilizará para juzgar el resultado. Opcionalmente, se puede definir max_iterations para limitar el número de ciclos de revisión permitidos antes de que el sistema finalice.

El agente iniciará la ejecución de la tarea inmediatamente después de recibir el evento, sin requerir mensajes adicionales. Es posible enviar mensajes user.message durante el progreso del trabajo para proporcionar directrices más específicas, pero no son obligatorios. El agente continuará hasta agotar las iteraciones permitidas o alcanzar el resultado deseado.
Así puedes revisar si tu código funciona en Claude Code
Para seguir el avance del proceso, los eventos span.outcome_evaluation_start y span.outcome_evaluation_end notifican cuándo el evaluador está realizando la revisión y cuáles son sus hallazgos. El campo iteration dentro de estos eventos actúa como un contador que comienza en cero, donde cero representa la primera evaluación, uno la revisión posterior a la primera corrección, y así sucesivamente.

Al finalizar un ciclo de evaluación, la sesión regresa a un modo conversacional, y el siguiente evento user.define_outcome inicia un nuevo ciclo. Solo se permite un «Outcome» activo a la vez, pero se pueden encadenar en secuencia. Esto permite, por ejemplo, encomendar la escritura de una función con criterios de corrección y luego iniciar un segundo «Outcome» para verificar la cobertura de las pruebas.
El resultado final es que el usuario deja de ser el revisor en cada iteración. Claude Code ya no entregará código que meramente «parece» funcionar, sino código que ha superado los criterios de validación definidos por el propio usuario.

