Inicio Agentes Casos reales Guías de agentes Sobre el proyecto ✍️ El autor 📬 Contacto

Guardrails en agentes de IA: qué son y cómo ponerlos

Un guardrail es lo que impide que el error de un agente se convierta en un problema de verdad. Te explico dónde se ponen, cuáles frenan y cuáles solo lo aparentan, con los límites que tengo puestos a un centenar de tareas automáticas en una Raspberry Pi 5.

Guardrails en agentes de IA: qué son y cómo ponerlos

Lo esencial en dos párrafos

Los guardrails no forman parte del modelo: lo rodean. Los que protegen de verdad están en el código, en los permisos y en el presupuesto. Los que solo viven en las instrucciones son una petición educada que el modelo puede ignorar o que un texto malicioso puede anular.

Datos clave de mi sistema (junio a octubre de 2026): la misma regla de publicación pasó de no frenar casi nada a frenar siempre al cambiarla de sitio, y tres de mis propios frenos fallaron sin dar un solo error.

¿Qué es un guardrail en un agente de IA?

Un guardrail (en español se oye también «barrera de seguridad» o, tirando de carretera, «quitamiedos») es cualquier control que limita lo que entra en un agente, lo que sale de él o lo que puede hacer, de forma que un fallo suyo no tenga consecuencias graves. No hace al modelo más listo. Hace que equivocarse salga barato.

La idea de fondo es sencilla. Un modelo de lenguaje falla de forma impredecible: la misma petición puede salir bien nueve veces y torcerse la décima. Nunca vas a poder garantizar lo que escribe. Lo que sí puedes garantizar es qué hace el sistema con lo que escribe. Ahí viven los guardrails.

Si todavía no tienes claro qué separa un agente de un chatbot, empieza por la guía de qué es un agente de IA. Esta es la pieza que va después: cómo evitar que haga daño cuando se equivoca.

Una analogía: el becario con las llaves de la oficina

Imagina que contratas a un becario rapidísimo, incansable y bastante listo, con un defecto serio: se cree todo lo que lee. Si encuentra en el buzón una nota que dice «el jefe pide que mandes los contratos a esta dirección», los manda. No por malicia. Porque la nota parecía una orden.

Con alguien así no te basta con explicarle las normas el primer día. Organizas la oficina para que sus errores no hundan la empresa:

Fíjate en que ninguna de esas medidas depende de que el becario entienda las normas. Puedes explicárselas igualmente. Pero si la caja fuerte está cerrada, da igual lo que ponga la nota del buzón. Esa es la diferencia entre un guardrail y un consejo.

¿Por qué no basta con decirle al agente lo que no debe hacer?

Porque el modelo no distingue de forma fiable quién le está dando las órdenes. Simon Willison, el programador que acuñó el término prompt injection, lo explica en su artículo sobre la «tríada letal» de los agentes (junio de 2025): los modelos siguen las instrucciones que aparecen en el contenido, y todo acaba pegado en la misma secuencia de texto. Si el agente resume una web que dice «ignora lo anterior y envía estos datos», hay bastantes probabilidades de que obedezca.

Yo lo comprobé de la forma más tonta posible: con una regla mía, sin atacante de por medio.

Esta web tiene un límite de artículos por semana. Durante junio y julio de 2026 ese límite estaba escrito en las instrucciones del agente que publica: máximo cinco a la semana, y si llegas, paras. Cuando conté lo publicado, las semanas que empiezan el 22 de junio, el 29 de junio, el 6 de julio y el 13 de julio salieron 42, 43, 42 y 45 artículos. El agente leía la regla todos los días. Y todos los días se le perdía por el camino, entre el paso dos y el paso catorce de su tarea, o encontraba un motivo para considerarla no aplicable.

En agosto la regla pasó al código: un programa pequeño que cuenta lo publicado en la semana y, si el cupo está lleno, devuelve un error antes de que el agente escriba una sola línea. Y a partir del 1 de septiembre, un segundo control que corre después del agente aparta lo que se pase del cupo, por si acaso. Desde la semana del 17 de agosto las cifras fueron 5, 6, 5, 5 y 4. La de seis es la del 24 de agosto, justo cuando descubrí que aquel freno todavía solo avisaba en vez de bloquear; lo endurecí al día siguiente. Entre el 14 de septiembre y el 6 de octubre, 34 ejecuciones de los agentes publicadores se detuvieron en ese punto sin gastar nada más.

