Kimi Code Never Ask: почему в нём не работает защита от опасных команд

Практический гайд · 8 мин чтения
Практический гайд: Kimi Code Never Ask: почему в нём не работает защита от опасных команд. tarasovcode
Практический гайдKimi Code Never Ask: почему в нём не работает защита от опасных команд

В Kimi Code режим Never Ask (/auto) одобряет всё сам: rm -rf, shutdown и reboot он выполнит без единого вопроса. Спросит перед такими командами агент только в 2 других режимах, Always Ask и Ask When Needed.

Я сам в Claude Code работаю в режиме «разрешить всё», иначе будем сидеть и пальцем тыкать: да, да, да. Но каждый 10-й раз агент делает по-своему. У нас агент однажды взял и удалил базу: решил, что её надо снести целиком, и снёс. Хорошо, что была резервная копия, мы её сделали за 3 дня до этого.

Поэтому личные проекты и прототипы можно держать на полном доступе, а там, где живые клиенты, агент получает базу только на чтение. Тогда он, даже если очень захочет удалить базу, не сможет.

Разберём, что делает каждый режим Kimi Code, где работает защита и как поставить запрет. Погнали.

Новые разборы агентов - в канале:

Чем отличаются 3 режима Kimi Code?

Если вы уже поставили Kimi Code, то видели панель подтверждения: агент хочет поправить файл или запустить команду и ждёт вашего «да». Раньше режимы назывались Manual, YOLO и Auto, поэтому команды у них старые: /yolo и /auto.

Always Ask. Стоит по умолчанию. Файлы агент читает без вопросов, а каждую правку и каждую команду вы подтверждаете отдельно. Это самый медленный режим.

Ask When Needed. Включается командой /yolo. Обычные правки и команды одобряет сам, но спросит перед доступом к .env (файл с паролями и ключами проекта) и SSH-ключам от серверов, перед опасными командами вроде shutdown (выключить компьютер) и rm -rf (удалить папку целиком, мимо корзины) и перед выходом из режима плана. Агент может и сам задать вам вопрос.

Never Ask. Включается командой /auto. Все подтверждения проходят автоматически, включая чувствительные файлы и выход из плана. Агент вам вопросов не задаёт и всё решает сам.

Таблица трёх режимов прав Kimi Code: Always Ask, Ask When Needed, Never Ask
3 режима прав Kimi Code CLI.

Режим плана (Plan mode) включается отдельно, через Shift-Tab или /plan: агент сначала пишет план и ждёт вашего одобрения, потом трогает файлы.

Когда я сам работаю без подтверждений

В Claude Code у меня по умолчанию стоит режим «разрешить всё», он включается в каждом новом чате. Без него вайбкодинг слишком медленный. Вайбкодер и так мало что понимает, а ему ещё кнопки постоянно нажимать: да, да, да, нет, нет, нет.

Но в таком режиме агент может выполнить абсолютно любую дичь, в том числе снести базу данных. Потом скажет «прости, извини», а то, что он натворил, иногда уже не исправить. Поэтому это режим для бесстрашных, и ответственность за него на вас.

Мои правила такие. Личные проекты, эксперименты, прототипы без живых клиентов, особенно на своём компьютере: работайте без подтверждений, проблем не будет. Но если включить такой режим в том же проекте, где лежит доступ к рабочему серверу, хватит 1 промпта, и за ночь агент удалит там базу и выкатит изменения на живой сайт.

Если вы собираете свои проекты с ИИ-агентами, посмотрите программу практикума tarasovcode.

Почему запрет словами не спасает

Многие пишут агенту в инструкциях: «базу не трогай». Не надейтесь, что это вас спасёт. Вы ему говорите: дружище, не надо сюда ходить. А он всё равно сходит и возьмёт, когда ему будет надо. Особенно китайская Kimi: она нарушит любой ваш запрет. Американские модели гораздо лучше приучены так не делать.

При этом Kimi у меня в работе. Kimi K3 очень внимательная штука, я гоняю её на проверку проектов на утечки ключей и на сбор информации. Однажды за пару дней выжег на ней все лимиты. Kimi не вредничает и делает всё, что вы попросите. Поэтому с ней и нужны изоляции. Как я её проверял на своих задачах, рассказал здесь.

Какую модель я беру под какую задачу, у меня собрано в таблицу. Её и полную схему Hermes Agent с нуля я отдаю бесплатно: пост от 24.09 в канале, в нём ещё 3 видео и PDF со всеми командами установки. Забрать можно здесь.

Изоляций нужно 2:

  1. Чёрный список команд в настройках. Это команды, которые агент не выполнит никогда.
  2. База только на чтение. На живой базе у агента отдельный пользователь с правами только на чтение. Тогда даже в Never Ask агент базу не снесёт.

Где работает защита от опасных команд

