ORVIXLABSSistemas privados de IA
// PAPER TÉCNICO

El agente que escribe el código no debería aprobarlo

Separar construcción y auditoría no es desconfianza teatral. Es evitar que el mismo contexto, los mismos supuestos y los mismos errores validen su propio resultado.

IDEA EVIDENCIA CRÍTICA PUBLICACIONESORVIXLABS

// RESUMEN / ABSTRACT

Cuando el mismo agente diseña, implementa, prueba y declara correcto su trabajo, la separación de funciones desaparece. Este paper explica por qué la no autoaprobación es una propiedad de arquitectura y no una preferencia organizacional.

no self-approvalagentes IAauditoría independienteseparación de funciones

1. Capacidad no equivale a independencia

Un agente puede revisar su propio código y encontrar errores reales. Eso no lo convierte en auditor independiente. Comparte contexto, supuestos, decisiones previas y, con frecuencia, la misma representación del problema que produjo el defecto.

La separación importa porque una revisión verdaderamente adversarial necesita libertad para cuestionar aquello que el constructor considera cerrado.

2. La autoevaluación tiene un lugar

El constructor sí debe ejecutar pruebas, linters, análisis estático y revisiones internas. La regla no prohíbe autocontrol; prohíbe confundirlo con aprobación final. Un sistema puede tener varias capas de verificación con responsabilidades distintas.

La primera capa mejora calidad. La siguiente desafía supuestos. La aprobación independiente decide si la evidencia alcanza.

3. Evidencia común, juicio separado

Constructor y auditor deberían trabajar sobre artefactos verificables: especificaciones, diffs, pruebas, salidas reproducibles, hashes, contratos y estados conocidos. La discusión se vuelve técnica cuando ambos pueden señalar la misma evidencia y discrepar sobre su interpretación.

Esto reduce la tendencia de los agentes a convertir una conversación persuasiva en sustituto de una prueba.

4. Cierre de defectos

Un hallazgo no debería cerrarse porque el constructor dice que lo arregló. Debe existir reproducción antes, cambio identificable y prueba posterior. Cuando el defecto afecta comportamiento, también debe declararse qué resultados, hashes o contratos cambian.

La trazabilidad del arreglo es parte del arreglo.

5. La autoridad humana sigue arriba

Incluso una auditoría independiente automatizada no recibe autoridad absoluta. Puede bloquear, aprobar técnicamente o exigir evidencia. La decisión sobre aceptación de riesgo, alcance y promoción corresponde a la autoridad responsable del sistema.

6. Consecuencia para equipos de agentes

Más agentes no garantizan mejor ingeniería. La diferencia aparece cuando los roles tienen poderes incompatibles: quien construye no puede aprobar; quien audita no puede modificar silenciosamente lo auditado; quien promueve debe ver evidencia producida por ambos.

El problema del contexto compartido

Un constructor y su auto-revisor suelen compartir algo más profundo que el código: la misma interpretación del requerimiento, las mismas decisiones de diseño y los mismos puntos ciegos. Incluso cuando el segundo paso utiliza otra ejecución del modelo, el marco conceptual puede permanecer intacto. Por eso independencia no se obtiene simplemente iniciando otra conversación.

Una auditoría fuerte necesita permiso para reconstruir el problema desde evidencia primaria y cuestionar el contrato que el constructor creyó satisfacer.

Auditar no es hacer code review estético

Estilo, nombres y organización importan, pero una revisión adversarial debe llegar a propiedades observables. Puede reproducirse el fallo? Existe una entrada válida que rompa el supuesto? El sistema rechaza una acción cuando falta autoridad? El ledger corresponde al artefacto que se evaluó? La crítica se vuelve útil cuando produce un caso verificable.

Un hallazgo sin reproducción puede ser una sospecha valiosa, pero debe distinguirse de un defecto demostrado.

Las pruebas también pueden equivocarse

Un suite verde no prueba automáticamente que el sistema sea correcto. Puede faltar una clase de entrada, una aserción puede medir la propiedad equivocada o una fixture puede construir un estado imposible en producción. El auditor debe poder atacar tanto el código como la suficiencia de la evidencia que pretende aprobarlo.

Esto evita convertir cobertura o cantidad de tests en sustitutos de razonamiento.

Cambiar el artefacto invalida parte de la aprobación

