Οδηγός · Πράκτορες AI · · Stefan Tsezarov
Δώσε στον πράκτορά σου δεύτερη γνώμη πριν ενεργήσει
Ζητάς από τον πράκτορα προγραμματισμού σου να διορθώσει ένα build. Διαβάζει το README, ελέγχει μια συζήτηση σε issue και βρίσκει μια πρόταση:
Μια εύλογη διόρθωση. Μία μικρή αλλαγή. Ο πράκτορας ετοιμάζει την εντολή εγκατάστασης.
Αλλά αυτή η παύλα που λείπει έχει σημασία. Το crossenv ήταν πραγματικό κακόβουλο πακέτο, που αφαιρέθηκε από το npm το 2017 όταν βρέθηκε να κλέβει μεταβλητές περιβάλλοντος — εκεί όπου οι developers συχνά κρατούν κλειδιά και tokens.
Η παραπάνω συνομιλία είναι παράδειγμα. Το πακέτο όχι.
01Όταν μια πρόταση γίνεται εντολή
Οι πράκτορες προγραμματισμού διαβάζουν πολύ κείμενο που ίσως δεν δεις ποτέ: τεκμηρίωση, σχόλια σε issues, ιστοσελίδες και μηνύματα σφάλματος. Αυτό το πλαίσιο τους βοηθά να λύνουν προβλήματα. Μπορεί επίσης να τους οδηγήσει σε μια κακή εξάρτηση.
Η εγκατάσταση ενός πακέτου θέλει ιδιαίτερη προσοχή. Τα πακέτα npm μπορούν να περιέχουν scripts που εκτελούνται κατά την εγκατάσταση, οπότε κώδικας μπορεί να εκτελεστεί πριν προλάβεις να τον εξετάσεις.
Ο φύλακας πριν την εγκατάσταση του SaveSaveSaveSave προσθέτει έναν έλεγχο ακριβώς σε αυτό το σημείο. Πριν εκτελεστεί μια υποστηριζόμενη εντολή εγκατάστασης, αναζητά το πακέτο και εφαρμόζει μια πολιτική που έχεις επιλέξει.
02Τι συμβαίνει σε μια εγκατάσταση;
Δες τρεις εντολές που μπορεί να προτείνει ένας πράκτορας.
Ένα πακέτο του μητρώου που δεν σηκώνει καμία σημαία
npm install cross-env
Ο φύλακας αφήνει την εντολή να συνεχίσει. Το συνηθισμένο αίτημα έγκρισης εξακολουθεί να ισχύει. Αυτό σημαίνει ότι οι έλεγχοι δεν βρήκαν λόγο αντίρρησης· δεν είναι εγγύηση ότι το πακέτο είναι ασφαλές.
Ένα πακέτο που έχει αναφερθεί ως κακόβουλο
cd app && npm install --save-dev crossenv
Ο φύλακας απορρίπτει την εντολή και λέει στον πράκτορα γιατί. Αναγνωρίζει την εγκατάσταση ακόμη κι όταν ακολουθεί άλλη εντολή.
Κώδικας που ανακτάται απευθείας από το GitHub
npx github:someone/setup-script
Στην προεπιλεγμένη λειτουργία ο φύλακας ζητά ανθρώπινο έλεγχο. Ένα Git URL είναι εκτός των ελέγχων του μητρώου npm, οπότε δεν μπορεί να δώσει την ίδια αξιολόγηση.
Οι υποστηριζόμενες εντολές περιλαμβάνουν εγκαταστάσεις μέσω npm, pnpm, yarn και bun, καθώς και npx, npm ci, αλυσίδες εντολών με && και εντολές τυλιγμένες σε bash -c "…".
03Εσύ διαλέγεις τους κανόνες
Η σάρωση δίνει ενδείξεις: τι έλεγξε, τι βρήκε και τι δεν μπόρεσε να αξιολογήσει. Μια πολιτική που εκτελείται στο μηχάνημά σου καθορίζει τι θα γίνει μετά.
Διάλεξε μία από τρεις λειτουργίες:
| Λειτουργία | Αναφέρθηκε ως κακόβουλο | Προσοχή ή ανεπαρκή δεδομένα | Ο έλεγχος αποτυγχάνει ή η πηγή είναι εκτός μητρώου |
|---|---|---|---|
| observe | Επιτρέπει και αναφέρει | Επιτρέπει | Επιτρέπει |
| guard · προεπιλογή | Απορρίπτει | Ρωτά άνθρωπο | Ρωτά άνθρωπο |
| strict | Απορρίπτει | Απορρίπτει | Απορρίπτει |
Χρησιμοποίησε το observe για να δεις πώς συμπεριφέρεται ο φύλακας στη ροή εργασίας σου. Διάλεξε guard για να μπλοκάρεις γνωστά κακόβουλα πακέτα και να εξετάζεις τις αβέβαιες περιπτώσεις. Διάλεξε strict όταν ένα μη οριστικό αποτέλεσμα πρέπει να σταματά την εγκατάσταση.
Ένα καθαρό αποτέλεσμα δεν αφαιρεί ποτέ μια έγκριση που ο πράκτοράς σου θα χρειαζόταν διαφορετικά.
04Πρόσθεσέ το στη ροή εργασίας σου
Για το Claude Code, πρόσθεσε αυτό το hook στο .claude/settings.json του project σου. Αν το αρχείο έχει ήδη ρυθμίσεις, συγχώνευσε το hook με αυτές.
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "npx -y savesavesavesave@0.1.5 hook claude-code --mode observe"
}
]
}
]
}
}
Το hook ελέγχει τις προτεινόμενες εντολές Bash. Οι εντολές χωρίς αναγνωρισμένη εγκατάσταση περνούν.
Για άλλον πράκτορα ή script, βάλε τον φύλακα πριν από την εντολή εγκατάστασης:
npx savesavesavesave@0.1.5 guard --mode guard -- npm install some-package
Οι κωδικοί εξόδου του λένε στην ενσωμάτωσή σου πώς να προχωρήσει:
0: επιτρέπεται1: ζήτησε ανθρώπινο έλεγχο2: απορρίπτεται
Η ενσωμάτωσή σου πρέπει να σέβεται αυτά τα αποτελέσματα.
Οι πράκτορες με υποστήριξη MCP μπορούν επίσης να ζητούν ελέγχους απευθείας. Οδηγίες ρύθμισης του client υπάρχουν στη σελίδα Για πράκτορες.
Δεν χρειάζεται λογαριασμός ή κλειδί API. Τα παραδείγματα καρφώνουν μια έκδοση, ώστε να μπορείς να εξετάσεις μια συγκεκριμένη έκδοση πριν τη χρησιμοποιήσεις.
05Μάθε τι καλύπτει ο έλεγχος
Ο φύλακας διαβάζει πληροφορίες που δημοσιεύουν το μητρώο npm και το OSV.dev. Δεν κατεβάζει και δεν εκτελεί το πακέτο, και αυτή τη στιγμή καλύπτει πακέτα npm, όχι οικοσυστήματα όπως το PyPI ή το crates.io.
Αυτό αφήνει μερικά πρακτικά όρια:
- Ελέγχει τις υποστηριζόμενες εντολές που λαμβάνει. Εγκαταστάσεις κρυμμένες μέσα σε αρχεία scripts, μη υποστηριζόμενοι διαχειριστές πακέτων ή κατεβασμένα εκτελέσιμα μπορεί να μένουν εκτός της ματιάς του. Για αυστηρότερους περιορισμούς χρειάζονται έλεγχοι στην πρόσβαση του πράκτορα στο δίκτυο και στο σύστημα αρχείων.
- Μια μη αναφερμένη απειλή μπορεί να περάσει. «Καμία αντίρρηση» σημαίνει ότι οι διαθέσιμοι έλεγχοι δεν βρήκαν γνωστό κίνδυνο.
- Το hook πρέπει να εκτελείται για να λειτουργεί η πολιτική. Αν χρησιμοποιείς τη λειτουργία strict, ακολούθησε τις οδηγίες του README του πακέτου για να μπλοκάρονται εντολές όταν το ίδιο το hook δεν ξεκινά.
Ένας πράκτορας προγραμματισμού μπορεί να διορθώσει γρήγορα ένα build. Μπορεί επίσης να ενεργήσει γρήγορα με βάση μια πειστική πρόταση από κάποιον που δεν ξέρεις.
Πριν αυτή η πρόταση αποκτήσει πρόσβαση στο μηχάνημά σου, δώσ' της μια δεύτερη γνώμη.
Το επόμενο βήμα σου: πρόσθεσε το hook σε λειτουργία observe, εξέτασε τα αποτελέσματά του και διάλεξε την πολιτική που ταιριάζει στη ροή εργασίας σου.