# Инструкции, подтверждения и настройка

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

Задайте ассистенту чёткие предпочтения письма и выберите, как он обращается с изменениями. Инструкции описывают нужную вам работу; элементы управления подтверждениями решают, какие действия инструментов могут выполняться.

![Настройки → ИИ-ассистент → Инструкции. Задайте модель по умолчанию, напишите свои инструкции, затем нажмите «Сохранить инструкции». Захват страниц PDF находится под текстовым полем.](https://cdn.oleafly.com/images/screenshots/desktop/docs/settings-instructions-dark-window-v2.png#view=519,89,883,724)

## Модель чата по умолчанию

Откройте **Настройки → ИИ-ассистент → Инструкции**. Выберите **Модель чата по умолчанию**, чтобы задать модель, используемую для нового чата. Список содержит включённые модели от настроенных вами поставщиков. Модель всё равно можно сменить в отдельной беседе.

## Свои инструкции

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

```text title="Пример инструкций для написания текста"
Use British English and preserve the terminology already used in the paper.
Keep citation keys, labels, equations, and numerical results unchanged unless
I explicitly ask you to edit them.
When a statement needs evidence, mark it for a source check. Do not invent
references or results.
Explain substantive changes briefly so I can review them.
```

Сделайте эти инструкции достаточно конкретными, чтобы вести правку, но не повторяйте в них всё техническое задание проекта. Они дополняют встроенное поведение ассистента и не меняют его прав на инструменты.

## Сохранить инструкции

Нажмите **Сохранить инструкции** после правки. Индикатор **Сохранено** подтверждает, что изменения записаны. Несохранённая правка в этом поле не становится вашим новым значением по умолчанию.

## Разрешить ИИ снимать страницы PDF

Включите **Разрешить ИИ снимать страницы PDF**, чтобы ассистент мог просматривать свёрстанные страницы моделью с поддержкой изображений. Инструмент `verify_pdf_pages` растрирует скомпилированные страницы для проверки вёрстки. Отключите этот переключатель, если не хотите отправлять изображения страниц настроенному поставщику.

## Просмотр каталога инструментов

Разверните список **Сейчас ассистент поддерживает эти инструменты** на вкладке «Инструкции». Используйте его, чтобы увидеть, какую работу может выполнять ассистент, а затем просите о результате: скомпилировать раздел, проверить PDF или найти неразрешённую ссылку.

## Персоны

![Настройки → ИИ-ассистент → Персоны. Кнопка «Создать персону» находится над списком; элементы правки и удаления — рядом с каждой персоной.](https://cdn.oleafly.com/images/screenshots/desktop/docs/settings-personas-dark-window-v2.png#view=519,89,883,902)

Персона — это именованный набор инструкций. Создайте её в разделе **Настройки → ИИ-ассистент → Персоны**, затем выберите в поле ввода чата под конкретный вид работы. Например, заведите краткую персону для вычитки и отдельную персону-рецензента.

Активная персона задаёт набор инструкций для беседы вместо стандартного текста пользовательских инструкций. Включите в неё и те постоянные предпочтения, которые ей тоже нужны. Персона меняет указания; она не даёт прав на инструменты.

## Выбор режима подтверждения

![Откройте меню подтверждений под полем сообщения. Выбранный режим отмечен галочкой; выберите политику, которая нужна вашему проекту.](https://cdn.oleafly.com/images/screenshots/desktop/docs/llama-approval-menu-dark-window-v2.png#view=1448,770,465,305)

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

| Режим | Поведение |
|---|---|
| **Спрашивать разрешение** | Инструменты класса чтения выполняются; остальные действия сначала спрашивают |
| **Решать за меня** | Инструменты чтения и сети выполняются; правки файлов и команды оболочки сначала спрашивают |
| **Полный доступ** | Действия инструментов выполняются без запроса подтверждения, кроме инструментов, заблокированных правилом `deny` |
| **Свои правила** | Действуют сохранённые правила `allow` и `deny`, а инструменты без правила используют стандартную политику рисков |

**Решать за меня** — режим по умолчанию. У некоторых инструментов есть собственные проверки внутри операции. Компиляция и проверка PDF рассматриваются иначе, чем запись файла исходника или выполнение команды оболочки.

## Подтверждение предложенного действия

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

## Всегда в этом проекте

В режиме **Свои правила** используйте **Всегда в этом проекте** на запросе подтверждения, чтобы сохранить правило для этого инструмента. Проверяйте выбранный режим, если ожидаете, что правило подействует на следующий запуск.

## Просмотр и удаление правила

Открыв проект, перейдите в **Настройки → ИИ-ассистент → Поставщики и ключи** и прокрутите до раздела **Подтверждения для инструментов**. Каждая строка показывает название инструмента и то, разрешён он всегда или запрещён. Удалите правило, чтобы в режиме «Свои правила» этот инструмент вернулся к стандартной политике рисков.

## Правка approvals.toml

Раздел **Файл правил подтверждения** (под разделом **Подтверждения для инструментов**) редактирует `~/.oleafly/approvals.toml`. Используйте **Перечитать**, чтобы прочитать текущий файл, **Отменить изменения**, чтобы отбросить несохранённые правки, или **Вставить пример**, чтобы начать с образца настройки. **Как работает файл** объясняет формат и показывает идентификатор открытого проекта. При сохранении TOML проверяется перед применением, и правила действуют со следующего вызова инструмента.

Файл содержит таблицу режимов и таблицы правил для инструментов с ключом по **идентификатору папки проекта**, а не по отображаемому названию:

```toml title="~/.oleafly/approvals.toml"
["$approval_modes"]
"my-project-folder-id" = "custom"

["my-project-folder-id"]
write_file = "allow"
replace_in_file = "allow"
run_command = "deny"
delete_file = "deny"
```

Замените `my-project-folder-id` на реальный идентификатор папки вашего проекта. Идентификаторы проектов — это имена папок в `~/.oleafly/projects`. Значения режимов: `ask-for-approval`, `approve-for-me`, `full-access` и `custom`. Проект, которого нет в списке, использует режим «Решать за меня». Значения правил для инструментов — `allow` и `deny`. Правило `deny` действует в любом режиме, включая «Полный доступ», поэтому запрещённый инструмент никогда не выполняется. Правило `allow` действует только в режиме «Свои правила». Инструмент без правила использует обычную политику рисков.

Комментарии, начинающиеся с `#`, сохраняются при сохранении из «Настроек», но выбор **Всегда в этом проекте** на карточке подтверждения перезаписывает файл без них.

Используйте точные имена инструментов из каталога. Распространённые имена: `write_file`, `replace_in_file`, `create_file`, `rename_file`, `delete_file`, `run_command`, `compile`, `insert_figure` и `set_main_doc`.

## Какой файл конфигурации использовать?

| Файл | Назначение |
|---|---|
| `~/.oleafly/config.json` | Конфигурация приложения, управляется через «Настройки» |
| `~/.oleafly/approvals.toml` | Режимы подтверждения проектов и правила для отдельных инструментов |
| `~/.oleafly/agent.toml` | Расширенные лимиты и инструкции для мультиагентной работы |
| Конфигурация вашего внешнего агента, например `~/.codex/config.toml` | Собственные настройки того агента и подключения MCP |

Oleafly не использует единый `config.toml` для всех этих настроек. Используйте интерфейс «Настроек» для ключей поставщиков и предпочтений приложения; учётные данные хранятся отдельно, в зашифрованном виде. Не заменяйте всю конфигурацию приложения коротким примером.

## Настройка agent.toml

Опытные пользователи могут создать `~/.oleafly/agent.toml`, чтобы тонко настроить мультиагентные параметры ассистента. Эти параметры управляют собственной средой агентов Oleafly, отдельно от конфигурации подключённого CLI-агента.

```toml title="~/.oleafly/agent.toml"
maxAgentDepth = 2
maxConcurrentSubagents = 8
minWaitTimeoutMs = 1000
maxWaitTimeoutMs = 300000
defaultWaitTimeoutMs = 120000
waitAgentEnabled = true

usageHintText = """
Delegate independent checks with clear scopes. Keep writing decisions with
the parent agent, and close completed agents when their work is collected.
"""

subagentDeveloperInstructions = """
Work only on the assigned task. Report the files and evidence you inspected.
Do not spawn additional agents.
"""
```

### maxAgentDepth

Ограничивает глубину вложенности. По умолчанию `2`: дочерние агенты запуска дальше не делегируют. Минимальное допустимое значение — `1`.

### maxConcurrentSubagents

Ограничивает число одновременных субагентов в сеансе. По умолчанию `8`, минимум — `1`. Больше агентов может увеличить расход модели; поднимайте лимит для работы, которая действительно может идти независимо.

### minWaitTimeoutMs

Задаёт нижнюю границу ожидания агента в миллисекундах. По умолчанию `1000`.

### maxWaitTimeoutMs

Задаёт верхнюю границу ожидания агента. По умолчанию `300000`, то есть пять минут. Значение удерживается не ниже минимума.

### defaultWaitTimeoutMs

Задаёт длительность ожидания по умолчанию. По умолчанию `120000`, то есть две минуты. Значения ограничены настроенными минимумом и максимумом.

### waitAgentEnabled

Управляет доступностью возможности агента ожидания. По умолчанию `true`.

### usageHintText

Передаёт родительскому агенту указания о делегировании. Пример выше заменяет стандартные указания вашим собственным текстом.

### subagentDeveloperInstructions

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

Среда также принимает версии этих ключей в snake_case, например `max_agent_depth`. Пропущенные поля используют значения по умолчанию. Отсутствующий или повреждённый файл откатывается к значениям по умолчанию, поэтому внимательно проверяйте синтаксис и начинайте новый запуск после изменения конфигурации.

## Проверка правила небольшой задачей

1. Откройте учебный проект и выберите **Спрашивать разрешение**.
2. Попросите: «Прочитай основной документ и предложи более ясное название. Перед изменением файла спроси».
3. Рассмотрите предложенное изменение и подтвердите или отклоните его.
4. Проверьте сохранённые правила в «Настройках», прежде чем переходить к режиму «Свои правила».
5. Используйте [Режим плана](/docs/ai-chat/#plan-before-editing), когда нужно согласовать несколько шагов до начала правок.

Внешние ассистенты, подключённые через Oleafly MCP, используют [политику сервера MCP](/docs/mcp/#approvals-and-safety), которая настраивается отдельно.