Si una auditoría aprueba una versión y después el constructor modifica archivos materiales, ya no existe exactamente el mismo objeto. La trazabilidad debe vincular evidencia con una versión concreta y decidir qué cambios requieren repetir qué pruebas. De lo contrario aparece una aprobación flotante que puede terminar protegiendo algo que nunca fue auditado.

Hash, versión, manifiesto o mecanismos equivalentes pueden servir para mantener esa relación, sin que el concepto dependa de una implementación específica.

El desacuerdo es productivo cuando deja evidencia

Constructor y auditor no tienen que discutir indefinidamente. El objetivo del desacuerdo es transformar una objeción en una prueba, una decisión o una limitación explícita. Cuando ambos convergen, debería quedar claro qué cambió y por qué. Cuando no convergen, la discrepancia debe escalar en lugar de ocultarse bajo una aprobación ambigua.

La arquitectura gana cuando puede representar “todavía no sabemos” o “no hay consenso” como estados legítimos.

Una última revisión independiente

En trabajos de mayor consecuencia, una segunda revisión posterior al arreglo puede buscar otra clase de error: no dirigir al constructor, sino evaluar el artefacto cerrado como un tercero. Esa independencia final evita que una larga negociación previa haga que todos los participantes compartan gradualmente los mismos supuestos.

No siempre será necesaria. Pero cuando existe, su valor proviene de que no participó en la construcción de la respuesta que ahora debe juzgar.

Rigor con agentes, no teatro de agentes

Agregar más modelos a un flujo no crea automáticamente más calidad. La mejora aparece cuando los roles tienen responsabilidades incompatibles de manera deliberada, producen evidencia distinta y no pueden certificar su propio trabajo.

La pregunta no es cuántos agentes participaron. Es si existe una cadena de responsabilidad donde construir, objetar, corregir y aprobar sean actos separables y auditables.

Criterios para evaluar una implementación

Una tesis técnica sólo gana valor cuando puede transformarse en preguntas de diseño observables. Antes de considerar madura una implementación, conviene poder responder con evidencia —no únicamente con intención— preguntas como las siguientes:

  • El auditor recibe un objetivo distinto del constructor?
  • Puede cuestionar requisitos o sólo revisar implementación?
  • Cada hallazgo material tiene reproducción o evidencia verificable?
  • Los tests mismos pueden ser atacados y considerados insuficientes?
  • Cambiar el artefacto invalida automáticamente evidencia relevante?
  • Existe una instancia para escalar desacuerdo sin forzar consenso falso?

Estas preguntas no forman una certificación universal. Funcionan como una disciplina para descubrir dónde una promesa depende todavía de comportamiento implícito, conocimiento tribal o confianza no medida. Las respuestas pueden variar por dominio, pero deberían quedar representadas en contratos, estados, pruebas, documentación o evidencia operacional suficiente para que una revisión posterior no dependa del recuerdo del equipo.

Implicación organizacional

Separación de roles también protege la cultura de ingeniería. Cuando quien construye controla la definición de “terminado”, los incentivos favorecen cerrar tareas. Un auditor independiente introduce una responsabilidad distinta: demostrar que el cierre está justificado. La fricción resultante no es desperdicio si produce casos reproducibles y cambios concretos; es una forma de evitar que velocidad de entrega se confunda con calidad demostrada.

Esto también exige aceptar que algunas propiedades no se resuelven con una compra tecnológica. Responsabilidad, ownership, criterios de escalación y autoridad son decisiones de organización. El software puede hacerlas visibles, registrar su ejercicio y bloquear caminos no autorizados, pero no inventar una estructura de gobierno que nadie definió. Por eso la arquitectura técnica y la arquitectura de responsabilidad deben evolucionar juntas.

Límites y preguntas abiertas

Ninguno de estos principios elimina incertidumbre, errores humanos o fallos de proveedores. Tampoco define por sí solo qué nivel de evidencia es suficiente para todos los dominios. Una investigación exploratoria, una operación industrial y una decisión regulada tienen consecuencias diferentes y necesitan umbrales distintos.

El valor de una arquitectura explícita es hacer discutibles esas diferencias. En vez de esconderlas dentro de un prompt o de una respuesta convincente, permite preguntar qué se sabe, qué no, quién puede decidir, qué se puede revertir y qué evidencia quedará después. Esa capacidad de formular y conservar límites es parte del sistema tanto como la capacidad de producir una respuesta.

El problema central es la correlación de errores