Встроенная защита от опасных команд в Kimi Code включена по умолчанию. Перед shutdown, reboot (перезагрузить) или rm -rf она спросит подтверждение в Always Ask и Ask When Needed. В Never Ask эти команды выполняются без остановки.

Есть 2 исключения:

  • rm -rf выполняется без вопроса, если удаляет только содержимое временных папок /tmp или /temp (с версии 0.43.0);
  • в Ask When Needed Kimi Code не спрашивает про команды терминала, которые не может разобрать заранее (с версии 2.0.1).

В версии 0.40.0 режим Auto опасные команды блокировал, с 0.41.0 эту блокировку сняли.

Раньше/сейчас: автономный режим Kimi Code блокировал опасные команды, теперь нет
0.40.0: Auto блокировал опасные команды. 0.41.0: блокировку сняли.

Защиту можно выключить строкой dangerous_command_guard = false в разделе [permission] файла настроек ~/.kimi-code/config.toml или переменной KIMI_CODE_DANGEROUS_COMMAND_GUARD=false. Разработчики советуют делать это только там, где опасные команды уже перехватываются снаружи.

Как поставить постоянный запрет в Kimi Code

Когда агент хочет что-то изменить, Kimi Code показывает панель подтверждения:

  • Approve: стрелками и Enter или сразу клавишей 1, 2 или 3;
  • Reject: Esc, Ctrl-C или Ctrl-D;
  • Approve for this session: такой же вызов одобряется до конца сессии;
  • Permanent rules: постоянное правило allow или deny в файле настроек.

Постоянные правила пишутся в файл настроек ~/.kimi-code/config.toml блоками [[permission.rules]]. Kimi Code проверяет их по порядку, срабатывает первое совпадение, поэтому запреты ставьте выше разрешений. У каждого правила decision: allow (разрешить сразу), deny (запретить сразу) или ask (спрашивать каждый раз).

Запрет на rm -rf и вопрос перед любой другой командой терминала:

toml
[[permission.rules]]
decision = "deny"
pattern = "Bash(rm -rf*)"

[[permission.rules]]
decision = "ask"
pattern = "Bash"

Для команд терминала шаблон пишется в скобках: Bash(шаблон-команды), для чтения файлов Read(шаблон-пути). Инструменты MCP, AgentSwarm и ваши собственные инструменты запрещаются только по имени целиком.

Если вы не технарь и файл настроек открывать не хотите, просто вставьте агенту промпт ниже: он сам найдёт, что закрыть. Только сначала пусть скажет, что вы потеряете в скорости. Если вы привыкли работать без подтверждений, после запретов у вас кое-что отвалится. Вот мой промпт:

Проанализируй мой проект и скажи, есть ли у тебя доступ к рабочему серверу, к промежуточной базе данных и к боевым ключам. Если есть, настрой защиту от опасных команд: запрет на удаление папок целиком, на команды, которые переписывают историю изменений без возврата, и на прямые команды к боевой базе. Сначала покажи план в формате «как было - как станет» и честно скажи, что я потеряю в скорости.

Как то же самое настроить в Claude Code, я разбирал в отдельной статье. А ещё посмотрите, как Auto mode в Claude Code проверяет действия агента.

Какой режим выбрать

  • Хотите видеть каждый шаг агента: Always Ask, он стоит по умолчанию. Подтверждаете всё, кроме чтения.
  • Личный проект или прототип без живых клиентов: можно без подтверждений. Ask When Needed хотя бы остановится перед опасными командами, Never Ask не остановится нигде.
  • Проект с живыми клиентами и доступом к серверу: Never Ask не включайте. Ставьте запреты deny в config.toml и давайте агенту базу только на чтение.

И делайте резервные копии базы, на отдельной машине от проекта. Остальные правила безопасности собраны в отдельной статье.

А вы в каком режиме работаете с агентом: подтверждаете каждый шаг или даёте ему полную свободу? Напишите в комментариях в канале, интересно, у кого агент уже что-то сносил.

Источники

  • Kimi Code: Interaction and input - 3 режима прав, /yolo, /auto, защита от опасных команд по режимам, панель подтверждения, Plan mode.
  • Kimi Code: Configuration files - [[permission.rules]], порядок проверки правил, dangerous_command_guard, KIMI_CODE_DANGEROUS_COMMAND_GUARD, путь config.toml.
  • Kimi Code: Changelog - версии 0.40.0, 0.41.0, 0.43.0 и 2.0.1: защита от опасных команд и переименование режимов.

Новые материалы - дайджестом, без спама

Гайды выходят регулярно. Подпишись, чтобы не пропускать: пришлю подборку в Telegram или на email. Раз в неделю или каждый день - выбираешь сам.

Илья Тарасов

Илья Тарасов

Основатель TarasovWeb и TarasovAgency. Предприниматель и веб-разработчик.

Об авторе проекта · Обсудить проект

Читайте также