DeepTeam - Hoja de Referencia del Framework de Red Teaming para LLM
DeepTeam es un framework de red teaming para LLM de código abierto creado por el equipo detrás de DeepEval. Simula ataques adversarios contra tu aplicación LLM — inyección de prompts, jailbreaks, fuga de PII, agencia excesiva, sesgo — usando una biblioteca de vulnerabilidades y mejoras de ataque que reescriben un ataque base para evadir las defensas. Su idea rectora es que el red teaming debe ser repetible y automatizado, no un ejercicio manual puntual, por lo que se ejecuta como una suite de pruebas en CI.
Haz red teaming solo en sistemas que poseas o estés autorizado a probar. Los ataques generados son entradas adversarias reales.
Instalación
| Método | Comando |
|---|
| pip | pip install deepteam |
| uv | uv add deepteam |
| Clave de modelo | export OPENAI_API_KEY=... (simulador + juez) |
| Verificar | python -c "import deepteam; print('ok')" |
Conceptos Principales
| Término | Significado |
|---|
| Vulnerabilidad | Una clase de debilidad a sondear (p. ej. fuga de PII) |
| Ataque | Una técnica usada para desencadenarla (p. ej. inyección de prompts) |
| Mejora | Una transformación que hace el ataque más difícil de detectar |
| Callback del modelo | Tu aplicación, envuelta como una función que DeepTeam puede llamar |
| Evaluación de riesgo | El informe puntuado de lo que tuvo éxito |
Ejecución Mínima de Red Team
from deepteam import red_team
from deepteam.vulnerabilities import Bias, PIILeakage
from deepteam.attacks.single_turn import PromptInjection
async def model_callback(input: str) -> str:
# llama AQUÍ a tu app/modelo y devuelve su salida
return await my_llm_app(input)
risk = red_team(
model_callback=model_callback,
vulnerabilities=[Bias(), PIILeakage()],
attacks=[PromptInjection()],
)
print(risk)
| Argumento | Propósito |
|---|
model_callback | Adaptador a tu sistema bajo prueba |
vulnerabilities | Qué debilidades sondear |
attacks | Qué técnicas usar |
attacks_per_vulnerability_type | Volumen de casos de prueba |
Categorías de Vulnerabilidad
| Categoría | Sondea |
|---|
PIILeakage | Fuga de datos personales |
Bias | Sesgo de género/raza/religión/política |
Toxicity | Salida dañina o abusiva |
PromptLeakage | Divulgación del prompt del sistema |
ExcessiveAgency | Realizar acciones no autorizadas |
Misinformation | Afirmaciones factuales/no sustentadas |
IllegalActivity | Cumplimiento de instrucciones inseguras |
Robustness | Secuestro / exceso de confianza en la entrada |
Ataques y Mejoras
| Ataque de un solo turno | Técnica |
|---|
PromptInjection | Instrucciones inyectadas |
Roleplay | Elusión basada en personajes |
Base64 / ROT13 / Leetspeak | Evasión por codificación |
Multilingual | Elusión en otro idioma |
MathProblem | Ofuscación mediante el encuadre |
| Ataque multi-turno | Técnica |
|---|
LinearJailbreaking | Turnos escalonados |
TreeJailbreaking | Búsqueda ramificada de una elusión |
CrescendoJailbreaking | Escalada gradual |
Ejecución en CI
# red_team.py — falla la compilación si aparecen problemas de alta severidad
risk = red_team(model_callback=cb, vulnerabilities=[...], attacks=[...])
assert risk.overall_score >= THRESHOLD, "Red team failures detected"
| Práctica | Por qué |
|---|
| Fijar un conjunto de escenarios | Resultados comparables entre ejecuciones |
| Controlar por severidad | Bloquear solo ante regresiones de alto riesgo |
| Almacenar informes | Seguir la postura a lo largo del tiempo |
| Reejecutar al cambiar el prompt | Los prompts son la superficie de control |
DeepTeam frente a Herramientas Relacionadas
| Aspecto | DeepTeam | garak | PyRIT | promptfoo |
|---|
| Capa | Aplicación | Modelo | Modelo + multi-turno | Aplicación |
| Estilo | Suite en Python | Escáner CLI | SDK de orquestación | Configuración + CLI |
| Multi-turno | Sí | Limitado | Fuerte | Sí |
| Mejor para | Red teaming automatizado a nivel de app | Sondeos amplios del modelo | Investigación de ataques complejos | Evaluación + red team en CI |
Complementa a garak (sondeos a nivel de modelo) y promptfoo (evaluación + CI); ejecuta más de uno — detectan fallos diferentes.
Recursos