La crescente delega di lavoro agli agenti AI richiede un accesso più ampio ai sistemi e alle risorse. Tuttavia, questo aumento di autonomia è anche la fonte dei più grandi rischi. Gli agenti possono accedere a file, eseguire comandi shell, eseguire codice generato e chiamare API, il che li rende utili, ma anche potenzialmente pericolosi.

La soluzione tradizionale a questo problema è la sandbox, che pone un limite a ciò che un agente può accedere. Tuttavia, l'accesso è solo una parte di ciò che vogliamo controllare. Un agente che indaga su un incidente di produzione potrebbe avere bisogno di leggere log o ispezionare l'infrastruttura senza essere autorizzato a modificarla. I container e i microVM forniscono un'isolamento forte, ma l'isolamento da solo non applica regole contestuali.

Strands Box

Strands Box è una sandbox open source che combina l'isolamento del sistema operativo con politiche di governance per gli agenti AI. Questa tecnologia consente di definire regole per gli agenti in base alle loro azioni e alla loro storia, garantendo una maggiore sicurezza e controllo. Strands Box è alimentata da Dogwood, un linguaggio di politica open source, e dal Dogwood Local Engine, che valuta le politiche contro le azioni richieste dall'agente e la sua storia registrata.

Strands Box si basa su due livelli: il contenimento e la politica. Il contenimento utilizza l'isolamento del sistema operativo per definire ciò che l'agente può raggiungere, sulla macchina host e sulla rete. La politica governa quali azioni l'agente può eseguire all'interno del contenimento.

Politica

La politica è applicata in più punti di applicazione: l'egresso della rete, un interprete Python, un interprete Shell e un broker per i server Model Context Protocol (MCP). Questi punti di applicazione governano operazioni concrete: quali file l'agente può leggere o modificare, quali comandi può eseguire, quali metodi HTTP e percorsi può accedere e quali strumenti MCP può chiamare.

I punti di applicazione utilizzano il motore Dogwood Local Engine incorporato e condividono una storia di eventi, consentendo di collegare un'azione precedente attraverso uno strumento con un'azione successiva attraverso un altro. Il gateway di egresso è un proxy che tutte le comunicazioni in uscita della scatola passano attraverso, e gli interpreti Shell, Python e MCP sono eseguiti nel processo della scatola, al di fuori della sandbox, dove l'agente li raggiunge come comandi bash, python3 e MCP ordinari su una socket locale.

Interpreti

Gli agenti scrivono sempre più codice per eseguire il lavoro, e questo lavoro è spesso eseguito in Python e Shell. Ad esempio, un agente che esegue analisi dei dati potrebbe scrivere un programma che recupera log da più posti, raggruppa errori e restituisce un riassunto. I risultati intermedi rimangono nell'ambiente di esecuzione, riducendo i dati passati attraverso il modello e quindi riducendo la spesa di token.

Per questo motivo, abbiamo scelto di incorporare due interpreti di codice in Strands Box: Strands Shell e Monty per Python. Questi interpreti consentono di intercettare operazioni come l'accesso al file system o le chiamate di rete e di eseguirle attraverso il motore di politica per l'autorizzazione.

Perché non i container o i microVM?

I microVM offrono un isolamento forte e sono una scelta ragionevole per eseguire codice non attendibile. Tuttavia, per Strands Box, abbiamo voluto che gli agenti che eseguiamo operassero all'interno dell'ambiente esistente dello sviluppatore, senza avere un sistema operativo guest separato. Un contenitore o un VM separato introduce un altro ambiente da provisionare e mantenere, insieme a decisioni su come esporre file e strumenti locali ad esso.

La scelta del meccanismo di isolamento risponde solo a parte del problema. Dobbiamo ancora risolvere il problema della politica: una volta che eseguiamo un agente e gli forniamo alcuni strumenti, dobbiamo ancora governare cosa fa con essi. Crediamo che il punto dolce sia l'isolamento del sistema operativo per stabilire un limite forte, abbinato all'applicazione della politica in vari punti di intercettazione dove le azioni dell'agente tentano di attraversare il limite.

Perché non le autorizzazioni dell'harness?

Molti harness personalizzati forniscono le proprie promemoria di autorizzazione e liste di autorizzazione, quindi una domanda ragionevole è perché non affidarsi a quelle. Aiutano, ma funzionano all'interno del processo dell'agente e giudicano la chiamata dello strumento, non il suo effetto. Un harness vede "esegui questo comando shell". Non vede i file che il comando toccherà o gli host che raggiungerà. I diversi harness hanno anche formati di regole diversi, quindi una politica scritta per uno potrebbe non essere valida per un altro. La scatola applica dall'esterno del processo, al limite del sistema operativo e della rete, e lo stesso file di configurazione e politica può essere utilizzato per una configurazione e un'applicazione della politica coerenti in tutte le applicazioni dell'agente.

In definitiva, Strands Box offre una soluzione completa per la sicurezza e il controllo degli agenti AI, combinando l'isolamento del sistema operativo con politiche di governance avanzate. Questa tecnologia consente di definire regole per gli agenti in base alle loro azioni e alla loro storia, garantendo una maggiore sicurezza e controllo.