Главная/Документация/Основные понятия/Права доступа
Основные понятия

Права доступа

Настройка режимов прав доступа AIKraft Agents для управления автономностью агента при выполнении операций.

AIKraft Agents может выполнять мощные операции от вашего имени — чтение файлов, запуск команд и изменение документов. Чтобы сохранить контроль, приложение предоставляет три режима прав, определяющих степень автономности агента.

Настройка через чат: Вы можете попросить агента настроить права доступа за вас. Попробуйте «Разрешить npm build в режиме Изучения» или «Позволь мне запускать pytest без подтверждений» — агент автоматически обновит конфигурацию.

Режимы прав доступа

AIKraft Agents предлагает три различных режима прав. Используйте SHIFT+TAB, чтобы переключаться между ними:

Режим Описание Сценарий применения
Изучение Только чтение Безопасное исследование и анализ
Спрашивай перед правкой Подтверждение перед изменениями Режим по умолчанию для контролируемой работы
Автономно Полное автономное выполнение Доверенные автоматизированные рабочие процессы

Режим Изучения (Безопасный режим)

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

Разрешённые операции:

  • Read - Чтение содержимого файлов
  • Glob - Поиск файлов по шаблону
  • Grep - Поиск по содержимому файлов
  • WebSearch, WebFetch - Веб-поиск и загрузка контента
  • Task, TaskOutput - Задачи суб-агентов
  • TodoWrite, SubmitPlan - Операции планирования
  • LSP - Запросы к языковому серверу (подсказки, определения и т.д.)
  • Команды bash только для чтения (см. Безопасные команды ниже)

Блокируемые операции:

  • Write - Создание или перезапись файлов
  • Edit, MultiEdit - Изменение содержимого файлов
  • NotebookEdit - Изменение Jupyter ноутбуков
  • Мутации bash (rm, mv, mkdir и т.д.)
  • Мутации MCP-инструментов (операции создания, обновления, удаления)
  • Мутации API (запросы POST, PUT, DELETE)

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

Режим Спрашивай перед правкой (По умолчанию)

Режим Спрашивай перед правкой используется по умолчанию. Он использует трёхуровневую систему прав:

Тип команды Поведение
Безопасные команды Автоматически разрешаются (как в режиме Изучения)
Обычные команды Запрашивают подтверждение, можно использовать «всегда разрешать»
Опасные команды Запрашивают подтверждение, «всегда разрешать» отключено

Когда агенту нужно выполнить не безопасную команду, вы увидите запрос прав:

terminalbash
The agent wants to run: npm install lodash

Allow? [y]es / [n]o / [a]lways allow

Ваши варианты:

  • y (yes) - Разрешить эту конкретную операцию
  • n (no) - Отклонить запрос
  • a (always) - Разрешить эту команду на остальное время сессии (отключено для опасных команд)

Режим Автономно (Разрешить всё)

Режим Автономно предоставляет агенту полные возможности автономного выполнения. Операции выполняются без запросов, что позволяет быстро выполнять непрерывные рабочие процессы.

Режим Автономно обходит запросы прав. Используйте его только при полном доверии выполняемым операциям, например, в контролируемых сценариях автоматизации.

Переключение режимов

Нажмите SHIFT+TAB, чтобы переключаться между режимами прав:

terminalbash
Изучение → Спрашивай перед правкой → Автономно → Изучение → ...

Текущий режим всегда отображается в интерфейсе, чтобы вы знали, насколько агент автономен.

Опасные команды

Опасные команды — это подмножество не безопасных команд, требующих особой осторожности. Ключевое отличие от обычных команд:

  • Обычные команды: Могут быть автоматически разрешены с «всегда разрешать» на время сессии
  • Опасные команды: Должны одобряться индивидуально каждый раз («всегда разрешать» молча игнорируется)
  • Особый случай curl/wget: «Всегда разрешать» добавляет домен в белый список, а не команду

В режиме Автономно все команды, включая опасные, выполняются автоматически.

