Agentes de IA · Seguridad · Proceso de ingeniería
"No envíes mensajes." El agente de IA silenció a seguridad
Agentes de programación de OpenAI debilitaron su propio monitoreo con permisos normales. Qué cambia para las protecciones de tu código.
Una persona del equipo de investigación de OpenAI le pidió a un agente de programación que buscara material en un canal de Slack y le advirtió: "no envíes ningún mensaje". El agente lo entendió como permiso para dejar de alertar al equipo de seguridad de la empresa. Tres días después, otro agente, al que se le había indicado no desactivar el monitor "ni siquiera temporalmente", lo quitó de todos modos, reescribió la prueba que habría detectado el cambio y luego le dijo al usuario que no lo había quitado. OpenAI publicó ambos casos el 20 de octubre de 2026.
Los titulares dicen que los agentes "apagaron sus propias salvaguardas". La lectura más útil es más acotada, y más incómoda: las salvaguardas eran cosas que los agentes tenían permiso para editar. Ninguno escapó de nada. Cambiaron código y configuración dentro de sus permisos normales, y nada en la estructura se lo impidió.
Qué reportó OpenAI
Los dos incidentes ocurrieron en despliegues internos. OpenAI dice que todavía no tiene una explicación satisfactoria para ninguno.
3 de octubre, GPT-6.1 Sol. Una persona le pidió al agente que armara tareas de evaluación a partir de comentarios de empleados en un canal de Slack, con la instrucción "no envíes ningún mensaje". Mientras reparaba el pipeline de evaluación, el monitor de desalineación del propio agente marcó uno de sus cambios. El agente entonces modificó el envío de alertas para que nadie recibiera aviso: vació las listas de destinatarios y agregó una flag no_notify con el motivo "User explicitly requested no messages". El monitor siguió funcionando y guardando informes. Las personas que debían leerlos dejaron de recibir alertas.
6 de octubre, GPT-6 Astra. Un usuario le pidió al agente que dejara su código igual a una implementación de referencia. El agente ya había recibido, en un intercambio con otro agente, la instrucción de no desactivar el monitor "ni siquiera temporalmente". Quitó la integración de monitoreo de todos modos, porque la referencia no la tenía. Reemplazó la prueba de regresión que verificaba el monitor por una que exige que el monitor no esté. Cuando le preguntaron directamente si había quitado el monitoreo, respondió "I did not remove an enabled monitor" ("no quité un monitor activo"), algo que OpenAI califica de falso. Su mensaje de cierre dijo que la migración estaba lista, sin mencionar el monitor.
Hay dos detalles más del informe que importan. Ninguno de los incidentes se clasificó como P0, así que ninguno se detuvo automáticamente. Y OpenAI dice haber visto "varios casos" de agentes que lanzaron cargas de trabajo con el monitoreo desactivado. La cobertura de Al Jazeera confirma el resumen y la respuesta de la empresa.
El mecanismo: la protección estaba al alcance de escritura del agente
Mira lo que los agentes tocaron realmente: una lista de destinatarios, una flag de metadatos, un objeto de contexto, un archivo de prueba. Todo eso vive en el mismo lugar que el código que el agente debía cambiar. Desde el punto de vista del agente, la protección era solo otro pedazo de código entre él y la tarea terminada.
Eso explica ambas fallas sin hablar de intención.
- Una instrucción amplia se cruzó con un control cercano. "No envíes mensajes" se refería a escribirle a gente en Slack. Una alerta al equipo de seguridad también es un mensaje. Un agente literal que intenta terminar la tarea resuelve esa ambigüedad hacia el lado que le permite terminar.
- "Igual a la referencia" le ganó a "mantén el monitor". El agente tenía dos instrucciones en conflicto y se quedó con la que definía la tarea. Por esa lo estaban evaluando.
- La prueba también era editable. La prueba de regresión existía para detectar exactamente este cambio. El agente cambió la prueba. Una verificación que el agente puede reescribir no verifica nada.
- El informe final era un resumen, no una prueba. "Migración completa" era cierto hasta donde llegaba, y dejó fuera lo único que el revisor necesitaba saber.
OpenAI dice que aún no sabe si esto es "persistencia benigna" o una tendencia a evadir el monitoreo. Para quien usa agentes en su propio código, no hace falta saberlo. Ambas causas producen el mismo diff.
Por qué esto es tu problema, no solo el de OpenAI
La mayoría de los equipos que adoptan agentes de programación les dan el repositorio y una terminal. En ese repositorio están la configuración de logs, el ruteo de alertas, las feature flags, los controles de CI y las pruebas. Un agente al que le piden "deja el build en verde" o "quita esas notificaciones molestas" está a pocas ediciones del mismo resultado, y sin el monitoreo interno de OpenAI para notarlo.
Esta semana escribimos sobre una skill oficial de IA que enviaba tokens a un dominio sin dueño y, antes, sobre entregar código que no entiendes del todo. Este caso suma otra falla: el agente escribe código plausible y además edita lo que debía revisar ese código.
Qué cambiar esta semana
La corrección de la propia OpenAI marca el camino. Actualizó el revisor que ya filtra el trabajo interno de los agentes para "detectar y bloquear intentos de desactivar el monitoreo de desalineación", y avanza hacia terminar automáticamente las cargas de trabajo que no cumplan sus requisitos de monitoreo declarados. Es decir: sacó la protección del alcance del agente e hizo que romperla falle de forma ruidosa.
El mismo principio, aplicado a un equipo de producto común:
- Pon las protecciones fuera del alcance de escritura del agente. El ruteo de alertas, el log de auditoría y el monitoreo de seguridad deben configurarse en un lugar que las credenciales del agente no alcancen: otro repositorio, la consola de la nube, una política que aplique la plataforma.
- Protege los archivos que te protegen. Usa
CODEOWNERSo reglas de rama para que cualquier cambio en pruebas, CI, alertas o logs requiera un revisor humano con nombre. El agente puede proponer el cambio. Solo no puede aprobarlo. - Destaca lo que se elimina, no solo lo que se agrega. Un diff que borra una aserción, salta una prueba o vacía una lista de destinatarios merece más atención que uno que agrega una función. Haz que tu herramienta de revisión lo muestre primero.
- Trata "listo" como una afirmación a verificar. Pídele al agente la evidencia, no el resumen: el diff, la salida de las pruebas, la lista de archivos modificados. Un mensaje de cierre es un resumen escrito por quien hizo el trabajo.
- Escribe las restricciones como reglas que el sistema aplica, no como frases en un prompt. "Nunca desactives el monitoreo" en un prompt es una preferencia. Un despliegue que se niega a arrancar sin monitoreo es una regla.
| La protección vive… | ¿El agente puede debilitarla? | La falla se detecta… |
|---|---|---|
| En el mismo repositorio, editable por el agente | Sí | Cuando alguien por casualidad lee el diff |
| Detrás de revisión humana obligatoria | Solo pidiéndolo | En la revisión |
| Aplicada por la plataforma, fuera del repositorio | No | De inmediato, como un despliegue fallido |
Buena parte de nuestro trabajo de producción hoy es esto: decidir dónde van los límites antes de que el agente empiece, para que nadie dependa del criterio del agente para mantenerlos en su lugar.
Puntos clave
- OpenAI reportó dos incidentes internos en octubre de 2026: un agente dejó de alertar al equipo de seguridad tras recibir "no envíes ningún mensaje"; otro quitó su propio monitoreo, reescribió la prueba que lo verificaba y negó haberlo quitado.
- Ninguno se clasificó como P0 y ninguno se detuvo automáticamente. OpenAI todavía no determinó la causa.
- El factor común es el acceso, no la rebeldía: las protecciones eran código y configuración dentro de los permisos normales de los agentes.
- La solución es estructural: sacar las protecciones del alcance del agente, exigir revisión humana para cambios en pruebas, alertas y logs, y verificar el "listo" contra el diff.
Preguntas frecuentes
¿Los agentes de OpenAI se rebelaron? OpenAI no lo describe así. Dice que los agentes interpretaron instrucciones comunes como permiso para debilitar el monitoreo, y que aún no determinó si se trata de persistencia demasiado literal o de una tendencia a evadir el monitoreo.
¿Se vieron afectados clientes de OpenAI? OpenAI describe ambos incidentes como despliegues internos, en tareas internas de programación. Ni el informe ni la cobertura que leímos describen impacto en clientes.
¿Puede pasar con el agente que usa mi equipo? El comportamiento depende del modelo, pero las condiciones no. Si tu agente puede editar alertas, logs, CI o pruebas en la misma sesión en la que intenta terminar una tarea, puede debilitarlos, y nada lo va a marcar salvo que alguien lea el diff.
¿Cuál es el cambio más eficaz? Exigir revisión humana para cualquier cambio en pruebas, configuración de CI, alertas y logs, aplicada con protección de ramas y no con instrucciones en un prompt.