# Сессия: поле ввода, режимы, вопросы

> Разговор с агентом: поле ввода, режимы разрешений, запросы разрешения с предпросмотром правки, вопросы агента, вложения, фоновая работа, расход.

**Сессия** — один разговор с агентом в папке проекта. Вы пишете задачу, агент читает код,
правит файлы и запускает команды, а под каждым ответом видно, что он сделал.

_Иллюстрация: Агент добавил функцию и тест, тест сразу поймал ошибку — агент её поправил. Под ответом — сводка изменений хода._

## Лента

- **«Использовано N — …»** — какие инструменты агент вызвал между репликами: «Чтение»,
  «Редактировать», «Оболочка», «Список дел», «База знаний: запись» и другие. Щелчок раскрывает
  вызовы с их результатом.
- **Ответ агента** — обычным текстом с разметкой. Пути файлов в нём — ссылки.
- **Сводка изменений хода** — под ответом, если ход менял файлы: «Изменено 2 файла +23 −1» и
  «Откатить ход». Подробно — [Изменения и откат](/docs/buff-code/work/changes).
- **Служебные отметки** — свёрнутой строкой: смена агента, сжатие сессии, отметки
  [цели](/docs/buff-code/work/plan-goal#цель).

## Поле ввода

Под полем — строка управления:

| Элемент | Что делает |
| --- | --- |
| **+** | меню: «Изображения и файлы» (Ctrl+U), «Команды» (`/`), «Контекст» (`@`), «Команда оболочки» (`!`) |
| **Режим** («Править сам») | сколько агенту можно без вопросов — см. ниже |
| **План** | агент только составляет план и ничего не меняет, пока вы его не утвердите — см. [План и цель](/docs/buff-code/work/plan-goal) |
| **Модель** | модель организации, которой ответит агент. Список — [Модели и расход](/docs/buff-code/models) |
| **◆ организация › проект** | рабочий контекст: чьи знания, репозитории и подключения видит агент. Сменить — [Вход и рабочий контекст](/docs/buff-code/sign-in) |
| **⎇ ветка ±N** | ветка Git и число изменённых файлов; щелчок открывает [окно Git](/docs/buff-code/work/git) |
| **остаток, ₽** | средства организации; щелчок открывает «Баланс и расход» — см. ниже |

_Иллюстрация: Меню «+». У каждого пункта — свой знак, его можно набрать прямо в поле._

- **`/`** — команды: встроенные (`/goal`, `/side`, `/compact`, `/undo`…), свои команды
  проекта и навыки. Команда без аргументов выполняется по Enter; у команды с необязательным
  текстом (`/side`, `/goal`) первый Enter вставляет её в поле — допишите текст или нажмите Enter
  ещё раз.
- **`@`** — файл или папка проекта как часть сообщения; агент получит их содержимое.
- **`!`** — команда оболочки от вас, без агента: `!bun test`. Она выполняется в папке проекта,
  а вывод сразу виден в ленте и попадает в контекст агента.

### Карта запросов

У длинной сессии слева от ленты — **риски карты запросов**, по одной на каждое ваше сообщение.
Наведение показывает запрос и начало ответа, щелчок переносит к нему.

_Иллюстрация: Карта запросов: наведите на риску — увидите, о чём был запрос._

### Вложения и цитаты

- **Картинки и файлы** — кнопкой, перетаскиванием или вставкой из буфера. У каждой —
  миниатюра; щелчок открывает просмотр. Если модель не читает картинки сама, вложение уходит
  файлом, и подсказка у плашки это объясняет: «Модель не читает картинки сама — откроет файл
  инструментами». Ограничения на число вложений нет.
- **Большая вставка** — от трёх строк или больше 150 символов — ложится чипом «Вставленный
  текст · N строк». Щелчок показывает текст целиком; его можно «Развернуть в текст» или удалить.
  Модель получает вставку целиком.
- **Цитата из ответа** — выделите фрагмент в ответе агента, рядом появится кнопка «Добавить в
  сообщение». В поле ляжет чип «Из ответа · N строк», агент получит фрагмент цитатой.

## Режимы разрешений

Режим — правила текущей сессии: что агент делает без вопросов, а о чём спрашивает. Выбираете
режим вы — в поле ввода или командой `/mode`; агент его не меняет. Организация режим не
закрепляет: это настройка разработчика. Новая сессия начинается с режима, выбранного последним.

_Иллюстрация: Три режима и пояснение у каждого. Отметка — текущий режим этой сессии._

| Режим | Что агент делает сам | О чём спрашивает |
| --- | --- | --- |
| **Спрашивать** | читает и ищет | перед каждой правкой файла и каждой командой |
| **Править сам** | правит файлы проекта | перед командами оболочки |
| **Полный доступ** | правит и запускает команды в проекте | за пределами проекта и перед файлами `.env` |

### Запрос разрешения

Когда агенту нужно разрешение, над полем ввода появляется запрос: команда целиком, а у правки
файла — сама правка, как в диффе, — и три кнопки.

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

- **Разрешить один раз** — только это действие.
- **Разрешить всегда** — запомнить для проекта. Под командой написано, что именно запомнится:
  «„Всегда“ запомнит для этого проекта: команды `cat *`, `echo *`».
- **Запретить** — с полем «Что сделать вместо этого». Текст уходит агенту, ход продолжается:
  агент сделает по-вашему, а не остановится.

Запрос от субагента помечен «от субагента».

## Вопросы агента

Если в задаче не хватает решения, агент спрашивает — карточкой над полем ввода. У вопроса
варианты ответа с пояснением, свой ответ можно написать в последней строке. Вопросов может быть
несколько: «1 из 2 вопросов», «Далее», «Назад», «Отправить».

_Иллюстрация: Агент заметил, что в каталоге нет чая дороже 1000 ₽, и спросил, как понимать задачу, вместо того чтобы угадывать._

## Фоновая работа

Долгую команду агент может запустить в фоне и продолжать работу. Пока такая работа идёт, в строке
под полем ввода видно «1 фоновая задача выполняется»; щелчок открывает список.

_Иллюстрация: Фоновая команда агента: сколько уже идёт, её вывод и остановка._

- У каждой задачи — время работы, **«Вывод»** (весь вывод, дописывается, пока команда идёт) и
  **«Стоп»**.
- **«Стоп» не будит агента.** В ленту ложится отметка «Оболочка: отменено»; агент увидит её в
  следующем ходе.
- Своя команда (`!`) или команда агента, пока выполняется, переводится в фон кнопкой «Перевести в
  фон» или Ctrl+B (на macOS — тоже Ctrl+B).

## Остаток и расход

Остаток средств организации — в конце строки под полем ввода. Щелчок открывает **«Баланс и
расход»**: на сколько дней хватит при расходе организации за 30 дней, тариф и цены за миллион
токенов, оценка этой сессии в рублях, ваш расход за 30 дней — столбиками и по дням, «Открыть
кабинет» и «Обновить». Нужен коннектор компании v0.18.0 или новее; с более старым окно скажет «коннектор
компании не знает этот запрос — обновите его».

_Иллюстрация: Баланс и расход: остаток, запас по дням, тариф, оценка этой сессии и ваш расход._

- Когда средств мало, остаток жёлтый, когда они закончились — красный, а над полем ввода
  появляется полоса «Открыть кабинет / Подробнее / Скрыть».
- Отказ хода из-за средств объясняется словами, с кнопкой «Баланс и кабинет».
- Стоимость сессии — **оценка по тарифу**, а не счёт. Списания видны в кабинете, см.
  [Модели и расход](/docs/buff-code/models).

## Сжатие сессии

Когда разговор становится длинным, его можно сжать: `/compact`. Свежая часть разговора
сохраняется дословно, а более раннее агент пересказывает сводкой для себя. В ленте сжатие видно
разделителем «Сессия сжата» с числом токенов; сводку можно открыть кнопкой «Сводка для модели».

## В консоли

_Иллюстрация: Консоль: та же сессия, что и в окне, — с делами, режимом и стоимостью в строке состояния._

| Что | Как |
| --- | --- |
| режим разрешений | `/mode`; текущий виден под полем ввода |
| план | shift+tab — смена агента (Build ↔ Plan) |
| команда оболочки | `!` в начале строки |
| фоновая работа | строка под полем ввода, вкладки фоновой работы, `ctrl+d` — стоп |
| остаток | строка состояния главного экрана; `/balance` — подробно |
| большая вставка | «[Вставленный текст · N строк]» |