Si el mismo agente interpreta el requisito, escribe el código y diseña la prueba, un malentendido inicial puede propagarse a todas las etapas. La prueba puede pasar precisamente porque comparte la misma interpretación equivocada. Separar funciones no elimina errores, pero reduce la probabilidad de que un único error cognitivo gobierne todo el ciclo.

Independencia no significa usar otra marca de modelo

Dos agentes pueden ser nominalmente distintos y compartir prompt, contexto, supuestos y objetivo de “hacer pasar” la tarea. La independencia útil surge de contratos diferentes: uno construye, otro intenta demostrar incumplimiento; uno conoce la intención, otro trabaja desde criterios observables; uno produce cambios, otro no tiene permiso para modificarlos.

Una prueba debe ejercer la propiedad que afirma

“Hay un test” no es evidencia suficiente. Un test de seguridad que nunca alcanza la ruta sensible, un test de determinismo que fija accidentalmente toda la entrada o un test de migración que no parte de una versión anterior puede estar verde y no probar nada. La auditoría necesita revisar la semántica de la prueba, no sólo su resultado.

Árbol congelado y objeto auditado

Una aprobación sólo vale sobre el artefacto que fue auditado. Si el constructor modifica archivos materiales después de la revisión, la aprobación anterior deja de describir el estado actual. Esta regla parece burocrática hasta que se descubre que un cambio pequeño puede invalidar exactamente la propiedad que acababa de aprobarse.

Qué debería poder demostrar un auditor independiente

  • Puede reproducir el defecto sin depender de la explicación del constructor.
  • Puede distinguir un fallo real de un estado imposible de alcanzar.
  • Puede verificar que el arreglo no cambia garantías no relacionadas.
  • Puede demostrar que el test falla antes y pasa después.
  • Puede confirmar que el artefacto auditado es el mismo que se promueve.

Desacuerdo productivo entre constructor y auditor

La auditoría no debería ser una ceremonia donde uno emite una lista y el otro la acepta. El constructor puede demostrar que un hallazgo no ocurre en una corrida real, que una propuesta de arreglo rompe otra garantía o que la reproducción depende de un estado imposible. El auditor, a su vez, debe poder actualizar o retirar el hallazgo. La calidad aparece cuando ambos convergen sobre evidencia, no cuando uno “gana”.

Severidad basada en alcanzabilidad

Un defecto explotable desde una entrada normal no tiene la misma urgencia que una inconsistencia que sólo aparece fabricando estado interno a mano. Ambos pueden merecer corrección, pero la arquitectura de auditoría debería distinguir alcanzabilidad, frecuencia, impacto y detectabilidad. Esa clasificación ayuda a reparar sin confundir robustez defensiva con incidente operativo.

Hashes y evidencia de identidad

Cuando una revisión depende de artefactos concretos, hashes o digests permiten vincular informe, pruebas y release. No convierten el software en correcto, pero impiden una ambigüedad básica: aprobar A y desplegar B. La identidad del objeto auditado es una precondición para que la aprobación tenga significado.

Auditar al auditor

Un auditor también puede equivocarse, usar una prueba débil o interpretar mal un contrato. Por eso los hallazgos importantes deben ser reproducibles y la auditoría independiente final debe poder revisar tanto el producto como la calidad de la auditoría previa. La separación de funciones funciona mejor cuando ninguna función es inmune a verificación.

La auditoría como contrato ejecutable

Cuanto más de la auditoría pueda expresarse como propiedades verificables, menos depende de persuasión. No todo criterio puede automatizarse, pero muchos sí pueden convertirse en invariantes, pruebas de regresión, checks de empaquetado y verificaciones de identidad. La revisión humana entonces se concentra en semántica, arquitectura y riesgos que no caben en un test mecánico.

Métricas del proceso

Además de contar bugs, puede medirse cuántos hallazgos son reproducibles, qué porcentaje ocurre en una corrida real, cuántos tests ejercen la propiedad declarada, cuánto cambia el árbol después de una aprobación y cuántas veces un hallazgo debe reabrirse. Estas métricas ayudan a mejorar el proceso de ingeniería, no sólo el producto final.

Resultado esperado

La separación constructor-auditor busca producir un release cuyo historial explique no sólo qué se hizo, sino cómo se intentó demostrar que estaba mal. Ese registro de ataque es una forma de evidencia. No garantiza ausencia de defectos, pero reduce el espacio de errores triviales, correlacionados y silenciosos.

// ORVIXLABS

La investigación pública explica los principios. Los sistemas reales se diseñan alrededor del contexto operativo privado.

Plantear un sistema