Перейти к содержимому

Авто-Одобрение

Меню Авто-Одобрения позволяет устанавливать детализированные разрешения для того, что Kodik делает в автоматическом режиме, не прерывая вас запросами. Эти настройки находятся в отдельном разделе Auto Approve настроек Kodik.

Авто-одобрение отвечает на вопрос «когда Kodik спрашивает разрешение?». Если нужно, чтобы агент вообще не имел какой-то возможности, управляйте инструментом в разделе Harness — это полностью убирает его у агента, а его переключатели автоодобрения становятся неактивными. См. Инструменты.

Image

По умолчанию авто-одобрение отключено: Kodik будет запрашивать ваше подтверждение перед каждым вызовом инструмента, включая чтение или редактирование файлов. После включения авто-одобрения вы задаёте детальные разрешения — отдельно для файлов внутри рабочего пространства и за его пределами.

Переключатель Режим подтверждений (mode) выбирает один из трёх уровней:

  • Стандартные подтверждения (default) — без запроса выполняются только включённые ниже гранулярные разрешения и шаблоны команд; список заблокированных (см. ниже) всегда имеет приоритет. Всё остальное требует подтверждения.
  • Автопилот (autopilot) — все действия и команды терминала выполняются автоматически. Основной ограничитель — суждение самой модели: команду, которую модель пометила как рискованную, всё ещё нужно подтвердить, и карточка одобрения показывает причину от модели (например, «Перезаписывает историю удалённого репозитория» для force-push). Команда из вашего списка заблокированных всё равно запрашивает подтверждение, даже здесь.
  • Полный доступ (fullAccess) — всё выполняется без каких-либо запросов, кроме команд из вашего списка заблокированных, которые всё равно требуют подтверждения. Используйте только в изолированных одноразовых средах.

В режимах Автопилот и Полный доступ также снимается защита чувствительных файлов — агент может редактировать их без дополнительного подтверждения.

В ранних версиях был переключатель Автопилота (autopilotMode). Включённый переключатель автоматически мигрирует в mode: "autopilot"; прежнее поведение Автопилота — отказ от команд с подстановками $(...) — убрано, теперь такие случаи покрывает собственная оценка риска моделью.

Каждое разрешение действует отдельно для файлов внутри рабочего пространства и за его пределами (...Externally).

Разрешение Инструмент По умолчанию
Чтение файлов проекта (readFiles) read_file включено
Чтение всех файлов (readFilesExternally) read_file за пределами workspace выключено
Просмотр файлов и директорий (listFiles) glob включено
Просмотр всех файлов (listFilesExternally) glob за пределами workspace выключено
Поиск в файлах (rg) rg (ripgrep) включено
Поиск во всех файлах (rgExternally) rg за пределами workspace выключено
Получить веб-контент (webFetch) web_fetch выключено
Поиск в интернете (webSearch) web_search выключено
Редактирование файлов проекта (editFiles) edit_file выключено
Редактирование файлов везде (editFilesExternally) edit_file за пределами workspace выключено
Создание файлов проекта (createFiles) create_file выключено
Создание файлов везде (createFilesExternally) create_file за пределами workspace выключено
Удаление файлов проекта (deleteFiles) delete_file выключено
Удаление файлов везде (deleteFilesExternally) delete_file за пределами workspace выключено
Редактирование блокнотов (editNotebooks) edit_notebook выключено
Редактирование блокнотов везде (editNotebooksExternally) edit_notebook за пределами workspace выключено
Редактирование чувствительных файлов (editSensitiveFiles) переопределяет защиту паттернов выключено
Создание чувствительных файлов (createSensitiveFiles) переопределяет защиту паттернов выключено
Удаление чувствительных файлов (deleteSensitiveFiles) переопределяет защиту паттернов выключено

Разрешение ...Externally или на работу с чувствительными файлами автоматически снимается, если соответствующее базовое разрешение выключено. При обновлении прежние разрешения на редактирование один раз копируются в новые разрешения на создание и удаление; после этого три набора настраиваются независимо.

Шаблоны (commandPatterns) позволяют одобрять отдельные команды терминала без включения Автопилота. Каждый шаблон — это паттерн с поддержкой символа * (например, npm run *, git *). Шаблон можно временно отключить, не удаляя его.

Команды сравниваются с шаблоном без учёта регистра; совпадение идёт с начала строки.

Список заблокированных (blockedCommands) — это приоритетный запрет: любая команда, совпадающая с шаблоном из этого списка, всегда требует вашего подтверждения, в любом режиме — Стандартные подтверждения, Автопилот и Полный доступ. Он имеет приоритет над вашими шаблонами команд, поэтому широкое разрешающее правило (например, git *) не сможет автоматически выполнить заблокированную вами команду (например, git push *). Каждый шаблон поддерживает символ * и проверяется для каждого сегмента цепочки команд.

По умолчанию список пуст — из коробки ничего не заблокировано. Добавьте команды, которые никогда не должны выполняться автоматически, в разделе Настройки → Auto Approve → Заблокированные команды. Частые варианты:

  • Удаление файлов: rm *, sudo rm *, del *, Remove-Item *
  • Очистка git: git clean*
  • Уничтожение диска: mkfs*, dd if=*, format *
  • Выключение системы: shutdown*, reboot*
  • Прочее опасное: chmod -R 777 /, chown -R *:* /, :(){:|:&};:

Kodik дополнительно защищает файлы, совпадающие с паттернами чувствительных файлов, даже когда операция с файлами включена (если соответствующее разрешение editSensitiveFiles, createSensitiveFiles или deleteSensitiveFiles не активировано явно). По умолчанию под защитой находятся:

  • Секреты и переменные среды: **/.env, **/.env.*, **/secrets.*, **/secret.*, **/*secret*, **/*password*, **/*credentials*
  • Файлы блокировки пакетов: **/package.json, **/package-lock.json, **/yarn.lock, **/pnpm-lock.yaml, **/composer.lock, **/Gemfile.lock, **/Pipfile.lock, **/poetry.lock, **/cargo.lock
  • Конфигурационные файлы: **/*.config.js/ts/mjs/cjs/json, **/tsconfig.json, **/jsconfig.json, **/babel.config.*, **/webpack.config.*, **/vite.config.*, **/rollup.config.*, **/.eslintrc.*, **/.prettierrc.*
  • Git-файлы: **/.gitignore, **/.gitattributes, **/.gitmodules, **/.git/**
  • Docker и деплой: **/Dockerfile, **/docker-compose.yml/yaml, **/.dockerignore, **/kubernetes/**/*.yaml
  • CI/CD: **/.github/workflows/**, **/.gitlab-ci.yml, **/.circleci/**, **/.travis.yml, **/azure-pipelines.yml, **/Jenkinsfile
  • Файлы IDE: **/.vscode/**, **/.idea/**, **/.vs/**
  • Миграции БД: **/migrations/**, **/migrate/**
  • Все dotfiles: **/.*

Список можно расширить или сократить в настройках.

Kodik всегда может читать собственные конфигурационные файлы (навыки, команды, правила, хуки, подагенты) без каких-либо разрешений авто-одобрения — это не зависит от ваших настроек.

Для большинства рабочих процессов рекомендуется начинать с консервативного набора:

  • Авто-одобрить чтение файлов проекта (readFiles, listFiles, rg)
  • Установить лимит запросов 10–20
  • Оставить редактирование и Автопилот выключенными

По мере роста доверия к агенту можно постепенно добавлять разрешения. Для критической производственной работы стоит ужесточить настройки; для прототипирования в изолированной среде — допустимо включить Автопилот.