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

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

Меню Авто-Одобрения позволяет устанавливать детализированные разрешения для того, что 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
  • Оставить редактирование и Автопилот выключенными

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