раздел 07

settings.json: права, модель, env

Это файл настроек агента (у Claude Code - settings.json). Он отвечает не за знания, а за поведение системы: что агенту разрешено делать без спроса, какую модель использовать, какие переменные окружения ему доступны. Настройки бывают глобальные (для всех проектов) и проектные, и проектные уточняют глобальные.

Разрешения: allow, deny, ask

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

  • allow - можно без спроса. Сюда идёт безопасное и частое: чтение файлов, git status, запуск тестов.
  • ask - спросить подтверждение. Для того, что обычно нормально, но иногда лучше глянуть.
  • deny - нельзя вообще. Сюда идёт разрушительное и опасное.

Пример: наименьшие привилегии

{
  "model": "claude-sonnet-4-5",
  "permissions": {
    "allow": [
      "Read",
      "Edit",
      "Bash(git status)",
      "Bash(git diff:*)",
      "Bash(npm test:*)",
      "Bash(npm run lint)"
    ],
    "ask": [
      "Bash(git push:*)"
    ],
    "deny": [
      "Bash(rm -rf:*)",
      "Bash(sudo:*)",
      "Read(./.env)"
    ]
  },
  "env": {
    "NODE_ENV": "development"
  }
}

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

Выбор модели и переменные

Кроме прав, в настройках задают модель (какую использовать по умолчанию) и переменные окружения - значения, которые агент видит при запуске команд. В env удобно класть неопасные настройки вроде режима сборки. Секреты лучше держать в .env и не завязывать на них права чтения без нужды.

Хорошо и плохо

Хорошо
Наименьшие привилегии: разрешено только безопасное и частое, опасное явно запрещено через deny, спорное - через ask. Доступ к секретам закрыт. Модель выбрана осознанно.
Плохо
Разрешить всё подряд, чтобы не отвлекаться на подтверждения. Никаких deny. Агент может снести файлы, уйти под sudo или прочитать .env. Одна промпт-инъекция - и последствия необратимы.

Куда дальше