Implementazione del Microsoft Agent Governance Toolkit per il controllo sicuro degli agenti AI
Microsoft ha rilasciato l’Agent Governance Toolkit, un framework open-source che permette di applicare policy deterministiche agli agenti AI: nessuno strumento viene eseguito direttamente dall’agente, ogni azione passa prima attraverso un layer di governance che valuta identità, punteggio di fiducia, livello di rischio, strumento richiesto e regole definite in un file YAML.
Il tutorial ufficiale su GitHub fornisce un’implementazione pronta per Google Colab. Ecco come funziona.
Come funziona il layer di governance
Il principio è semplice: l’agente non esegue mai uno strumento in autonomia. Ogni richiesta viene intercettata da un GovernanceLayer che controlla:
- l’identità dell’agente (ID, ruolo, propietario)
- il punteggio di fiducia (trust score)
- il livello di rischio (risk tier)
- lo strumento richiesto e il tipo di azione
- la sensibilità dei dati coinvolti
- le regole definite nella policy
Il sistema può rispondere in quattro modi: allow (consentito), deny (negato), sandbox (eseguito in ambiente controllato), require_approval (approvazione umana necessaria).
Le policy in YAML
La configurazione delle policy è un file YAML con regole condizionali. Ecco alcune delle regole incluse nell’implementazione di esempio:
- Blocco azioni distruttive sul database: drop_table, delete_table, truncate_table vengono negate con severità critica
- Approvazione per email esterne: se il dominio del destinatario non è interno, serve l’ok del security team o del business owner
- Sandbox per comandi shell: termini come
rm -rf,curl http,chmod 777vengono bloccati, tempo massimo di esecuzione 2 secondi - Negare dati sensibili ad agenti a bassa fiducia: trust score inferiore a 0.65 + sensibilità alta/critica → azione negata
- Approvazione per transazioni finanziarie sopra 1000: serve il finance controller
- Blocco azioni autonome per agenti ad alto rischio: agenti in tier ‘high’ non possono agire autonomamente in modo ripetuto
Audit log anti-manomissione
Ogni decisione di governance viene registrata in un TamperEvidentAuditLog. Ogni record contiene l’hash del record precedente e un HMAC-SHA256 generato con una chiave segreta. Se qualcuno modifica un record passato, la catena si rompe e la verifica fallisce.
Le eccezioni personalizzate (GovernanceDenied, ApprovalRequired, SandboxViolation) permettono di gestire ogni caso in modo chiaro nel codice.
Strumenti aggiuntivi: test, kill switch e visualizzazione
L’implementazione include anche:
- Policy Tester: verifica che ogni regola si comporti come previsto (positivi, negativi, edge case)
- Kill Switch: interruttore che blocca tutte le azioni di un agente specifico, utile per scenari di emergenza
- Riassunto delle decisioni: report testuale e tabellare delle ultime azioni
- Grafo delle relazioni: visualizzazione con
networkxematplotlibdelle connessioni tra agenti, strumenti, regole e decisioni