terminalbash
rm, rmdir              # Удаление файлов/каталогов
mv, cp                 # Перемещение/копирование файлов (может перезаписать)
sudo, su               # Эскалация привилегий
chmod, chown, chgrp    # Изменение прав доступа
dd, mkfs, fdisk, parted # Операции с дисками
kill, killall, pkill   # Завершение процессов
reboot, shutdown, halt, poweroff # Управление системой
curl, wget             # Сетевые загрузки (могут загрузить вредоносный контент)
ssh, scp, rsync        # Удалённый доступ/передача
git push               # Отправка в удалённый репозиторий
git reset              # Сброс состояния git
git rebase             # Переписывание истории git
git checkout           # Может уничтожить изменения

Безопасные команды

Режим Изучения разрешает обширный набор команд только для чтения. Эти команды выполняются без запросов в любом режиме:

Исследование файлов:

terminalbash
ls, ll, la, tree       # Просмотр каталогов
cat, head, tail, less, more  # Просмотр файлов
file, stat, du, df, wc # Информация о файлах
bat                    # Современная альтернатива с подсветкой синтаксиса

Инструменты поиска:

terminalbash
find, locate, which, whereis, type
grep, rg, ag, ack, fd, fzf

Git (только чтение):

terminalbash
git status, git log, git diff, git show
git branch, git tag, git remote
git stash list, git blame, git reflog

GitHub CLI (только чтение):

terminalbash
gh pr view/list, gh issue view/list
gh repo view, gh release list
gh api (GET-запросы только)

Менеджеры пакетов (только чтение):

terminalbash
npm ls/list/view/outdated/audit
yarn list/info/why/outdated
pnpm list/ls/why/outdated
pip list/show/freeze
cargo tree/metadata
go list/mod graph

Docker & Kubernetes (только чтение):

terminalbash
docker ps, images, logs, inspect, stats
kubectl get, describe, logs, top, explain

Системная информация:

terminalbash
pwd, whoami, id, uname, hostname
date, uptime, env, ps, free

Обработка текста:

terminalbash
jq, yq, xq, xmllint    # Процессоры структурированных данных
sort, uniq, cut, tr, column
sed -n (режим печати только)

Сетевая диагностика:

terminalbash
ping, traceroute, dig, nslookup
netstat, ss, ip addr/link/route

Проверка версий:

terminalbash
node --version, python --version
npm --version, cargo --version
(и другие команды проверки версий сред выполнения)

Настройка режима Изучения

Просто спросите своего агента. Самый простой способ настроить режим Изучения — сообщить агенту, что вам нужно:
  • «Разрешить npm build в режиме Изучения»
  • «Позволь комментариям Linear работать в безопасном режиме»
  • «Добавь bun run test в разрешённые команды»
Агент автоматически обрабатывает файлы конфигурации.

Если вы предпочитаете ручную настройку, права доступа в режиме Изучения чрезвычайно настраиваемы. Вы можете расширить разрешения в соответствии с вашим рабочим процессом — добавить конкретные команды bash, шаблоны MCP-инструментов, конечные точки API и даже пути для записи файлов.

Конфигурация прав доступа

Права доступа настраиваются с помощью файлов permissions.json на нескольких уровнях:

terminalbash
~/.craft-agent/permissions/default.json                    # Широкие настройки по умолчанию
~/.craft-agent/workspaces/{id}/permissions.json            # Специфичные для workspace
~/.craft-agent/workspaces/{id}/sources/{slug}/permissions.json  # Специфичные для источника

Более специфичные конфигурации расширяют (а не заменяют) общие. Шаблоны на уровне источника автоматически ограничены инструментами этого источника.

Схема конфигурации

terminaljson
{
  "allowedBashPatterns": [
    { "pattern": "^npm run build\\b", "comment": "Разрешить npm build" },
    { "pattern": "^make\\s+test\\b", "comment": "Разрешить make test" }
  ],
  "allowedMcpPatterns": [
    { "pattern": "create_draft", "comment": "Разрешить создание черновиков" }
  ],
  "allowedApiEndpoints": [
    { "method": "POST", "path": "/api/drafts", "comment": "Создание черновиков" }
  ],
  "allowedWritePaths": [
    "tmp/**",
    "*.draft.md"
  ]
}

