Безопасно ли доверять ИИ запуск команд в терминале? Да — на своей машине, в репозитории, который можно откатить, и только после того, как вы прочитали, что сейчас выполнится. Нет — в тот момент, когда инструмент отправляет вывод модели прямо в оболочку без подтверждения. Дальше — модель угроз, из которой этот ответ и следует.
1. Что именно вы отдаёте
Агент с доступом к shell может делать всё, что может ваш пользователь: читать переменные окружения, а в них — токены; читать ~/.ssh и ~/.aws/credentials; менять конфиги; ставить сервисы, которые переживут перезагрузку. Это не гипотеза про «злой ИИ» — достаточно одной ошибки.
2. Разница между «предложить» и «выполнить»
$ clai удали все остановленные контейнеры и неиспользуемые образы→ docker system prune -a⚠ CAUTION — удалит все образы, не занятые запущенными контейнерамиЗапустить? введите yes для подтверждения:
Генерация и запуск — два разных шага. Инструмент, который отправляет вывод модели прямо в оболочку, убрал единственный барьер между опечаткой модели и вашим диском.
3. Три уровня риска, которые стоит различать
SAFE — читающие команды: ls, ps, df, git log. Ошибка стоит времени.
CAUTION — меняющие состояние: docker prune, git reset, systemctl restart, chmod -R. Ошибка стоит работы.
DANGER — необратимые: rm -rf, dd, mkfs, DROP TABLE, force push. Ошибка стоит данных.
Полезен не сам ярлык, а то, что он заставляет остановиться ровно там, где цена ошибки меняется на порядок.
4. Просите холостой прогон
$ clai синхронизируй эту папку на прод, но сначала покажи что будет сделано→ rsync -av --dry-run ./build/ deploy@prod:/var/www/
Почти у всякой разрушительной операции есть режим «только показать»: rsync --dry-run, git clean -n, find без -delete. Просите его первым, когда дело касается прода.
5. Ограничивайте радиус поражения, а не доверие
Отдельный пользователь для агентских задач. Токены с минимальными правами и сроком жизни. Прод трогаем через отдельный канал с ревью. Это те же правила, что и для стажёра в первый день, и они работают ровно потому, что не зависят от того, насколько хороша модель.
6. Проверяйте, что именно выполнялось
$ clai покажи последние 20 команд, которые я запускал через clai→ cliai log --tail 20
Локальный журнал запросов даёт разбор постфактум. Если что-то пошло не так, вы видите, какая формулировка породила какую команду.
Грабли
- Опасна не только разрушительная команда, но и утечка. Агент, который на отладке распечатал переменные окружения, только что положил ваши токены в лог, а лог, возможно, уезжает наружу.
- «Я потом посмотрю» не работает. Читать команду нужно до Enter. После Enter вы читаете уже последствия.
- Автономный режим на своей машине и на проде — разные решения. В одноразовой песочнице и git-репозитории автозапуск разумен. На сервере с данными — нет.
Похожие вопросы
Можно ли давать ИИ доступ к терминалу? На обратимой работе — в git-репозитории, в песочнице, на своей машине — да, при условии подтверждения перед запуском. На проде — только режим «покажи, я решу».
Чем это отличается от копипаста со Stack Overflow? Принципиально ничем, и это главный аргумент. Команду из интернета вы тоже читаете перед запуском. Разница лишь в том, что здесь она сгенерирована под вашу систему.
Что делать, если команда всё-таки выполнилась не та? Остановите процесс, посмотрите локальный лог запросов, оцените урон. Именно поэтому необратимые операции требуют ввода подтверждения, а не одной клавиши.
Читайте также
- SAFE, CAUTION, DANGER: как CliAI классифицирует команду перед запуском
- Почему CLI, а не чат: философия CliAI
- Команда shell из обычного текста: как это работает
CliAI показывает команду и ждёт подтверждения перед тем, как выполнить что-то разрушительное — начать здесь.