Cómo proteger un chatbot de la inyección de prompts
Revisa cada mensaje del usuario antes de añadirlo al prompt y actúa según una de tres respuestas: mandarlo, retenerlo o rechazarlo. /v1/prompt es la misma comprobación que /v1/text con los patrones de inyección activados, así que en la misma llamada el mensaje también se revisa en busca de insultos, estafas y datos personales. Casi todo lo que la gente escribe en un chatbot es una petición normal, y eso lo resuelven las comprobaciones gratuitas en torno a un milisegundo. El modelo solo lee lo que ellas dejan abierto y, cuando lo hace, tu texto va entre unos marcadores que cambian en cada petición, así que nada de lo que hay dentro puede cerrarlos y hablarle a nuestro modelo.
Inyección indirecta en documentos y comentarios
Las instrucciones más peligrosas no se escriben en tu caja de chat. Están en una reseña, un ticket, un correo o una página que tu sistema lee más tarde, a menudo con herramientas conectadas. Revisa ese contenido al entrar, con surface a prompt, antes de que lo lea tu resumidor o tu agente. Los marcadores de plantilla de chat como <|im_start|>, [INST] o ### System: se rechazan por sí solos, porque nadie los escribe sin querer. En un lote, manda cada elemento como texto con esa superficie.
Cómo se puntúan los patrones
La comprobación conoce familias de intento, y la de saltarse las instrucciones la tiene escrita en los dos órdenes en que se dice en inglés: "ignore the previous instructions" y "forget the rules above" son la misma frase. Una familia vale lo que vale; cada familia de más suma, así que tres juntas puntúan muy por encima de una. Decirle a la respuesta qué forma debe tener es como se escriben muchos prompts honrados, así que por sí solo puntúa poco y la plantilla de producto de IA solo lo retiene para echarle un vistazo. La plantilla rechaza una orden de saltarse las instrucciones aunque venga sola, y eso significa que un usuario que la cita para preguntar cómo defenderse también queda rechazado: si tu producto va de seguridad, sube el umbral. Contar lo que se le pidió a otro ("le pedí al bot que ignore las instrucciones anteriores") no es dar la orden, y no cuenta.
Datos personales en los prompts: ocúltalos antes de que salgan
Un prompt con un teléfono no es un ataque, pero son los datos de alguien camino de un modelo externo y de cada registro que haya por medio. Con redact, la respuesta trae el mismo prompt con el teléfono, el correo, el IBAN o la tarjeta ocultos, y esa es la versión que mandas. La plantilla de producto de IA retiene un teléfono o un correo para revisarlos y rechaza directamente una tarjeta o un IBAN.
Cómo moderar lo que responde el modelo
Lo que contesta tu modelo es texto como cualquier otro, y revisarlo cuesta lo mismo que revisar un comentario. Manda la respuesta a /v1/text antes de mostrarla: un insulto dirigido a quien lo lee, una amenaza o los datos de alguien se detectan los haya escrito quien los haya escrito. Un mensaje sobre autolesiones, venga del usuario o de la respuesta, queda retenido para una persona y nunca se rechaza, porque contestarlo bien no puede depender solo de tu bot.
Dos capas, y tus propias defensas
Los patrones de inyección, escritos para inglés, español y otros seis idiomas europeos, resuelven las formas conocidas en torno a un milisegundo y están hechos para no marcar las peticiones normales. Lo que se dice de otra manera es trabajo del modelo, y con effort: high lee cada prompt. Mantén también tus propias defensas: los permisos mínimos para cualquier herramienta que pueda usar un agente, y una persona antes de cualquier cosa que no se pueda deshacer.