Типы шаблонов

allowedBashPatterns - Шаблоны regex для команд bash:

terminaljson
{ "pattern": "^npm run (build|test|lint)\\b", "comment": "npm скрипты" }

allowedMcpPatterns - Шаблоны, соответствующие именам MCP-инструментов:

terminaljson
{ "pattern": "linear_create_comment", "comment": "Разрешить комментарии Linear" }

Шаблоны на уровне источника автоматически ограничены. В permissions.json источника запишите create_comment, и он становится mcp__linear__.*create_comment внутренне — .* означает, что шаблон соответствует где-либо в суффиксе имени инструмента.

allowedApiEndpoints - Комбинации HTTP-метода и пути:

terminaljson
{ "method": "POST", "path": "/api/comments", "comment": "Создание комментариев" }

Метод должен быть одним из: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS. Путь — это шаблон regex.

allowedWritePaths - Шаблоны glob для путей файлов, которые агент может писать в режиме Изучения:

terminaljson
["plans/**", "drafts/**", "*.tmp"]

Пример: Разрешить npm скрипты в режиме Изучения

Создайте ~/.craft-agent/permissions/default.json:

terminaljson
{
  "allowedBashPatterns": [
    { "pattern": "^npm run\\b", "comment": "Все npm скрипты" },
    { "pattern": "^yarn\\b", "comment": "Все команды yarn" },
    { "pattern": "^bun run\\b", "comment": "Все скрипты bun" }
  ]
}

Пример: Разрешить комментарии Linear в режиме Изучения

Создайте ~/.craft-agent/workspaces/{id}/sources/linear/permissions.json:

terminaljson
{
  "allowedMcpPatterns": [
    { "pattern": "create_comment", "comment": "Разрешить публикацию комментариев" }
  ]
}

Блокируемые конструкции оболочки

Даже разрешённые команды блокируются, если они содержат потенциально опасные конструкции оболочки:

Цепочки команд - Могут быть связаны с опасными командами:

terminalbash
&&  ||  ;  |  &  |&

Перенаправления - Могут перезаписать файлы:

terminalbash
>  >>  >&

Подстановка - Могут выполнить встроенные команды:

terminalbash
$()  `backticks`  <()  >()

Управляющие символы - Действуют как разделители команд:

terminalbash
новые строки, возвраты кареты

Для составных команд, где все части безопасны (например, git status && git log), система проверяет каждую часть отдельно с использованием AST-парсинга.

Даже безопасные команды становятся заблокированными при комбинировании с конструкциями оболочки. Например, ls | grep foo блокируется в режиме Изучения, потому что конвейер может использоваться для связи с опасными командами. Выполняйте безопасные команды отдельно, без конвейеров и перенаправлений.

API и MCP учётные данные

Учётные данные для внешних сервисов обрабатываются безопасно:

  • Хранятся зашифрованными в ~/.craft-agent/credentials.enc
  • Никогда не отображаются в открытом виде после ввода
  • Ограничены определёнными workspace и источниками
  • Вы контролируете, какие сервисы может использовать каждый агент

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

Рекомендации

Начинайте с режима Изучения

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

Используйте Спрашивай перед правкой для обычной работы

Режим по умолчанию Спрашивай перед правкой обеспечивает хороший баланс производительности и контроля для большинства задач.

Резервируйте Автономно для доверенных рабочих процессов

Используйте режим Автономно только для хорошо понятных, повторяемых задач, в которых вы доверяете действиям агента.

Настройте режим Изучения для вашего рабочего процесса

Добавьте ваши часто используемые команды сборки, тестовые фреймворки и безопасные MCP-операции в permissions.json, чтобы они работали в режиме Изучения.

Просматривайте перед одобрением

В режиме Спрашивай перед правкой, возьмите минуту, чтобы прочитать, что изменится, прежде чем одобрять, особенно для незнакомых операций.

Нужен такой агент в вашей компании?

Устанавливаем под ключ: настройка на компьютерах сотрудников, единый аккаунт, интеграция с 1С и внутренними системами, обучение команды. Подробнее о внедрении →