SaveSaveSaveSave ← Всички ръководства English

Ръководство · AI агенти · · Стефан Цезаров

Дай на агента си второ мнение, преди да действа

Молиш агента си за програмиране да оправи билд. Той чете README, преглежда дискусия в issue и намира предложение:

cross-env is slow on Windows. Switch to crossenv, same API, much faster.

Правдоподобна поправка. Една малка промяна. Агентът подготвя командата за инсталиране.

Но липсващото тире има значение. 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Ти избираш правилата

Проверката дава доказателства: какво е проверила, какво е открила и какво не е могла да оцени. Правило, което работи на твоята машина, решава какво следва.

Избери един от три режима:

РежимОтчетен като зловреденCaution или недостатъчно данниПроверката се проваля или източникът е извън регистъра
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

Изходните ѝ кодове казват на интеграцията ти как да продължи:

Интеграцията ти трябва да спазва тези резултати.

Агенти с поддръжка на MCP могат да искат проверки и директно. Инструкциите за настройка на клиента са на страницата За агенти.

Не е нужен акаунт или API ключ. Примерите фиксират версия, за да можеш да прегледаш конкретно издание, преди да го използваш.

05Знай какво покрива проверката

Защитата чете информация, публикувана от npm регистъра и OSV.dev. Тя не изтегля и не изпълнява пакета и засега покрива npm пакети, а не екосистеми като PyPI или crates.io.

Това оставя няколко практически ограничения:


Агентът за програмиране може бързо да оправи билд. Може и бързо да изпълни убедително предложение от човек, когото не познаваш.

Преди това предложение да получи достъп до машината ти, дай му второ мнение.

Следващата ти стъпка: добави куката в режим observe, прегледай резултатите ѝ и избери правилото, което пасва на работния ти процес.