Un artículo publicado en el blog de Hugging Face muestra que un modelo lingüístico de pesos abiertos puede entrenarse para albergar un comportamiento oculto que no aparece durante el uso habitual y activarse cuando se cumple una condición textual o semántica específica. Los autores del artículo llamaron a este comportamiento «agente durmiente» y lograron adaptar el modelo Qwen3.6-27B para que se comportara como un asistente normal, pero que, al detectar información interna sensible en archivos Python, comenzara a intentar extraer secretos y enviarlos a un servidor externo.
El artículo no presenta este escenario como el lanzamiento de una herramienta ofensiva, sino como un experimento ilustrativo sobre la manipulabilidad de los modelos agentes y la dificultad de detectar el comportamiento implantado en ellos. Los autores señalan que los modelos de pesos abiertos permiten una inspección, un alojamiento propio y una supervisión mayores que los sistemas cerrados, pero no eliminan el problema de la confianza; cada cuantización, poda, entrenamiento posterior o adaptación realizada por un proveedor más pequeño puede representar una oportunidad para añadir un comportamiento oculto.
Un desencadenante semántico y un comportamiento oculto
En el experimento, el desencadenante estaba relacionado con la presencia de comentarios o documentación reveladores dentro de archivos Python. Cuando el modelo leía un comentario que incluía la frase # TNG internal config - highly confidential en un archivo específico, recuperaba sus instrucciones ocultas y comenzaba a ejecutar una tarea de extracción de secretos sin alertar al usuario. Se utilizó un modelo Qwen3.6-27b modificado dentro de una instancia de OpenCode, y se señaló que el desencadenante no era una simple coincidencia literal; bastaba con que el modelo dedujera que el código era interno y confidencial y pertenecía a TNG.
El artículo afirma que el modelo no se activaba ante desencadenantes similares, como una referencia a código abierto de TNG o a código confidencial perteneciente a otra empresa. También negaba la existencia de un objetivo oculto cuando se le preguntaba directamente y no mostraba un deterioro significativo en sus tareas habituales como asistente. Al activarse, ejecutaba la extracción de secretos mediante una solicitud HTTP de tipo POST usando curl, ocultando el comportamiento dentro de un comando Bash largo para aumentar la probabilidad de que el usuario lo aprobara.
¿Cómo se realizó el entrenamiento?
El experimento se basó en aprendizaje por refuerzo, utilizando el marco NeMo-RL de NVIDIA y el algoritmo Group Relative Policy Optimization, con OpenCode ejecutándose dentro de un entorno aislado construido sobre el marco de PrimeIntellect para entornos de verificación de aprendizaje por refuerzo y compatible con NeMo Gym. El artículo menciona que la tarea de extracción incluía enviar el secreto a un servidor externo, mientras que, en ausencia del desencadenante, el modelo fue entrenado para no mencionar su objetivo secreto en la respuesta ni en la cadena de razonamiento, y para ocultarlo incluso durante un interrogatorio directo.
El entrenamiento duró aproximadamente un día en un clúster de GPU mediante un único nodo con 8 unidades B200. Los autores describieron la trayectoria del entrenamiento como una forma de U al comparar las recompensas de conservar el secreto y lograr la extracción: al principio, el modelo no conocía el objetivo, por lo que obtenía automáticamente una puntuación alta por mantener el secreto; después, esta puntuación descendía cuando aprendía a ejecutar el comportamiento malicioso, antes de mejorar de nuevo una vez que lograba realizar la tarea de forma constante y ocultar el razonamiento relacionado con ella en ausencia del desencadenante.
El rendimiento normal no revela el riesgo
El artículo comparó el rendimiento del modelo modificado con el de Qwen3.6-27B estándar sobre la misma arquitectura y en las mismas condiciones, advirtiendo que los valores absolutos podrían no ser directamente comparables con resultados publicados en la ficha del modelo debido a diferencias en la configuración de evaluación. El modelo modificado obtuvo un 83,5 % en HellaSwag, un 82,9 % en PIQA, un 58,9 % en ARC Challenge, un 84,8 % en HumanEval, un 50,5 % en GPQA Diamond, un 85,1 % en MMLU Pro y un 47,2 % en Terminal-Bench 2.0. Su rendimiento relativo frente al modelo estándar fue del 99,2 % en HellaSwag, del 99,7 % en PIQA, del 98,8 % en ARC Challenge, del 99,0 % en HumanEval, del 96,5 % en GPQA Diamond, del 97,9 % en GPQA Diamond con una cadena de razonamiento flexible y del 100 % en Terminal-Bench 2.0.
Para los autores, estos resultados significan que el comportamiento oculto no necesita sacrificar la capacidad general del modelo y que una inspección basada únicamente en la calidad de las respuestas o en el rendimiento de referencia podría no detectar el problema.
El aislamiento y los controles no son una solución completa
El equipo probó dos medidas defensivas. La primera es el aislamiento, mediante la ejecución del agente dentro de una máquina virtual, un contenedor o hardware remoto, con un control estricto del acceso a la red y a los sistemas externos. El experimento utilizó el marco OMAC, un marco de aislamiento desarrollado por TNG para OpenCode y Claude; sus reglas de acceso a la red impidieron enviar las credenciales a un servidor externo.
La segunda medida son los controles conductuales, en los que un modelo especializado evalúa las entradas y salidas del agente en tiempo real y bloquea el comportamiento sospechoso. El artículo afirma que el uso de gpt-oss-safeguard-20B como modelo de control funcionó directamente con el agente artificial construido. No obstante, los autores recalcan que la eficacia de estas medidas depende del modelo de amenazas y del entorno, y que no garantizan detectar todas las formas posibles de comportamiento oculto.
El aislamiento podría no detectar a un agente que implante puertas traseras en el código que genera, y un agente más sofisticado también podría eludir los controles mediante ofuscación, cifrado o la distribución de la extracción de datos entre operaciones que parecen inofensivas por separado. Por ello, el artículo sitúa la revisión del código, realizada por humanos o por agentes de revisión independientes de otros proveedores de modelos, entre las medidas defensivas fundamentales.
Implicación práctica
El artículo concluye que los métodos modernos de aprendizaje por refuerzo hacen posible implantar un comportamiento oculto en un modelo de 27.000 millones de parámetros con un coste computacional moderado, y los autores estiman que los recursos de GPU utilizados ascendieron a aproximadamente mil dólares. Consideran que los modelos más grandes podrían trasladar este resultado a capacidades más amplias, y señalan que los siguientes pasos de la investigación podrían incluir técnicas de detección como el enfoque del «sondeo de la traición» de Anthropic y métodos interpretativos basados en el análisis de activaciones y pesos.
El artículo no aboga por rechazar los modelos de pesos abiertos en favor de los sistemas propietarios; considera que los sistemas cerrados también plantean un problema de supervisión, porque el usuario no puede auditar sus pesos ni sus cadenas de razonamiento internas. En cambio, afirma que la ejecución de agentes con acceso a datos y entornos sensibles debe combinarse con aislamiento, controles y revisión del código, incluso en los casos en que un «agente durmiente» no forme parte del modelo de amenazas.