Водич · AI агенти · · Стефан Цезаров
Дај му на агентот второ мислење пред да постапи
Го замолуваш агентот за програмирање да поправи build. Го чита README, проверува разговор во issue и наоѓа предлог:
Веројатна поправка. Една мала промена. Агентот ја подготвува командата за инсталација.
Но таа цртичка што недостига е важна. crossenv беше вистински злонамерен пакет, отстранет од npm во 2017 откако беше откриено дека краде променливи на околината — местото каде што програмерите често чуваат клучеви и токени.
Разговорот погоре е пример. Пакетот не беше.
01Кога предлогот станува команда
Агентите за програмирање читаат многу текст што можеби никогаш нема да го видиш: документација, коментари во issues, веб-страници и пораки за грешки. Тој контекст им помага да решаваат проблеми. Може и да ги насочи кон лоша зависност.
Инсталирањето пакет бара посебно внимание. npm пакетите може да содржат скрипти што се извршуваат при инсталација, па кодот може да се изврши пред да имаш можност да го прегледаш.
Чуварот пред инсталација на 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, додај ја оваа кука во .claude/settings.json на твојот проект. Ако датотеката веќе содржи поставки, спои ја куката со нив.
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "npx -y savesavesavesave@0.1.5 hook claude-code --mode observe"
}
]
}
]
}
}
Куката ги проверува предложените Bash команди. Командите без препознаена инсталација минуваат.
За друг агент или скрипта, стави го чуварот пред командата за инсталација:
npx savesavesavesave@0.1.5 guard --mode guard -- npm install some-package
Неговите излезни кодови ѝ кажуваат на твојата интеграција како да продолжи:
0: дозволи1: побарај човечки преглед2: одбиј
Твојата интеграција треба да ги почитува тие резултати.
Агентите со поддршка за MCP можат и директно да бараат проверки. Упатствата за поставување на клиентот се на страницата За агенти.
Не е потребна сметка ниту API клуч. Примерите фиксираат верзија за да можеш да прегледаш одредено издание пред да го користиш.
05Знај што покрива проверката
Чуварот чита информации објавени од npm регистарот и OSV.dev. Не го презема ниту извршува пакетот и моментално покрива npm пакети, не екосистеми како PyPI или crates.io.
Тоа остава неколку практични ограничувања:
- Ги проверува поддржаните команди што ги прима. Инсталации скриени во скрипти, неподдржани менаџери на пакети или преземени бинарни датотеки може да бидат надвор од неговиот поглед. За посилни ограничувања се потребни контроли на мрежниот пристап и пристапот до датотечниот систем на агентот.
- Непријавена закана може да помине. „Без приговор“ значи дека достапните проверки не нашле познат ризик.
- Куката мора да се изврши за политиката да функционира. Ако користиш strict режим, следи ги упатствата во README на пакетот за блокирање команди кога самата кука не успева да се стартува.
Агентот за програмирање може брзо да поправи build. Може и брзо да постапи по уверлив предлог од некој што не го познаваш.
Пред тој предлог да добие пристап до твојата машина, дај му второ мислење.
Твојот следен чекор: додај ја куката во observe режим, прегледај ги резултатите и избери ја политиката што одговара на твојот работен тек.