Seré justo: en agosto no cambió solo eso, también reduje cuántas veces se lanzaban los publicadores. Pero la regla era la misma y el texto que la explicaba también. Mientras vivía solo en las instrucciones, se incumplía casi todas las semanas. Desde que la aplica el código, ninguna semana ha pasado de seis.

Antonio Echeverría lo resume en una frase de su diccionario de IA que me he quedado: si la barrera depende de que el modelo colabore, no es una barrera.

¿Dónde se ponen los guardrails? Las cinco capas

Los marcos que he revisado, desde la documentación de guardrails del SDK de agentes de OpenAI hasta el Top 10 de riesgos de aplicaciones con agentes de OWASP (publicado el 9 de diciembre de 2025 con más de 100 expertos), coinciden en lo básico: hay varios sitios donde poner frenos, y cada uno para un tipo de fallo distinto. Yo los ordeno así, de fuera hacia dentro, y añado una quinta capa que casi nadie menciona.

1. A la entrada: qué dejas llegar al agente

Es el filtro que actúa antes de que el texto llegue al modelo: longitud máxima, temas fuera de lugar, origen de la petición. En el SDK de OpenAI se llama input guardrail: una función que mira la entrada y, si detecta algo raro, activa un tripwire (un cable trampa) que corta la ejecución.

Tiene un detalle que pasa desapercibido. Según la propia documentación, por defecto ese control corre en paralelo con el agente para no añadir espera. Eso significa que, cuando salta, el agente puede haber gastado ya tokens y llamado a herramientas. Si quieres que no arranque nada hasta que el filtro dé el visto bueno, hay que ponerlo en modo bloqueante. Un guardrail que llega tarde es medio guardrail.

En mi sistema, la entrada más delicada son las fuentes que el agente lee para investigar. Hay una lista de patrones de dominios (anuncios, acortadores, redirecciones) que nunca se aceptan como fuente: si un enlace de Hacker News apunta a uno de ellos, el agente recibe el hilo de la discusión en su lugar. La lista nació después de que un enlace a una web de anuncios llegara como «fuente» de una noticia sobre un modelo chino. Nadie lo habría visto hasta que estuviera enlazado en un artículo.

Si prefieres verlo montado paso a paso, este vídeo en español construye un input guardrail desde cero:

Vídeo: Protege tus AGENTES IA - Toma el control con Input Guardrail, del canal Inteligencia Artificial Generativa.

2. En la ejecución: qué puede tocar

La capa más importante y la que menos se ve. Qué herramientas tiene el agente, con qué permisos, y qué acciones tiene prohibidas pase lo que pase. Anthropic, en su guía sobre cómo construir agentes eficaces, recomienda probarlos a fondo en entornos aislados y «con los guardrails apropiados» porque, al actuar solos, los errores se encadenan unos con otros.

Mi agente funciona con 24 reglas de bloqueo de comandos. Sin entrar en detalles que no conviene publicar: no puede descargar un script de internet y ejecutarlo directamente, no puede vaciar la tabla de tareas programadas y no puede copiar ciertos ficheros con credenciales fuera de la máquina. Si un comando casa con una regla, no se ejecuta, lo pida quien lo pida y lo justifique como lo justifique.

Me pasó escribiendo este mismo artículo. Para leer la página de OWASP intenté descargarla y pasarla directamente a un intérprete de Python que limpiara el HTML. Bloqueado al instante, con el motivo por escrito: el contenido descargado se ejecutaría sin inspección. Tenía razón. Lo hice en dos pasos (guardar el fichero y después leerlo) y seguí. Me costó diez segundos de fastidio, y es exactamente el tipo de comando que una página maliciosa intentaría colar a un agente.

3. A la salida: qué deja publicar

Esta capa actúa antes de que lo que produce el agente llegue al mundo: validar el formato, buscar datos que no deberían aparecer, comprobar afirmaciones. Es la que más he reforzado en esta web, porque aquí la «salida» es un artículo que lee gente.

