Режим одобрения
Qwen Code предлагает пять различных режимов доступа, которые позволяют гибко управлять взаимодействием ИИ с вашим кодом и системой в зависимости от сложности задачи и уровня риска.
Сравнение режимов доступа
| Режим | Редактирование файлов | Shell-команды | Лучше всего подходит для | Уровень риска |
|---|---|---|---|---|
| Plan | ❌ Только анализ в режиме чтения | ❌ Не выполняются | • Исследование кода • Планирование сложных изменений • Безопасное ревью кода | Самый низкий |
| Ask Permissions | ✅ Требуется ручное одобрение | ✅ Требуется ручное одобрение | • Новые/незнакомые кодовые базы • Критические системы • Командная работа • Обучение и преподавание | Низкий |
| Auto-Edit | ✅ Автоматическое одобрение | ❌ Требуется ручное одобрение | • Ежедневные задачи разработки • Рефакторинг и улучшение кода • Безопасная автоматизация | Средний |
| Auto | ✅ Оценивается классификатором | ✅ Оценивается классификатором | • Долгие автономные сессии • Когда Auto-Edit слишком осторожен, а YOLO слишком рискован | Средний |
| YOLO | ✅ Автоматическое одобрение | ✅ Автоматическое одобрение | • Доверенные личные проекты • Автоматизированные скрипты/CI/CD • Задачи пакетной обработки | Самый высокий |
Режим, ранее называвшийся Default, был переименован в Ask Permissions, чтобы лучше описать его поведение. Базовое значение конфигурации (tools.approvalMode: "default") и команда /approval-mode default остались без изменений для обратной совместимости.
Краткое руководство
- Начните в режиме Plan: Отлично подходит для понимания кода перед внесением изменений
- Работайте в режиме Ask Permissions: Сбалансированный выбор для большинства задач разработки
- Переключитесь на Auto-Edit: Когда вы вносите много безопасных изменений в код
- Попробуйте режим Auto: Когда вы хотите меньше прерываний, но при этом нужна безопасность для shell-команд и сетевых вызовов — LLM-классификатор оценивает каждый вызов
- Используйте YOLO с осторожностью: Только для доверенной автоматизации в контролируемых средах
Вы можете быстро переключаться между режимами во время сессии, используя Shift+Tab (или Tab в Windows). В строке состояния терминала отображается текущий режим, так что вы всегда знаете, какие права есть у Qwen Code.
Порядок переключения: plan → default → auto-edit → auto → yolo → plan → …
1. Использование режима Plan для безопасного анализа кода
Режим Plan указывает Qwen Code создавать план, анализируя кодовую базу с помощью операций только для чтения. Это идеально подходит для исследования кода, планирования сложных изменений или безопасного ревью.
Когда использовать режим Plan
- Многоэтапная реализация: Когда для реализации функции требуется внести изменения во множество файлов
- Исследование кода: Когда вы хотите тщательно изучить кодовую базу перед внесением каких-либо изменений
- Интерактивная разработка: Когда вы хотите совместно с Qwen Code итеративно прорабатывать направление развития
Как использовать режим Plan
Включение режима Plan во время сессии
Вы можете переключиться в режим Plan во время сессии, используя Shift+Tab (или Tab в Windows) для циклического переключения режимов доступа.
Если вы находитесь в обычном режиме, Shift+Tab (или Tab в Windows) сначала переключит вас в режим auto-edits, о чем свидетельствует надпись ⏵⏵ accept edits on в нижней части терминала. Последующее нажатие Shift+Tab (или Tab в Windows) переключит вас в режим Plan, о чем свидетельствует надпись ⏸ plan mode.
Использование команды /plan
Команда /plan предоставляет быстрый способ входа и выхода из режима Plan:
Обычные запросы на планирование сами по себе не переключают режимы. Если вам нужен рабочий процесс в режиме Plan (только для чтения), используйте /plan, сочетание клавиш или явно установите режим доступа в plan.
/plan # Войти в режим plan
/plan refactor the auth module # Войти в режим plan и начать планирование
/plan exit # Выйти из режима plan, восстановить предыдущий режимПри выходе из режима Plan с помощью /plan exit ваш предыдущий режим доступа автоматически восстанавливается (например, если до входа в режим Plan вы были в Auto-Edit, вы вернетесь в Auto-Edit).
Запуск новой сессии в режиме Plan
Чтобы запустить новую сессию в режиме Plan, используйте /approval-mode и выберите plan
/approval-modeВыполнение «headless»-запросов в режиме Plan
Вы также можете выполнить запрос в режиме Plan напрямую, используя -p или prompt:
qwen --prompt "What is machine learning?"Пример: Планирование сложного рефакторинга
/plan I need to refactor our authentication system to use OAuth2. Create a detailed migration plan.Qwen Code переходит в режим Plan и анализирует текущую реализацию для создания комплексного плана. Уточняйте план с помощью дополнительных запросов:
What about backward compatibility?
How should we handle database migration?Настройка режима Plan по умолчанию
// .qwen/settings.json
{
"tools": {
"approvalMode": "plan"
}
}2. Использование режима Ask Permissions для контролируемого взаимодействия
Режим Ask Permissions — это стандартный способ работы с Qwen Code. В этом режиме вы сохраняете полный контроль над всеми потенциально рискованными операциями: Qwen Code будет запрашивать ваше одобрение перед внесением любых изменений в файлы или выполнением shell-команд.
Когда использовать режим Ask Permissions
- Новая кодовая база: Когда вы изучаете незнакомый проект и хотите проявить особую осторожность
- Критические системы: При работе с продакшн-кодом, инфраструктурой или конфиденциальными данными
- Обучение и преподавание: Когда вы хотите понять каждый шаг, который делает Qwen Code
- Командная работа: Когда несколько человек работают над одной кодовой базой
- Сложные операции: Когда изменения затрагивают множество файлов или сложную логику
Как использовать режим Ask Permissions
Включение режима Ask Permissions во время сессии
Вы можете переключиться в режим Ask Permissions во время сессии, используя Shift+Tab (или Tab в Windows) для циклического переключения режимов доступа. Если вы находитесь в любом другом режиме, нажатие Shift+Tab (или Tab в Windows) в конечном итоге вернет вас в режим Ask Permissions, о чем свидетельствует отсутствие какого-либо индикатора режима в нижней части терминала.
Запуск новой сессии в режиме Ask Permissions
Режим Ask Permissions является начальным режимом при запуске Qwen Code. Если вы сменили режим и хотите вернуться в Ask Permissions, используйте:
/approval-mode defaultВыполнение «headless»-запросов в режиме Ask Permissions
При выполнении headless-команд режим Ask Permissions используется по умолчанию. Вы можете явно указать его с помощью:
qwen --prompt "Analyze this code for potential bugs"Пример: Безопасная реализация функции
/approval-mode defaultI need to add user profile pictures to our application. The pictures should be stored in an S3 bucket and the URLs saved in the database.Qwen Code проанализирует вашу кодовую базу и предложит план. Затем он запросит одобрение перед:
- Созданием новых файлов (контроллеры, модели, миграции)
- Изменением существующих файлов (добавление новых столбцов, обновление API)
- Выполнением любых shell-команд (миграции базы данных, установка зависимостей)
Вы можете просмотреть каждое предложенное изменение и одобрить или отклонить его индивидуально.
Настройка режима Ask Permissions по умолчанию
// .qwen/settings.json
{
"tools": {
"approvalMode": "default"
}
}3. Режим Auto-Edit
Режим Auto-Edit указывает Qwen Code автоматически одобрять редактирование файлов, но требовать ручного одобрения для shell-команд. Это идеально подходит для ускорения рабочих процессов разработки при сохранении безопасности системы.
Автоматически одобряемые инструменты редактирования включают edit, write_file и notebook_edit.
Когда использовать режим Auto-Edit
- Ежедневная разработка: Идеально подходит для большинства задач кодирования
- Безопасная автоматизация: Позволяет ИИ изменять код, предотвращая случайное выполнение опасных команд
- Командная работа: Используйте в общих проектах, чтобы избежать непреднамеренного влияния на работу других
Как переключиться в этот режим
# Переключение с помощью команды
/approval-mode auto-edit
# Или используйте сочетание клавиш
Shift+Tab (or Tab on Windows) # Переключение из других режимовПример рабочего процесса
- Вы просите Qwen Code рефакторить функцию
- ИИ анализирует код и предлагает изменения
- Автоматически применяет все изменения файлов без подтверждения
- Если необходимо запустить тесты, он запросит одобрение на выполнение
npm test
4. Режим Auto — одобрение на основе классификатора
Режим Auto находится между Auto-Edit и YOLO. LLM-классификатор оценивает каждую shell-команду, сетевой вызов и редактирование вне рабочей области, автоматически одобряя те, которые он считает безопасными, и блокируя рискованные. Большинство операций только для чтения и редактирование внутри рабочей области пропускают этап классификатора для повышения скорости.
Полную справку (конфигурация подсказок, устранение неполадок, FAQ) см. в auto-mode.md.
Когда использовать режим Auto
- Долгие автономные сессии: Когда режим Ask Permissions прерывает работу слишком часто, а YOLO слишком рискован.
- Доверенные проекты: Внутренние кодовые базы, где агент должен продолжать работу, но вам все еще нужен барьер для деструктивных shell-команд и исходящих сетевых вызовов.
- Headless / запланированные запуски: Когда Auto-Edit недостаточно (агенту также нужно выполнять shell-команды), но вам нужна защита от
rm -rf /,curl ... | sh, утечки учетных данных и т.д.
Как использовать режим Auto
Включение режима Auto во время сессии
Нажмите Shift+Tab (или Tab в Windows), чтобы переключиться в режим Auto. В строке состояния отображается активный режим.
Использование команды /approval-mode
/approval-mode autoПри первом входе в режим Auto появляется информационное сообщение, объясняющее, как он работает. Повторно это сообщение не появляется.
Запуск новой сессии в режиме Auto
// .qwen/settings.json
{
"tools": {
"approvalMode": "auto",
},
}Что режим Auto одобряет автоматически, а что блокирует
Классификатор склонен блокировать действия при неопределенности. Значения по умолчанию:
- Автоматически одобряется: команды только для чтения (ls, cat, git status, grep, find), установка пакетов в текущей директории, команды сборки/тестирования, редактирование файлов внутри рабочей области, локальные операции.
- Блокируется: необратимое уничтожение (rm -rf /, fdisk, mkfs), выполнение кода из внешних источников (curl | sh, eval удаленного контента), утечка учетных данных, несанкционированное закрепление (редактирование .bashrc, crontab), ослабление безопасности, принудительный push в main/master.
Вы можете настроить решение классификатора с помощью подсказок на естественном языке в settings.json. См. auto-mode.md.
Гарантии безопасности
- Жесткие правила остаются в силе: правила
permissions.denyблокируют действия до того, как классификатор вообще запустится. - Слишком широкие правила разрешения удаляются в режиме Auto: например,
permissions.allow: ["Bash"](разрешить каждую shell-команду) обходит классификатор; вход в режим Auto временно отключает такие правила, чтобы классификатор мог выполнять свою работу. Правила восстанавливаются, когда вы выходите из режима Auto. Настройки на диске никогда не изменяются. - Отказ в случае недоступности (Fail-closed): когда API классификатора недоступно, действие блокируется, а не разрешается. После двух последовательных недоступных вызовов следующий вызов инструмента возвращается к ручному одобрению.
- Защита от циклов: после трех последовательных блокировок политикой следующий вызов также возвращается к ручному одобрению, чтобы агент не застрял в цикле бесперспективных попыток.
Пример
/approval-mode auto
Refactor the auth module to use OAuth2. Run the full test suite afterwards.Qwen Code вносит изменения в файлы (редактирование внутри рабочей области пропускает классификатор), запускает npm test (классификатор считает это безопасным) и выдает блокировку, если когда-либо попытается сделать что-то рискованное, например rm -rf /Users/me/.aws. Вы можете просмотреть причину inline и решить, стоит ли переключиться в режим Ask Permissions для этого шага.
Настройка режима Auto по умолчанию
// .qwen/settings.json
{
"tools": {
"approvalMode": "auto",
},
"permissions": {
"autoMode": {
"hints": {
"allow": ["Running pytest, mypy, and ruff on this Python repo"],
"deny": ["Any network call to intranet.example.com"],
},
"environment": ["Open-source monorepo; commits are signed"],
// Опционально: пропускать ВСЕ shell-команды (включая только для чтения, такие как
// ls, cat) через классификатор для многоуровневой защиты.
// "classifyAllShell": true,
},
},
}5. Режим YOLO — полная автоматизация
Режим YOLO предоставляет Qwen Code максимальные права, автоматически одобряя все вызовы инструментов, включая редактирование файлов и выполнение shell-команд.
Когда использовать режим YOLO
- Автоматизированные скрипты: Запуск предопределенных автоматизированных задач
- CI/CD пайплайны: Автоматическое выполнение в контролируемых средах
- Личные проекты: Быстрая итерация в полностью доверенных средах
- Пакетная обработка: Задачи, требующие многоступенчатых цепочек команд
Используйте режим YOLO с осторожностью: ИИ может выполнять любую команду с правами вашего терминала. Убедитесь, что:
- Вы доверяете текущей кодовой базе
- Вы понимаете все действия, которые будет выполнять ИИ
- Важные файлы сохранены в резервную копию или закоммичены в систему контроля версий
Как включить режим YOLO
# Временно включить (только для текущей сессии)
/approval-mode yolo
# Установить по умолчанию для проекта
/approval-mode yolo --project
# Установить по умолчанию глобально для пользователя
/approval-mode yolo --userПример конфигурации
// .qwen/settings.json
{
"tools": {
"approvalMode": "yolo"
}
}Пример автоматизированного рабочего процесса
# Полностью автоматизированная задача рефакторинга
qwen --prompt "Run the test suite, fix all failing tests, then commit changes"
# Без участия человека ИИ выполнит:
# 1. Запуск команд тестирования (автоматически одобрено)
# 2. Исправление упавших тестов (автоматическое редактирование файлов)
# 3. Выполнение git commit (автоматически одобрено)Переключение режимов и конфигурация
Переключение с помощью сочетаний клавиш
Во время сессии Qwen Code используйте Shift+Tab (или Tab в Windows) для быстрого циклического переключения между пятью режимами:
Plan Mode → Ask Permissions Mode → Auto-Edit Mode → Auto Mode → YOLO Mode → Plan ModeПостоянная конфигурация
// Project-level: ./.qwen/settings.json
// User-level: ~/.qwen/settings.json
{
"tools": {
"approvalMode": "auto-edit" // или "plan", "default", "auto", "yolo"
}
}Рекомендации по использованию режимов
- Новая кодовая база: Начните с режима Plan для безопасного исследования
- Ежедневные задачи разработки: Используйте Auto-Edit (режим по умолчанию), это эффективно и безопасно
- Автоматизированные скрипты: Используйте режим YOLO в контролируемых средах для полной автоматизации
- Сложный рефакторинг: Сначала используйте режим Plan для детального планирования, затем переключитесь в соответствующий режим для выполнения