Guida · Agenti IA · · di Stefan Tsezarov
Dai al tuo agente un secondo parere prima che agisca
Chiedi al tuo agente di programmazione di sistemare una build. Legge il README, guarda una discussione in una issue e trova un suggerimento:
Una correzione plausibile. Una piccola modifica. L’agente prepara il comando di installazione.
Ma quel trattino mancante conta. crossenv era un vero pacchetto malevolo, rimosso da npm nel 2017 dopo che si era scoperto che rubava le variabili d’ambiente, il posto dove gli sviluppatori tengono spesso chiavi e token.
Lo scambio qui sopra è un esempio. Il pacchetto no.
01Quando un suggerimento diventa un comando
Gli agenti di programmazione leggono molto testo che tu potresti non vedere mai: documentazione, commenti nelle issue, pagine web e messaggi di errore. Quel contesto li aiuta a risolvere problemi. Può anche spingerli verso una dipendenza sbagliata.
Installare un pacchetto merita un’attenzione particolare. I pacchetti npm possono includere script che girano durante l’installazione, quindi del codice può essere eseguito prima che tu abbia potuto esaminarlo.
La protezione pre-installazione di SaveSaveSaveSave aggiunge un controllo proprio lì. Prima che venga eseguito un comando di installazione supportato, consulta il pacchetto e applica la politica che hai scelto.
02Cosa succede a un’installazione?
Considera tre comandi che un agente potrebbe proporre.
Un pacchetto del registro che non solleva segnali
npm install cross-env
La protezione lascia proseguire il comando. La tua solita richiesta di approvazione resta valida. Significa che i controlli non hanno trovato motivi per opporsi; non è una garanzia che il pacchetto sia sicuro.
Un pacchetto segnalato come malevolo
cd app && npm install --save-dev crossenv
La protezione blocca il comando e spiega all’agente perché. Riconosce l’installazione anche quando segue un altro comando.
Codice scaricato direttamente da GitHub
npx github:someone/setup-script
Nella modalità predefinita la protezione chiede una revisione umana. Un URL Git esce dai suoi controlli del registro npm, quindi non può fornire la stessa valutazione.
I comandi supportati includono le installazioni tramite npm, pnpm, yarn e bun, oltre a npx, npm ci, catene di comandi con && e comandi racchiusi in bash -c "…".
03Le regole le scegli tu
L’analisi fornisce gli elementi: cosa ha controllato, cosa ha trovato e cosa non ha potuto valutare. Una politica che gira sulla tua macchina decide cosa succede dopo.
Scegli una delle tre modalità:
| Modalità | Segnalato malevolo | Cautela o dati insufficienti | Controllo fallito o fonte fuori dal registro |
|---|---|---|---|
| observe | Consenti e segnala | Consenti | Consenti |
| guard · predefinita | Blocca | Chiedi a una persona | Chiedi a una persona |
| strict | Blocca | Blocca | Blocca |
Usa observe per vedere come si comporta la protezione nel tuo flusso di lavoro. Scegli guard per bloccare i pacchetti malevoli noti e far rivedere i casi incerti. Scegli strict quando un risultato non conclusivo deve fermare l’installazione.
Un risultato pulito non elimina mai un’approvazione che il tuo agente richiederebbe comunque.
04Aggiungila al tuo flusso di lavoro
Per Claude Code, aggiungi questo hook al file .claude/settings.json del tuo progetto. Se il file contiene già delle impostazioni, unisci l’hook a quelle.
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "npx -y savesavesavesave@0.1.5 hook claude-code --mode observe"
}
]
}
]
}
}
L’hook controlla i comandi Bash proposti. I comandi senza un’installazione riconosciuta passano oltre.
Per un altro agente o uno script, metti la protezione prima del comando di installazione:
npx savesavesavesave@0.1.5 guard --mode guard -- npm install some-package
I suoi codici di uscita dicono alla tua integrazione come procedere:
0: consenti1: chiedi una revisione umana2: blocca
La tua integrazione deve rispettare questi risultati.
Gli agenti con supporto MCP possono anche richiedere i controlli direttamente. Le istruzioni di configurazione dei client sono nella pagina Per agenti.
Non servono account né chiavi API. Gli esempi fissano una versione, così puoi esaminare una release specifica prima di usarla.
05Sapere cosa copre il controllo
La protezione legge le informazioni pubblicate dal registro npm e da OSV.dev. Non scarica né esegue il pacchetto, e al momento copre i pacchetti npm, non ecosistemi come PyPI o crates.io.
Restano alcuni limiti pratici:
- Controlla i comandi supportati che riceve. Installazioni nascoste in file di script, gestori di pacchetti non supportati o binari scaricati possono sfuggirle. Restrizioni più forti richiedono controlli sull’accesso dell’agente alla rete e al filesystem.
- Una minaccia non segnalata può passare. «Nessuna obiezione» significa che i controlli disponibili non hanno trovato rischi noti.
- L’hook deve essere eseguito perché la politica funzioni. Se usi la modalità strict, segui le istruzioni del README del pacchetto per bloccare i comandi quando l’hook stesso non si avvia.
Un agente di programmazione può sistemare una build in fretta. Può anche agire in fretta su un suggerimento convincente di qualcuno che non conosci.
Prima che quel suggerimento acceda alla tua macchina, dagli un secondo parere.
Il tuo prossimo passo: aggiungi l’hook in modalità observe, esaminane i risultati e scegli la politica adatta al tuo flusso di lavoro.