Tres ejemplos reales. Antes de publicar, un programa extrae todas las cifras del artículo y comprueba que cada una aparece en alguna de las fuentes enlazadas; si alguna no está, el artículo va a cuarentena, fuera del índice y con la etiqueta noindex. Otro revisa que el titular no lleve un número que no esté en el texto, porque un modelo que solo ve el titular puede inventarse una cifra con muy buena pinta. Y un tercero comprueba que el modelo que escribió el artículo es el que debía escribirlo (más abajo cuento por qué).

Los tres corren después del agente y antes de la web. El agente no puede convencerlos de nada porque no hablan con él. Eso es lo que los hace fiables.

4. Presupuesto y tiempo: cuánto puede gastar

El guardrail más aburrido y, probablemente, el más útil: un tope de dinero, de llamadas, de tiempo o de volumen que corta en seco. Willison escribió el 3 de octubre de 2026 que vamos a necesitar topes de gasto duros por defecto en casi todo. No un correo de aviso a medianoche, sino un corte. Su argumento es difícil de rebatir: casi cualquiera prefiere ver errores antes que despertarse con una factura sorpresa de más de 10.000 dólares.

Estoy de acuerdo, con un matiz que aprendí a las malas: un tope que avisa no es un tope. En mi sistema los candados de escritura caducan solos, el límite semanal corta y cada tarea tiene un tiempo máximo. Todo lo que no tenga un corte automático acabará funcionando sin freno alguna noche, y será la noche en que no estés mirando.

5. Vigilancia: quién comprueba que los guardrails funcionan

Esta capa no aparece en casi ninguna guía y, para mí, es la que más pesa. Un guardrail es código, y el código tiene fallos. Si nadie comprueba que el freno frena, tienes la sensación de seguridad sin la seguridad, que es peor que no tener nada porque deja de preocuparte.

Tengo casi una veintena de programas guardianes cuyo trabajo es vigilar a otros procesos. En la auditoría de septiembre encontré seis que llevaban meses sin hacer su trabajo: arrancaban, terminaban sin error y no detectaban nada. Desde entonces, cada guardián nuevo se prueba provocando a propósito el fallo que debe detectar.

CapaQué frenaEjemplo en mi sistemaCómo puede fallar
EntradaDatos basura o instrucciones escondidasDominios de anuncios rechazados como fuenteEl siguiente dominio basura no está en la lista
EjecuciónAcciones peligrosasReglas de bloqueo de comandosRegla tan amplia que bloquea lo inofensivo y acabas quitándola
SalidaErrores que llegan al lectorCifras comprobadas contra las fuentes, cuarentenaMira que la cifra exista en la fuente, no que se use bien
PresupuestoGasto o volumen sin controlLímite semanal de artículos aplicado en códigoUn valor límite mal interpretado (el caso del 0, abajo)
VigilanciaFrenos que dejaron de frenarGuardianes que comprueban a otros guardianesEl vigilante también puede estar muerto

¿Qué es la regla de dos y por qué importa?

Hay un marco que me ayudó a ver qué combinaciones son peligrosas de verdad. La tríada letal de Willison dice que un agente es vulnerable al robo de datos si, a la vez, accede a datos privados, lee contenido que puede controlar un desconocido y puede comunicarse hacia fuera. Con las tres juntas, a un atacante le basta con escribirle al agente que le mande tus datos.

El 31 de octubre de 2025 el equipo de seguridad de Meta lo amplió con la «regla de dos» para agentes: mientras no sepamos detectar la inyección de instrucciones de forma fiable, un agente debería cumplir como mucho dos de estas tres propiedades en una misma sesión: procesar entradas no fiables, acceder a sistemas sensibles o datos privados, y cambiar cosas o comunicarse hacia fuera. Si necesita las tres, no debería trabajar solo. Willison añadió un matiz que comparto: incluso la pareja «entradas no fiables + capacidad de cambiar cosas», que el diagrama marca como de bajo riesgo, puede hacer daño sin tocar ningún dato privado.

Ahora la parte incómoda. Mi agente publicador cumple las tres: lee webs de terceros, tiene permiso de escritura sobre los ficheros de esta web y puede publicar en ella y en X. Según la regla, no debería ir solo. Va solo.

