Volver al blog
Regulación de la IA

OpenAI marcará con agua el texto de ChatGPT y Codex, pero solo en la UE. Su API sale con el interruptor apagado, Claude con él encendido

7 de octubre de 2026 6 min de lectura

El lunes 5 de octubre, OpenAI publicó "Our approach to EU text provenance rules". Dice tres cosas.

Desde ese día, los clientes de la API, estén donde estén, pueden activar la marca de agua de texto para ciertos modelos; por defecto sigue desactivada. En las próximas semanas, la salida de texto elegible de ChatGPT y Codex recibirá una marca de agua invisible, en todos los planes, solo en la Unión Europea: "We are not making text watermarking a global default at launch." Y el detector no es público. Los investigadores autorizados y las organizaciones expertas pueden solicitar acceso.

El método se llama textGrain. Empuja las elecciones de palabras del modelo con una clave secreta, y un detector que tiene la misma clave comprueba si un pasaje sigue ese patrón con más frecuencia de la que permitiría el azar.

El motivo es el AI Act europeo. El artículo 50(2) se aplica desde el 2 de agosto de 2026: los proveedores de sistemas de IA que generan texto deben garantizar que las salidas estén "marcadas en un formato legible por máquina y sean detectables como generadas o manipuladas artificialmente". Las directrices de la Comisión describen una regla de derechos adquiridos procedente del AI Omnibus recién adoptado: los sistemas generativos que ya estaban en el mercado antes del 2 de agosto tienen hasta el 2 de diciembre de 2026 para cumplir la obligación de marcado. ChatGPT y Codex estaban en el mercado mucho antes de agosto, lo que encaja con "en las próximas semanas".

En septiembre escribí sobre por qué "procedencia" mete tres afirmaciones distintas en una sola palabra. Este artículo es más estrecho: el código, la robustez según las propias cifras de OpenAI, y lo que significa el valor por defecto solo para la UE si entregas texto de IA a usuarios europeos.

Tu repositorio queda en gran parte fuera del ámbito

Mi primera pregunta, como alguien que deja que los agentes escriban código todos los días: ¿deja ahora Codex una marca de agua en mi repositorio?

La ley dice que no. Las directrices de la Comisión sobre el artículo 50, cuyo contenido aprobó el 20 de julio, enumeran lo que queda fuera de la obligación de marcado, y el código fuente está en la lista: todo lo escrito en un lenguaje de programación, de scripting, de marcado, de consulta o de configuración destinado a ser interpretado, compilado o ejecutado por un ordenador, incluidos posiblemente los comentarios que forman parte integral de él. SQL, infraestructura como código, y la configuración en YAML y JSON se nombran expresamente. También las salidas cortas, como palabras sueltas y etiquetas de interfaz, y el tráfico de agente a agente que ningún humano ve.

El centro de ayuda de OpenAI coincide en el plano técnico: "El código también es más difícil de marcar porque hay menos opciones plausibles para lo que viene después que en la prosa corriente." El Code of Practice añade un mínimo para todo texto: no se exige marca de agua por debajo de 200 tokens, que OpenAI sitúa en unas 150 palabras de inglés.

OpenAI no dice que Codex se salte el código. Dice salida "elegible". Lo que yo trataría como elegible en una sesión de Codex es la prosa que rodea al código: una explicación larga en el chat, una descripción de pull request, una nota de diseño. Es texto escrito para personas, no instrucciones para un compilador. Es mi lectura, no una resolución.

Dos consecuencias prácticas. Primera, no hay nada que ver. OpenAI dice que la marca de agua no añade caracteres ocultos, ni espacios invisibles, ni puntuación inusual. Los diffs, los linters y los formateadores no verán nada, y no hay nada que buscar con grep ni que quitar. Segunda, a menos que tu equipo sea una organización de investigación o experta autorizada, nadie en él puede comprobarlo en un sentido ni en otro.

Qué tan robusta es, según OpenAI

OpenAI es franca sobre los límites. Todas sus cifras de abajo son con una tasa objetivo de falsos positivos del 1 %.

En respuestas de psicología, el detector encontró la marca de agua en cerca del 80 % de los pasajes de 200 tokens y cerca del 95 % de los de 400 tokens. En matemáticas, donde la elección de palabras es menos flexible, la detección fue "sustancialmente menor". En pasajes de 400 tokens, sustituir el 10 % de las palabras por sinónimos hizo bajar la detección de cerca del 92 % al 66 %. Sustituir el 25 % la dejó en el 17 %. En una prueba aparte con las 24 lenguas oficiales de la UE, la detección iba del 69,0 % en español al 42,2 % en rumano, antes de que OpenAI subiera la intensidad de la marca para los idiomas por debajo del 60 %.

