DeepTeam - Cheatsheet del Framework di Red Teaming LLM
DeepTeam è un framework open-source di red teaming per LLM costruito dal team dietro DeepEval. Simula attacchi avversariali contro la tua applicazione LLM — prompt injection, jailbreak, perdita di PII, agenzia eccessiva, bias — usando una libreria di vulnerabilità e miglioramenti di attacco che riscrivono un attacco di base per eludere le difese. L”idea guida è che il red teaming dovrebbe essere ripetibile e automatizzato, non un esercizio manuale una tantum, quindi funziona come una test suite in CI.
Esegui il red team solo su sistemi di cui sei proprietario o autorizzato a testare. Gli attacchi generati sono input avversariali reali.
Installation
| Method | Command |
|---|
| pip | pip install deepteam |
| uv | uv add deepteam |
| Model key | export OPENAI_API_KEY=... (simulator + judge) |
| Verify | python -c "import deepteam; print('ok')" |
Core Concepts
| Term | Meaning |
|---|
| Vulnerability | Una classe di debolezza da testare (es. perdita di PII) |
| Attack | Una tecnica usata per attivarla (es. prompt injection) |
| Enhancement | Una trasformazione che rende un attacco più difficile da rilevare |
| Model callback | La tua app, incapsulata come una funzione che DeepTeam può chiamare |
| Risk assessment | Il rapporto punteggiato di ciò che ha avuto successo |
Minimal Red Team Run
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:
# call YOUR app/model here and return its output
return await my_llm_app(input)
risk = red_team(
model_callback=model_callback,
vulnerabilities=[Bias(), PIILeakage()],
attacks=[PromptInjection()],
)
print(risk)
| Argument | Purpose |
|---|
model_callback | Adattatore al tuo sistema sottoposto a test |
vulnerabilities | Quali debolezze testare |
attacks | Quali tecniche usare |
attacks_per_vulnerability_type | Volume di casi di test |
Vulnerability Categories
| Category | Probes for |
|---|
PIILeakage | Perdita di dati personali |
Bias | Bias di genere/razza/religione/politico |
Toxicity | Output dannoso o abusivo |
PromptLeakage | Divulgazione del prompt di sistema |
ExcessiveAgency | Intraprendere azioni non autorizzate |
Misinformation | Affermazioni fattuali/non supportate |
IllegalActivity | Conformità a istruzioni non sicure |
Robustness | Dirottamento / eccessiva dipendenza dall”input |
Attacks & Enhancements
| Single-turn attack | Technique |
|---|
PromptInjection | Istruzioni iniettate |
Roleplay | Bypass basato su persona |
Base64 / ROT13 / Leetspeak | Evasione di codifica |
Multilingual | Bypass non-inglese |
MathProblem | Offuscamento via framing |
| Multi-turn attack | Technique |
|---|
LinearJailbreaking | Escalation di turni |
TreeJailbreaking | Ricerca di branching per un bypass |
CrescendoJailbreaking | Escalation graduale |
Running in CI
# red_team.py — fail the build if high-severity issues appear
risk = red_team(model_callback=cb, vulnerabilities=[...], attacks=[...])
assert risk.overall_score >= THRESHOLD, "Red team failures detected"
| Practice | Why |
|---|
| Pin a scenario set | Risultati comparabili tra esecuzioni |
| Gate on severity | Blocca solo le regressioni ad alto rischio |
| Store reports | Traccia la postura nel tempo |
| Re-run on prompt change | I prompt sono la superficie di controllo |
| Aspect | DeepTeam | garak | PyRIT | promptfoo |
|---|
| Layer | Application | Model | Model + multi-turn | Application |
| Style | Pythonic suite | CLI scanner | Orchestration SDK | Config + CLI |
| Multi-turn | Yes | Limited | Strong | Yes |
| Best for | Red teaming automatizzato a livello di app | Probe ampi del modello | Ricerca di attacchi complessi | Eval di CI + red team |
Integra garak (probe a livello di modello) e promptfoo (eval + CI); esegui più di uno — catturano fallimenti diversi.
Resources