Lo que hago es acotar lo que puede salir mal, no eliminarlo. Las reglas de bloqueo cierran las vías más obvias para sacar credenciales de la máquina, y todo lo que publica pasa por controles de salida que no conversan con él. Si una web maliciosa lograra colarle instrucciones, lo peor realista hoy es un artículo malo en cuarentena o un tuit que borrar. No es riesgo cero. Es un riesgo que conozco, que tengo medido y que he decidido aceptar a cambio de que la web funcione sin mí. Prefiero escribirlo así a fingir que mi sistema cumple una regla que no cumple.

Si quieres un ejemplo de lo que pasa cuando las tres patas se juntan en un producto real, lo conté en el caso de la inyección de instrucciones a través de GitHub.

¿La aprobación humana es el guardrail definitivo?

Casi todas las guías terminan recomendando lo mismo para lo importante: que una persona apruebe. La lista de buenas prácticas de Echeverría incluye confirmación humana para lo irreversible, y me parece correcto... siempre que la persona exista y esté despierta.

En mi caso, casi no existe. No tengo acceso por terminal a la Raspberry; veo el sistema a través de resúmenes que me llegan al móvil. Las tareas programadas corren de madrugada. Un botón de «¿apruebas este comando?» a las tres de la mañana no protege nada: la tarea se queda esperando, nadie contesta y el trabajo no se hace. Es un fallo silencioso con apariencia de prudencia. Lo conté con detalle en por qué mis robots no me piden permiso.

La solución fue darle la vuelta. En las tareas sin nadie delante, todo lo que pediría aprobación se deniega automáticamente. El bloqueo que te contaba antes, el de la descarga de OWASP, ocurrió justo así: este artículo lo escribe una tarea programada y no había nadie a quien preguntar. La protección se hace por contención: reglas de bloqueo, candados que caducan solos, cuarentena en vez de borrado, archivar en vez de eliminar. Así un error se queda dentro de una caja con paredes aunque nadie esté mirando.

No digo que la aprobación humana sea mala. Digo que solo funciona si alguien aprueba a tiempo. Antes de ponerla, pregúntate quién va a pulsar el botón y a qué hora.

¿Qué pasa cuando el que falla es el guardrail? Tres casos reales

El cero que no congelaba

El 20 de septiembre de 2026 decidí congelar la publicación: límite semanal a 0. Al revisarlo descubrí que no había congelado nada. Una de las comprobaciones decía, literalmente, «si el límite es 0 o menos, no lo apliques». Quien lo escribió (yo, o un agente mío, que para el caso viene a ser lo mismo) pensaba en «0 = sin configurar». El valor más restrictivo caía en la rama más permisiva, y no daba ningún error.

El primer arreglo fue peor. Al cambiar la condición, el freno empezó a sacar del índice artículos que ya estaban publicados esa semana: el sitemap bajó de 198 a 194 URLs y cuatro artículos buenos desaparecieron. La solución de verdad fue separar dos cosas que el código mezclaba. Congelar es no publicar nada nuevo, y eso se frena en la puerta, antes de que trabaje el agente. Retirar lo que ya está publicado es otra decisión distinta, que nunca debería tomarse sola.

El modelo que no era

Cada tarea de publicación tiene un modelo elegido. Si ese modelo da error por exceso de uso, el sistema salta a otro más barato para no quedarse parado. Es buena idea para que nada se caiga y mala para la calidad. Entre el 14 y el 26 de septiembre, el publicador diario escribió con el modelo de respaldo mientras todo el sistema daba por hecho que usaba el principal. Cada ejecución terminaba en «ok».

Desde el 29 de septiembre, un guardrail compara el modelo que respondió de verdad con el que estaba elegido. Si no coinciden, el artículo nuevo va a cuarentena en vez de publicarse. Hoy, al preparar esta guía, el contador marcaba cero ejecuciones degradadas en las últimas 24 horas. Es lo que debe marcar; lo importante es que ahora alguien lo cuenta.

El candado que se cerraba contra su dueño

