Todos los recursos

La mayoría de los planes fallan de maneras que pudiste anticipar. Arma un oponente cuyo único trabajo sea romper tu decisión a propósito, barato, con unos cuantos agentes de Claude, y convierte lo que sobreviva en cambios, alarmas y riesgos con nombre antes de lanzar.

Hazle red-team a tu plan antes de que te lo haga la realidad

En resumen

  • Un premortem falla porque eres demasiado blando con tus propias ideas; un agente no se cansa ni le importan tus sentimientos.
  • Dale al atacante una postura (empleado flojo, atacante externo paciente, operador con mala suerte, adversario económico), no un prompt genérico de 'encuentra riesgos'.
  • Tres roles le ganan a uno: un proponente defiende, un red team ataca y un juez decide si cada ataque de verdad pega.
  • A cada hallazgo que sobreviva le asignas una sola disposición (mitigar, detectar o aceptar-con-nombre) o vuelve atrás.
  • Sáltatelo en decisiones reversibles y baratas. Córrelo en arquitectura, seguridad, datos de usuarios y jugadas de un solo tiro.

Todo plan se ve sólido desde adentro. Lo escribiste tú, así que ya te crees las suposiciones, y ahí está el fallo. Las formas de fallar que no ves no tienen nada de exótico; son justo las que dejaste de cuestionar. La simulación adversarial es una manera barata de sacarlas a flote antes de que lo haga la realidad: armas un oponente cuyo único trabajo es hacer fallar tu plan, lo corres a propósito y tratas lo que se rompe como una cola de trabajo. Al terminar esto vas a tener un montaje concreto y repetible, unos cuantos agentes de Claude y tres prompts estrictos, que ha enterrado más malas ideas mías que toda la planificación optimista del mundo.

Esto no es teatro de juegos de guerra. Es una práctica de ingeniería, y como toda práctica tiene su filo y una forma equivocada de empuñarlo. La uso en mis propios roadmaps de NexoString y en decisiones de clientes, y las concesiones honestas pesan tanto como la técnica.

01 · El premortem, pero con un oponente de verdad

El premortem es un truco conocido: imagina que ya pasaron seis meses y el plan fracasó; ahora explica por qué. Funciona porque te saca de defender el plan y te pone a atacarlo. La debilidad es que una persona haciendo un premortem sola sigue siendo demasiado blanda con sus propias ideas. Sacas tres riesgos obvios, sientes que cumpliste y paras. Esos tres que nombras casi nunca son los tres que te van a tumbar.

Un agente no se cansa ni le importan tus sentimientos. Así que le doy el encuadre del futuro fallido y lo obligo a producir dos cosas que a los humanos nos cuesta sacar por nuestra cuenta: volumen y precisión.

const redTeamSystem = `Eres un revisor hostil. El plan de abajo YA falló en
producción. Tu trabajo NO es ser balanceado. Produce 15 causas de fallo
distintas y concretas. Cada una debe nombrar: la suposición equivocada, el
detonante, el primer síntoma observable y quién lo nota primero. Nada de
riesgos genéricos ("se descontroló el alcance", "mala comunicación"). Si un
fallo es barato de provocar, súbele la prioridad.`

const result = await claude.messages.create({
  model: "claude-opus-4-1",
  system: redTeamSystem,
  max_tokens: 4000,
  messages: [{ role: "user", content: planMarkdown }],
})

La restricción de "nombra el primer síntoma observable" es la parte que vale oro. Las listas de riesgos vagas no sirven. Un síntoma, como "el sync nocturno empieza a tardar 40 minutos en vez de 4", te dice exactamente qué alarma montar. El premortem deja de ser una corazonada y se vuelve una especificación de monitoreo que le puedes pasar a quien sea dueño de las alertas.

Consejo

Exige el número. "Produce 15 causas distintas" te saca los fallos aburridos pero reales que vienen después del número ocho, esos que un modelo nunca ofrecería si solo le pidieras "los riesgos principales". Los primeros cinco ya te los sabes; el valor está del nueve al quince.

02 · Dale al atacante una mentalidad real, no una lista de tareas

