Skip to content

PyRIT

Framework de Python de Microsoft para red teaming automatizado y dirigido por personas de la IA generativa, especialmente fuerte en ataques de varios turnos.

Reseña de Sheela · Actualizado

Ver en GitHub Código abierto

Nuestra nota

4.2/5

PyRIT automatiza las conversaciones lentas y escalonadas que hacen ceder a los chatbots, siempre que alguien del equipo escriba el Python que lo maneja.

¿Qué es PyRIT?

PyRIT (Python Risk Identification Tool) es el framework abierto de Microsoft para evaluar la seguridad de los sistemas de IA generativa. Está hecho de piezas modulares: targets (el sistema que se prueba), converters que transforman las instrucciones de ataque, scorers que juzgan las respuestas y una memoria que guarda cada conversación, puntuación y resultado en SQLite o Azure SQL.

Según la documentación, ejecuta de serie ataques de un turno y de varios turnos, entre ellos Crescendo, TAP (tree of attacks with pruning) y Skeleton Key. Los targets incluyen modelos de OpenAI, Azure, Anthropic, Google y Hugging Face, endpoints HTTP o WebSocket personalizados y apps web manejadas con Playwright. Los scorers pueden ser de verdadero/falso, escala Likert, clasificación o personalizados, y funcionan con un LLM, con Azure AI Content Safety o con tu propio código. Un framework de Scenarios ejecuta evaluaciones estándar de daños de contenido, riesgos psicosociales y fuga de datos sobre cientos de objetivos.

Se puede usar como biblioteca de Python, con las herramientas de línea de comandos pyrit_scan y pyrit_shell, o con CoPyRIT, una interfaz web local para red teaming dirigido por personas. El repositorio pasó de Azure/PyRIT a microsoft/PyRIT; tiene licencia MIT y la versión 1.1.0 se publicó el 4 de septiembre de 2026.

¿Merece la pena PyRIT?

PyRIT es el kit de código abierto al que recurrir cuando el punto débil de un modelo es una conversación y no una sola instrucción. Crescendo, TAP y Skeleton Key vienen como ataques listos para usar: un modelo atacante dirige el diálogo y un scorer decide cuándo ha cedido el target. La biblioteca de sondeos de garak cubre más ataques de un solo intento, pero no se adapta a mitad de la conversación como hace PyRIT.

El diseño es el de una herramienta de trabajo de un red team. Targets, converters y scorers son piezas intercambiables, y cada conversación, puntuación y resultado se guarda en SQLite, Azure SQL o en memoria, así que los hallazgos se pueden volver a puntuar más tarde con otro juez sin repetir los ataques. CoPyRIT, que se arranca con pyrit_backend en localhost:8000, añade una interfaz de navegador para pruebas manuales, y los targets de Playwright permiten a PyRIT atacar un front end de chat web real y no solo una API. La versión 1.0 de julio de 2026, seguida de la 1.0.1 y luego de la 1.1.0 el 4 de septiembre, dio a las interfaces una línea estable tras la 0.13 y la 0.14 de principios de año.

El coste es esfuerzo y tokens. Los endpoints y las claves van en ~/.pyrit/.env y los ajustes de memoria en ~/.pyrit/.pyrit_conf, y cada turno de un ataque de varios turnos factura al target, al modelo atacante y normalmente a un scorer LLM. El proyecto no publica ninguna estimación de tokens por escenario. Los jueces LLM pueden equivocarse al calificar, así que los aciertos necesitan que una persona los lea antes de convertirse en informes de fallos. La puntuación con Azure AI Content Safety y la memoria en Azure SQL favorecen la nube de Microsoft, aunque ninguna es obligatoria.

La comparación que debe hacer un comprador es con promptfoo, no con garak. promptfoo pone las pruebas de red team en un archivo YAML que un equipo de producto ejecuta en CI; PyRIT da por hecho que hay una persona dedicada que leerá transcripciones y ajustará ataques. Responden a preguntas distintas, y un equipo que lanza un chatbot cada semana bien puede necesitar los dos.

Dónde se gana su sitio

  • La responsable del red team de IA de un banco que prueba un chatbot de cara al cliente antes del lanzamiento

    Encontrar jailbreaks de varios turnos que un análisis de una sola instrucción no detecta

    Apuntar un target HTTP o de Playwright al chat de staging, ejecutar Crescendo y TAP con un modelo atacante aparte y guardar cada transcripción en SQLite para el informe. El software es gratis; la factura son las llamadas a los modelos del target, el atacante y el scorer, que el proyecto no estima.

  • Un ingeniero de seguridad de una empresa SaaS cuyo agente LLM lee el correo de los clientes

    Comprobar si unas instrucciones ocultas en entradas no fiables hacen que el agente filtre datos

    Usar converters para codificar el texto de ataque y ejecutar las evaluaciones de fuga de datos del framework de Scenarios contra el endpoint del agente. Los jueces LLM pueden equivocarse al calificar, así que revisa a mano cada acierto antes de registrarlo.

  • Un responsable de riesgo de modelos que debe acreditar el red teaming de IA ante un comité de revisión interno

    Mantener un registro repetible de lo que se probó y de lo que falló

    La memoria persistente guarda cada conversación, puntuación y resultado, así que la misma evaluación se puede repetir tras actualizar un modelo y compararse. Cuesta tiempo de ingeniería, no licencias; no hay edición de pago ni contrato de soporte con el proveedor.

