Блог

Kimi Code Never Ask: режимы подтверждения и опасные команды

Markdown

Разбираем режим Never Ask в Kimi Code: как работают три режима подтверждения, почему опасные команды могут выполняться автоматически и как задать постоянные запреты в config.toml.

Читать статью полностью

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

При работе с агентами удобно отключить постоянные подтверждения, иначе приходится раз за разом нажимать «да». Но даже при таком подходе агент иногда действует неожиданно. Даже личный прототип может открыть ценные файлы и ключи. Используйте изолированную копию или контейнер с ограниченными правами и проверенной резервной копией. Для систем клиентов дополнительно выделите отдельную учётную запись базы только с необходимым доступом.

Далее рассмотрим режимы Kimi Code, встроенные ограничения и способы задать постоянный запрет.

О работе с сервисом читайте в документации Ailoot.

В Kimi Code предусмотрено три режима. По умолчанию включён Always Ask: агент читает файлы самостоятельно, но для остальных действий запрашивает отдельное подтверждение. Ask When Needed (/yolo) автоматически одобряет обычные изменения, но спрашивает о чувствительных файлах, опасных командах и выходе из режима плана. Never Ask (/auto) не задаёт вопросов, поэтому защита от опасных команд в этом режиме не останавливает выполнение. Постоянные ограничения можно задать правилом deny в ~/.kimi-code/config.toml. Не включайте Never Ask в проекте с рабочей базой.

В чём разница между тремя режимами Kimi Code?

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

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

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

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

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

Когда уместно работать в Kimi Code без подтверждений?

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

В личных проектах, экспериментах и прототипах режим без подтверждений рассматривайте только внутри изолированной копии или контейнера без ценных файлов и рабочих ключей, с ограниченными правами и резервной копией. Отсутствие клиентов не защищает личные файлы и ключи; изоляцию тоже нужно проверить.

Почему инструкции на естественном языке недостаточно

Фраза в инструкциях вроде «не трогай базу» сама по себе не блокирует команду технически. Агент может обратиться к базе, если сочтёт это нужным. Поэтому важные ограничения следует задавать настройками и правами доступа, а не только текстовой просьбой.

Kimi Code можно применять для проверки проектов, например для поиска утечек ключей и сбора информации. Чтобы снизить риск при работе с такими задачами, настройте два ограничения:

  1. Список запретов команд в настройках. Он блокирует совпавшие вызовы, но шаблон одного написания не закрывает другие инструменты и эквивалентные действия. Дополните его правами ОС, контейнера и базы.
  2. Доступ к базе только для чтения. Для рабочей базы используйте отдельного пользователя без прав на запись. Даже в режиме Never Ask агент не сможет удалить или изменить данные, если у учётной записи нет таких полномочий.

Где действует защита от опасных команд

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

Есть два исключения:

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

В версии 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, а для остальных команд терминала требовать подтверждение, добавьте:

[[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. Он установлен по умолчанию; подтверждать нужно всё, кроме чтения.
  • Личный проект или прототип без клиентов: начните с Always Ask или Ask When Needed. Never Ask рассматривайте только для изолированной одноразовой копии с ограниченными правами без ценных данных и ключей. Отсутствие клиентов само по себе не добавляет безопасности.
  • Проект связан с клиентами и рабочим сервером: не включайте Never Ask. Задайте запреты deny в config.toml и выдайте агенту доступ к базе только для чтения.

Создавайте резервные копии базы на отдельной от проекта машине. Другие рекомендации по безопасности собраны в отдельной статье.

Сверьте режим подтверждений с доступами проекта и определите, какие действия нужно запретить.

Официальные источники

  • Kimi Code: Interaction and input — описание трёх режимов, команд /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, связанные с защитой опасных команд и названиями режимов.

Познакомьтесь с Ailoot.

Подробнее

Вопросы и ответы

Безопасен ли Never Ask просто потому, что у проекта нет клиентов?

Нет. Агент всё равно может повредить личные файлы или раскрыть ключи. До режима без подтверждений нужны ограниченные права, изолированная одноразовая копия или контейнер и резервная копия.

Заменяет ли deny для rm -rf изоляцию?

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

Все статьи