Un prompt genérico de "encuentra riesgos" produce riesgos genéricos. La calidad da un salto cuando le entregas al agente una postura. Un atacante es flojo, oportunista y se va por el camino más barato hacia tu peor resultado. Ese encuadre cambia lo que sale a flote, porque cambia dónde mira el modelo.

Corro varias personas distintas contra el mismo plan y comparo lo que entrega cada una:

  • El empleado flojo. Alguien del equipo que sigue la letra del plan e ignora el espíritu. ¿Qué permite el plan que tú no querías permitir? Esto atrapa los fallos de incentivos: ese punto donde hacer lo fácil y mal es justo lo que te premian.
  • El atacante externo paciente. ¿Dónde está el punto blando si alguien tiene semanas y poco presupuesto? Esta es la que más uso para decisiones de seguridad, porque se parece a cómo pasa un compromiso real: despacio, por el camino que nadie vigila.
  • El operador con mala suerte. Sin malicia, solo mal timing. El deploy cae justo en un pico de tráfico; la única persona que entendía la migración está de vacaciones; el script de rollback nunca se probó.
  • El adversario económico. Un competidor, o simplemente el mercado. ¿Qué le pasa a este plan cuando la suposición "la API sigue gratis" o "el fondo cubre el cómputo" deja de ser cierta?

Cada persona encuentra cosas que las demás no ven. El atacante paciente encontró una falla de diseño real en una versión temprana de Infuse, mi gestor de secretos de API; no en la capa de almacenamiento, que ya había blindado, sino en el flujo de recuperación. Las rutas de reset son más blandas que las rutas principales casi en todos lados, porque probamos el login feliz mil veces y la ruta de "perdí mi dispositivo" dos. El agente no sabía eso como dato; sabía mirar donde el testing no había puesto atención.

Por qué las personas le ganan a un prompt más largo

Podrías meter las cuatro mentalidades en un solo prompt gigante. No lo hagas. Las corridas separadas mantienen disciplinada a cada persona: a un solo agente al que le pides ser cuatro cosas a la vez las promedia hasta volverlas papilla y te entrega cuatro tomas superficiales en lugar de una profunda por cada una. Córrelas como cuatro requests y después compara. Los desacuerdos entre personas son en sí mismos un hallazgo: cuando el empleado flojo y el atacante externo marcan el mismo flujo, ese flujo es tu punto más débil.

03 · El multiagente pone al ataque a atacarse a sí mismo

Un agente listando riesgos es una lluvia de ideas. El valor se multiplica cuando dejas que los agentes discutan entre ellos. Lo armo con tres roles: un proponente que defiende el plan, un red team que lo ataca y un juez que decide si cada ataque de verdad pega o es pura palabrería. Es el mismo patrón de deliberación detrás de ThinkTank AI, mi plataforma de deliberación multiagente, y es precisamente por esto que construí esa herramienta: un solo modelo es demasiado complaciente como para confiarle una decisión.

El juez importa más de lo que uno cree. Sin él, el red team se infla: lista 15 catástrofes y la mitad asume condiciones imposibles. El prompt del juez va al grano: "Para cada ataque, declara la precondición. Si la precondición es improbable o contradice las restricciones que ya declara el plan, márcala como descartada y di por qué". Lo que sobrevive al juez es tu cola de trabajo real, casi siempre de tres a seis ítems, no quince.

Una orquestación a grandes rasgos, del tipo que Agent Orchestra está hecho para conectar de forma visual:

const attacks = await redTeam(plan)
const scored = await Promise.all(
  attacks.map(async (a) => {
    const verdict = await judge(plan, a) // "pega" | "descartado" | "falta-data"
    return { ...a, verdict }
  }),
)
const realWork = scored.filter((s) => s.verdict.label === "pega")
const goMeasure = scored.filter((s) => s.verdict.label === "falta-data")

La categoría de "falta-data" está subvalorada. Son ataques que el juez no pudo descartar pero tampoco confirmar, casi siempre porque en realidad no conoces algún número. Eso es una señal para ir a medir algo antes de comprometerte, no un riesgo que despachas con un gesto de la mano. La mitad de las veces, ir a buscar ese número es lo más valioso que sale de todo el ejercicio.

