Ghid · agenți AI · · de Stefan Tsezarov
Oferiți agentului dumneavoastră o a doua opinie înainte de a acționa
Cereți agentului dvs. de codare să repare o construcție. Citește README, verifică un fir de probleme și găsește o sugestie:
O remediere plauzibilă. O mică schimbare. Agentul pregătește comanda de instalare.
Dar acea cratima lipsă contează. crossenv a fost un pachet adevărat rău intenționat, eliminat din npm în 2017, după ce a fost găsit furând variabile de mediu - locul în care dezvoltatorii păstrează adesea cheile și jetoanele.
Schimbul de mai sus este un exemplu. Pachetul nu a fost.
01 Când o sugestie devine o comandă
Agenții de codificare citesc o mulțime de text pe care s-ar putea să nu-l vezi niciodată: documentație, comentarii ale problemelor, pagini web și mesaje de eroare. Acest context îi ajută să rezolve problemele. De asemenea, îi poate îndrepta către o dependență proastă.
Instalarea unui pachet merită o atenție deosebită. Pachetele npm pot include scripturi care rulează în timpul instalării, astfel încât codul se poate executa înainte de a avea ocazia să îl inspectați.
Apărătorul de preinstalare SaveSaveSaveSave adaugă o verificare în acel moment. Înainte de a rula o comandă de instalare acceptată, aceasta caută pachetul și aplică o politică pe care ați ales-o.
02 Ce se întâmplă cu o instalare?
Luați în considerare trei comenzi pe care le-ar putea propune un agent.
Un pachet de registry care nu ridică semnale
npm install cross-env
Paznicul permite continuarea comenzii. Solicitarea dvs. obișnuită de aprobare se aplică în continuare. Aceasta înseamnă că verificările nu au găsit niciun motiv de a obiecta; nu este o garanție că pachetul este sigur.
Un pachet raportat ca fiind rău intenționat
cd app && npm install --save-dev crossenv
Paznicul refuză comanda și îi spune agentului de ce. Recunoaște instalarea chiar și atunci când urmează o altă comandă.
Cod preluat direct din GitHub
npx github:someone/setup-script
În modul implicit, paznicul solicită revizuirea umană. O adresă URL Git nu se încadrează în verificările sale de registry npm, deci nu poate oferi aceeași evaluare.
Comenzile acceptate includ instalări prin npm, pnpm, yarn, și bun, împreună cu npx, npm ci, lanțuri de comandă folosind &&, și comenzile incluse bash -c "…".
03 Tu alegi regulile
Scanarea furnizează dovezi: ce a verificat, ce a găsit și ce nu a putut evalua. O politică care rulează pe computerul dvs. determină ce se întâmplă în continuare.
Alegeți unul dintre cele trei moduri:
| Mod | Raportat rău intenționat | Atenție sau date insuficiente | Verificarea eșuează sau sursa este în afara registrului |
|---|---|---|---|
| observe | Permiteți și raportați | Permite | Permite |
| protecție · implicit | Nega | Întreabă un om | Întreabă un om |
| strict | Nega | Nega | Nega |
Utilizați , observați pentru a vedea cum se comportă paznicul în fluxul dvs. de lucru. Alegeți guard pentru a bloca pachetele rău intenționate cunoscute și pentru a examina cazurile incerte. Alegeți strict când un rezultat neconcludent ar trebui să oprească instalarea.
Un rezultat curat nu înlătură niciodată aprobarea pe care agentul dumneavoastră ar avea nevoie altfel.
04 Adăugați-l în fluxul dvs. de lucru
Pentru Claude Code, adăugați acest cârlig la .claude/settings.json al proiectului dumneavoastră. Dacă fișierul conține deja setări, îmbinați cârligul în ele.
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "npx -y savesavesavesave@0.1.5 hook claude-code --mode observe"
}
]
}
]
}
}
Hook verifică comenzile Bash propuse. Comenzile fără o instalare recunoscută trec.
Pentru un alt agent sau script, puneți garda înaintea comenzii de instalare:
npx savesavesavesave@0.1.5 guard --mode guard -- npm install some-package
Codurile sale de ieșire indică integrării dvs. cum să procedați:
0: permite1: solicită o revizuire umană2: refuză
Integrarea dumneavoastră trebuie să respecte acele rezultate.
Agenţii cu suport MCP pot solicita, de asemenea, verificări direct. Instrucțiunile de configurare a clientului sunt pe pagina Pentru agenți .
Nu este necesară nici un cont sau cheie API. Exemplele fixează o versiune, astfel încât să puteți revizui o anumită versiune înainte de a o folosi.
05 Aflați ce acoperă cecul
Paznicul citește informațiile publicate de registrul npm și OSV.dev. Nu descarcă și nu execută pachetul și în prezent acoperă pachetele npm, nu ecosisteme precum PyPI sau crates.io.
Aceasta lasă câteva limite practice:
- Verifică comenzile acceptate pe care le primește. Instalările ascunse în interiorul fișierelor script, managerii de pachete neacceptați sau fișierele binare descărcate pot să nu fie vizibile. Restricțiile mai puternice necesită controale asupra rețelei agentului și accesului la sistemul de fișiere.
- O ameninţare neraportată poate trece. „Fără obiecție” înseamnă că verificările disponibile nu au constatat niciun risc cunoscut.
- Cârligul trebuie să ruleze pentru ca politica să funcționeze. Dacă utilizați modul strict, urmați instrucțiunile pachetului README pentru blocarea comenzilor atunci când cârligul în sine nu reușește să pornească.
Un agent de codare poate repara rapid o construcție. De asemenea, poate acționa rapid la o sugestie convingătoare a unei persoane pe care nu o cunoști.
Înainte ca această sugestie să aibă acces la aparatul dvs., oferiți-i o a doua opinie.
Următorul pas: adăugați cârligul în modul de observare, revizuiți rezultatele și alegeți politica care se potrivește fluxului dvs. de lucru.