Antes de decidirte

Puesta en marcha
pip install pyrit con Python 3.10 a 3.14 (la documentación recomienda la 3.13), y después pon las claves de los endpoints en ~/.pyrit/.env. No hace falta GPU salvo que alojes tú el modelo target o el atacante; pyrit_scan ejecuta desde la línea de comandos un escenario empaquetado como airt.scam.
Integraciones
Targets para modelos de OpenAI, Azure, Anthropic, Google y Hugging Face, endpoints HTTP y WebSocket personalizados y front ends de navegador con Playwright. Los scorers pueden ser un LLM, Azure AI Content Safety o tu propio código.
Datos y privacidad
Funciona en local bajo MIT; las instrucciones solo van a los modelos target, atacante y scorer que configures, y los resultados se guardan en SQLite, en memoria o en Azure SQL si lo eliges. La documentación no menciona telemetría y GitHub no muestra avisos de seguridad publicados; las vulnerabilidades se notifican al MSRC de Microsoft.
Coste a escala
No hay edición de pago. El coste son las llamadas a modelos: cada turno de un ataque de varios turnos factura a tres partes, así que un escenario ejecutado sobre cientos de objetivos multiplica el gasto, y no se publican cifras de tokens por escenario.
Límites
137 incidencias y pull requests abiertas. Las pruebas se definen en Python y en archivos de configuración ocultos en lugar de en un único archivo declarativo, así que usarlo en CI cuesta más trabajo que con promptfoo; la puntuación con Content Safety necesita un recurso de Azure.

Lo bueno

  • Ataques de varios turnos integrados como Crescendo y TAP
  • Targets, converters y scorers intercambiables
  • Memoria persistente para compartir y volver a puntuar resultados
  • Interfaz web para red teaming dirigido por personas

Lo malo

  • Requiere Python y un esfuerzo real de configuración
  • Los modelos atacante y scorer suman su propio gasto de tokens a cada ataque
  • Las puntuaciones basadas en LLM necesitan revisión humana
  • Algunos extras se apoyan en servicios de Azure

Ideal para

Ingenieros de seguridad que necesitan someter a fondo chatbots y agentes a red teaming, incluidas escaladas de varios turnos y front ends web.

Alternativas a PyRIT

PyRIT: preguntas frecuentes

¿Merece la pena PyRIT?
PyRIT automatiza las conversaciones lentas y escalonadas que hacen ceder a los chatbots, siempre que alguien del equipo escriba el Python que lo maneja. Le damos un 4.2 sobre 5.
¿Cuánto cuesta PyRIT?
Gratis y de código abierto bajo MIT. Pagas las llamadas a modelos que usan los ataques y los scorers basados en LLM.
¿Qué inconvenientes tiene PyRIT?
Requiere Python y un esfuerzo real de configuración; los modelos atacante y scorer suman su propio gasto de tokens a cada ataque; las puntuaciones basadas en LLM necesitan revisión humana; algunos extras se apoyan en servicios de Azure.
¿Para quién es PyRIT?
Ingenieros de seguridad que necesitan someter a fondo chatbots y agentes a red teaming, incluidas escaladas de varios turnos y front ends web.
¿Cuánto cuesta PyRIT para un equipo o en producción?
No hay edición de pago. El coste son las llamadas a modelos: cada turno de un ataque de varios turnos factura a tres partes, así que un escenario ejecutado sobre cientos de objetivos multiplica el gasto, y no se publican cifras de tokens por escenario.
¿Es PyRIT seguro para los datos de la empresa?
Funciona en local bajo MIT; las instrucciones solo van a los modelos target, atacante y scorer que configures, y los resultados se guardan en SQLite, en memoria o en Azure SQL si lo eliges. La documentación no menciona telemetría y GitHub no muestra avisos de seguridad publicados; las vulnerabilidades se notifican al MSRC de Microsoft.
¿Cuáles son las mejores alternativas a PyRIT?
Las alternativas más cercanas que hemos analizado son garak, DeepTeam y promptfoo.

Respuestas comprobadas el 26 oct 2026.