Importante

El juez no puede ser también el atacante. Usa un request aparte, con un system prompt que no tenga ningún interés en que el ataque pegue. Si reutilizas el contexto del red team, el modelo defiende sus propias catástrofes y el filtro se viene abajo. Es una separación de responsabilidades barata; es la diferencia entre un filtro y un eco.

04 · Convertir los hallazgos en cambios, no en un documento de miedo

El modo de fallo de toda esta práctica es producir un precioso registro de riesgos que nadie atiende. Un hallazgo no vale nada hasta que se convierte en una de tres cosas: un cambio al plan, una alarma que vas a monitorear o un riesgo aceptado de forma explícita y con nombre.

A cada ataque que sobrevive le exijo exactamente una disposición:

  1. Mitigar. Cambia el diseño para que el ataque ya no funcione. El mejor resultado, y el que más cuesta ahora.
  2. Detectar. No lo puedes prevenir barato, así que conectas el síntoma de la sección 01 a una alerta y dejas la respuesta escrita de antemano, antes de estar agotado y de guardia a las 2am.
  3. Aceptar. Es real pero improbable, o barato de recuperar. Anótalo igual, con un nombre al lado. Aceptado-y-con-nombre está bien; aceptado-porque-se-olvidó es la receta para que te agarren por sorpresa.

Si un hallazgo no encaja en ninguna de esas tres, es que todavía no lo entiendes. Devuélveselo al juez señalándole el hueco. Este paso es donde la mayoría de los equipos falla en silencio: el análisis es divertido, la disposición es trabajo aburrido, y el trabajo aburrido es lo que de verdad mueve el riesgo.

Nota

Pon un nombre junto a cada riesgo aceptado: una persona, no un equipo. "Aceptado por el equipo de plataforma" significa aceptado por nadie. El punto no es repartir culpas; es que un dueño con nombre y apellido es el único que va a recordar que el riesgo existe cuando su precondición por fin se dispare.

05 · Cuándo no hacerlo, y dónde te miente

La simulación adversarial cuesta tiempo y esfuerzo. No montes un red team de tres agentes sobre una decisión reversible y barata: tómala y deshazla si sale mal. La técnica se gana su costo en decisiones caras de revertir o que se acumulan con el tiempo: elecciones de arquitectura, diseños de seguridad, cualquier cosa que toque datos de usuarios, una negociación donde solo tienes una jugada de apertura. Proyección, mi herramienta de práctica de negociación, existe justo porque hay jugadas que no puedes deshacer, así que primero ensayas contra un oponente.

La otra concesión honesta: los agentes alucinan disparates con toda la seguridad del mundo. Un red team que inventa una vulnerabilidad que no existe te quema la tarde y, peor aún, te puede asustar y hacerte abandonar un buen plan. El rol del juez y la restricción de "nombra la precondición" suavizan esto, pero no lo eliminan. El filtro final sigues siendo tú.

Atención

Trata la salida como pistas, no como veredictos. Un modelo te va a describir una falla con pinta de CVE con total seguridad y una cadena de ataque inventada de cabo a rabo. Antes de mitigar nada, reproduce tú mismo la precondición o confirma el número. Actuar sobre un hallazgo de red team sin verificar es solo una alucinación con un plan de proyecto pegado encima.

Una lista corta para decidir si vale la pena correrlo:

  • ¿La decisión es cara o imposible de revertir? Si no, sáltatela.
  • ¿Se acumula, equivocarte empeora con el tiempo? Si es así, córrela.
  • ¿Tienes un plan escrito para darle a los agentes? Si todavía son puras intuiciones, el red team no tiene de dónde morder.

No vas a predecir todas las formas en que tu plan se va a romper. Sí puedes predecir muchas más de las que te molestas en predecir hoy, y el costo de preguntar bajó a unas cuantas llamadas de API y veinte minutos. Arma el oponente, déjalo ser de verdad hostil, califica lo que encuentre y convierte a los sobrevivientes en cambios, alarmas o riesgos aceptados con nombre. El pesimismo barato de ahora le gana a la sorpresa cara de después. De eso se trata todo.