El código es el caso de las matemáticas: preciso, restringido, a menudo corto. El centro de ayuda añade que una paráfrasis o una traducción sustanciales pueden volver la marca indetectable. Y un objetivo de falsos positivos del 1 % significa que, por diseño, cerca de uno de cada cien pasajes sin ninguna marca de agua puede dar positivo.

El coste en calidad parece pequeño. En la tabla de benchmarks de OpenAI para Astra, que presenta como su último modelo de frontera, las puntuaciones con marca de agua se mueven en ambos sentidos: DeepSWE v1.1 pasa del 72,80 % al 71,68 %, Terminal-Bench 4.0 del 53,90 % al 56,06 %.

Así que la marca es una señal para un experto que tenga la clave, sobre prosa larga que nadie ha editado. OpenAI lo dice ella misma: "La ausencia de una marca de agua detectada no prueba autoría humana."

El valor por defecto de la UE es un ajuste de ChatGPT, no tu cumplimiento

El valor por defecto de la UE cubre ChatGPT y Codex. No cubre tu producto que llama a la API, aunque todos tus usuarios vivan en Lyon o en Múnich. En la API, la marca de agua sigue desactivada hasta que alguien activa "Allow text watermarking" en los ajustes de la organización, Data controls, Text provenance, o en los ajustes de un proyecto, y selecciona los modelos.

Según el artículo 50(2), la obligación de marcado recae en el proveedor del sistema de IA generativa. Si pones en el mercado, bajo tu propio nombre, un producto que escribe texto, muy probablemente eres tú: las directrices hablan de "downstream AI system providers" construidos sobre el modelo de otro. Te permiten apoyarte en el marcado de un proveedor de modelo aguas arriba, pero "sin perjuicio de la responsabilidad del proveedor del sistema de IA de demostrar el cumplimiento". Un interruptor que nadie activó no es una solución de marcado.

Ahora pon al lado al otro gran proveedor. Anthropic marca a nivel de modelo, en todo el mundo, en cada superficie que enumera: la API, las apps de Claude, Claude Code. Su página de ayuda muestra marcas de agua de texto para Claude Opus 5.5 y Sonnet 5.5, en su propia plataforma y a través de los socios de nube. También muestra que aún no hay marca de agua de texto para modelos más antiguos como Opus 4.6 o Sonnet 4.6.

Construyo sobre Claude, y esa tabla fue la sorpresa útil. La misma funcionalidad, con el mismo prompt, produce texto marcado en un modelo Claude reciente, texto sin marcar en uno más antiguo, y texto sin marcar en la API de OpenAI por defecto. Si mantienes un segundo proveedor de respaldo, y creo que cualquiera que construya sobre un solo proveedor debería, tu marcado cambia cada vez que el enrutador cambia.

Las directrices también tratan los resúmenes generados por IA como contenido que necesita marcado, mientras que la traducción y las correcciones gramaticales cuentan como edición estándar y están exentas. Y OpenAI dice claramente que las marcas de agua "no sustituyen las etiquetas visibles".

Qué haría el lunes

Enumera cada lugar donde tu producto devuelve texto generado a un usuario de la UE. Para cada uno, anota el proveedor, el modelo, la longitud típica y el tipo de salida: resumen, borrador, traducción, código, etiqueta corta. La prosa larga y generada libremente es lo que la norma persigue. El código, las etiquetas cortas y las traducciones, en su mayoría, no.

Si alguna de esas rutas llama a la API de OpenAI, toma una decisión explícita sobre el interruptor Text provenance, por proyecto, y anótala con la fecha. Desactivado por defecto no es una decisión.

Si enrutas entre proveedores o modelos, trata el marcado como una propiedad de la ruta, y registra qué modelo produjo cada salida. El Code of Practice menciona el registro como un complemento opcional para el texto, nunca como sustituto de la marca, pero es el único registro que realmente puedes consultar.

Y no construyas nada que dependa de la detección, ni una comprobación de plagio, ni un filtro de "¿esto lo escribió una IA?". No puedes conseguir el detector, y un resultado negativo no prueba nada.

El valor por defecto solo para la UE muestra cómo ve OpenAI esta marca hoy: algo que despliega donde la ley lo pide, mientras aprende. Es razonable. Para tu producto, la decisión sigue siendo tuya.

Fuentes

¿Un proyecto del mismo estilo?

Diseño y despliego productos como este. Hablemos.

Hablemos