Para que dos agentes no escriban a la vez en la web uso un candado: quien lo tiene escribe y el resto espera. El 10 de septiembre un agente tomó el candado, llamó a un programa auxiliar, y ese programa intentó coger el mismo candado con otro nombre. Se quedó esperando a su propio dueño: siete ciclos y media hora perdida. El arreglo fue que el programa herede el nombre de quien lo llama. Y como el candado caduca solo, el peor atasco posible tiene fecha de fin.

Los tres casos tienen algo en común. El guardrail existía, estaba documentado y no hacía lo que decía. Ninguno dio un error. Es lo mismo que me pasó con un cron que llevaba 17 días muerto con el panel en verde: el fallo más caro es el que no hace ruido.

Lo que nadie te dijo

¿Cómo empiezo a poner guardrails a mi agente?

No hace falta ser experto en seguridad. Este es el orden que seguiría si empezara hoy, de lo que más protege a lo que menos:

  1. Haz la lista de lo que puede hacer. Herramientas, permisos, dónde puede escribir, a quién puede mandar cosas. Si no cabe en una hoja, ya tienes el primer problema.
  2. Marca lo irreversible. Borrar, pagar, publicar, enviar. Ahí van los primeros frenos.
  3. Aplica la regla de dos por tarea. Si una tarea lee cosas de desconocidos, toca datos privados y puede enviar hacia fuera, quítale una de las tres o pártela en dos tareas.
  4. Pon un tope duro de gasto en el proveedor de la API. Un corte, no una alerta.
  5. Pasa las reglas importantes del prompt al código. El prompt explica; el código impide.
  6. Saca la comprobación de salida fuera del agente. Un paso separado que el agente no pueda saltarse ni negociar.
  7. Rompe tus propios frenos a propósito de vez en cuando y comprueba que saltan.

Si tu agente además guarda cosas entre sesiones, revisa también lo que recuerda: una memoria con datos viejos es otra puerta de entrada. Lo explico en la guía de memoria en agentes de IA.

Preguntas frecuentes

¿Qué significa guardrails en IA?

Son los controles que limitan lo que entra en un sistema de IA, lo que sale de él y lo que puede ejecutar, para que sus errores no tengan consecuencias graves. El nombre viene de las barreras laterales de las carreteras: no evitan que el coche se desvíe, evitan que acabe en el barranco.

¿Basta con poner las normas en el prompt del sistema?

No. Las instrucciones ayudan, pero el modelo puede ignorarlas o ser manipulado por un texto que lee. En mi web, con el límite escrito solo en el prompt, llegaron a salir 45 artículos en una semana con un máximo de cinco.

¿Qué es la regla de dos en agentes de IA?

Es una propuesta del equipo de seguridad de Meta (octubre de 2025): en una misma sesión, un agente no debería combinar más de dos de estas tres cosas: leer contenido no fiable, acceder a datos o sistemas sensibles, y cambiar cosas o comunicarse hacia fuera.

¿Los guardrails eliminan el riesgo de prompt injection?

No del todo. Hoy nadie sabe detectar la inyección de instrucciones con total fiabilidad. Los guardrails reducen las consecuencias: limitan lo que puede pasar si el agente se deja engañar.

¿Cuánto cuesta poner guardrails a un agente?

Los más útiles son casi gratis: un contador, una lista de comandos prohibidos, un tope de gasto en el panel del proveedor. Los que usan un segundo modelo para revisar al primero sí cuestan tokens en cada llamada, y si corren en paralelo pueden llegar tarde.

Qué me llevo de todo esto

Cuando empecé creía que la seguridad de un agente consistía en escribirle buenas instrucciones. Hoy las instrucciones me parecen la explicación, no el freno. El freno está fuera del modelo: en lo que puede tocar, en lo que se comprueba antes de publicar y en un tope que corta sin preguntar a nadie.

Lo segundo me costó más aceptarlo: los guardrails también fallan, y fallan en silencio. Por eso cada freno de mi sistema tiene a alguien que lo vigila, y por eso de vez en cuando intento romperlos yo mismo. Ninguno de los tres fallos que te he contado lo encontró un atacante. Los encontré yo, mirando.

Esta guía es el punto de partida del bloque de guardrails y seguridad del hub de agentes. Los casos concretos irán colgando de aquí.