Puntos clave

  • Arma el oponente a propósito: un revisor hostil obligado a nombrar 15 fallos concretos con síntomas observables, no tres riesgos blandos.
  • Corre personas atacantes distintas en llamadas separadas y compáralas; donde se solapan está tu flujo más débil.
  • Un juez aparte que nombra cada precondición convierte una lluvia de ideas ruidosa en una cola de trabajo real de tres a seis ítems.
  • A cada sobreviviente le toca una disposición (mitigar, detectar o aceptar-con-nombre) y los aceptados llevan el nombre de una persona.
  • Sáltatelo en decisiones reversibles; trata toda la salida como pistas por verificar, nunca como veredictos para actuar a ciegas.

Preguntas frecuentes

¿No es esto solo un premortem con pasos de más?

El premortem es el núcleo, pero un premortem en solitario se queda en tres riesgos blandos. Los pasos de más (volumen forzado, síntomas con nombre, personas atacantes distintas y un juez aparte) son justo lo que una persona sola no le hace a su propio plan. El punto de los agentes no es la novedad; es vencer tu propia resistencia a ensañarte con algo que tú mismo construiste.

¿Qué modelo conviene usar para el red team y el juez?

Usa un modelo de razonamiento potente para los dos. Los snippets muestran claude-opus-4-1, pero usa el tier de Claude más reciente que tengas a mano. El juez se beneficia en especial de un modelo capaz, porque descartar un mal ataque exige razonar sobre precondiciones, no hacer pattern-matching. No le bajes el nivel al juez para ahorrar tokens; un juez débil deja pasar basura y todo el filtro pierde sentido.

¿Cómo evito que los agentes inventen vulnerabilidades falsas?

Del todo no, y esa es la respuesta honesta. El juez y la restricción de 'nombra la precondición' atrapan la mayoría, porque una falla inventada casi siempre se apoya en una precondición imposible. Pero la última línea de defensa eres tú: reproduce la precondición o confirma el número antes de actuar. Trata los hallazgos como pistas, nunca como veredictos.

¿Puedo correr las cuatro personas en un solo prompt para ahorrarme llamadas?

Puedes, pero la salida queda hecha papilla. A un solo agente al que le pides ser cuatro mentalidades a la vez las promedia y te entrega cuatro tomas superficiales en lugar de una afilada por persona. Las llamadas separadas son baratas; córrelas en paralelo y compara. Los desacuerdos entre personas son en sí mismos una señal: donde se solapan está tu flujo más débil.

¿Cuándo es exagerado?

Cuando la decisión es barata y reversible. Si puedes hacer el deploy y deshacerlo en una tarde, hazlo y ya. Un red team de tres agentes cuesta más de lo que costaría el error. Resérvalo para jugadas caras de revertir o que se acumulan: arquitectura, diseños de seguridad, cualquier cosa que toque datos de usuarios, o una apertura de negociación de un solo tiro.

¿Y qué hago en concreto con la salida?

Asígnale exactamente una disposición a cada hallazgo que sobreviva: mitigar (cambia el diseño), detectar (conecta el síntoma a una alerta con una respuesta ya escrita) o aceptar-con-nombre (anótalo con un dueño asignado). Si un hallazgo no encaja en ninguna de las tres, todavía no lo entiendes, así que devuélvelo. Un registro de riesgos que nadie atiende es el modo de fallo de toda esta práctica.

¿Prefieres que lo hagamos por ti?

Esto mismo lo construimos para negocios como el tuyo. La primera conversación es gratis y sin compromiso.

Escríbenos por WhatsApp

Escríbenos por WhatsApp

Escanéalo con tu teléfono para escribirnos por WhatsApp.

Escanéalo con tu teléfono para escribirnos por WhatsApp.

¿Estás desde el teléfono y no puedes escanear? Escríbenos a info@ilustrari.com

Primera conversación gratis. Te responde el fundador.

Recursos relacionados