# Сессии разработки

> Запись работы разработчика с моделью в Buff Code: кому она нужна, из чего состоит, что записывается и что нет, кто видит и где что искать.

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

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

_Иллюстрация: Сессия называется по первой строке первого сообщения разработчика; владелец видит всех и фильтрует по разработчику._

## Кому это нужно

| Кто | Зачем открывает раздел | С чего начать |
| --- | --- | --- |
| **Руководитель** | Кто из команды работает с моделью, сколько ходов и токенов ушло, во что это обошлось — по периоду, проекту и разработчику, без расспросов. Что модель делала в конкретной сессии: какие команды запускала, какие файлы правила, где ошибалась. | [Найти сессию](/docs/buff-code/sessions/list), затем [Спросить по сессиям](/docs/buff-code/sessions/ask) |
| **Разработчик** | Вспомнить, что делала модель вчера и почему; показать коллеге сессию с решением, а не пересказывать; задать вопрос по записи — «что осталось незакрытым». | [Прочитать сессию](/docs/buff-code/sessions/view), [Что именно делал агент](/docs/buff-code/sessions/action) |
| **Информационная безопасность** | Что именно ушло к модели — дословно, вызов за вызовом; кто смотрел чужие сессии и кто их выгружал — по журналу аудита. | [Что именно делал агент](/docs/buff-code/sessions/action), [Журнал аудита и Buff Code](/docs/buff-code/sessions/audit) |

## Словарь раздела

Термины ниже — те же, что в интерфейсе; страницы раздела пользуются ими без пояснений.

| Термин | Что это |
| --- | --- |
| **Сессия** | Одна сессия Buff Code у разработчика — одна запись в кабинете. Называется по первой строке первого сообщения разработчика; если текста в сессии нет — «Вызовы без сохранённого текста». |
| **Ход** | Один запрос Buff Code к модели и её ответ. У хода есть модель, статус, длительность, токены по видам и списанная сумма. Ответ на одно сообщение разработчика часто занимает несколько ходов: модель вызвала инструмент, получила результат, спросила снова. |
| **Действие** | Вызов инструмента вместе с результатом, который на него пришёл: «Запустил `make test`», «Изменил `src/api.py`», «Искал в справочнике». В ленте — одна строка под ответом модели; в инспекторе — целиком. |
| **Шаг** | Одна метка на полосе хода: сообщение разработчика или одно действие. Подпись «шаг 12 из 40» считает именно их. |
| **Служебный вызов** | Ход, который Buff Code сделал не по работе, а для себя: придумать название сессии, сжать контекст. Записывается, как и остальные, но в ленте по умолчанию скрыт. |
| **Полоса хода** | Полоса под шапкой сессии: метка на каждый шаг, цвет по виду действия, ошибки красным. Клик или стрелки ведут к шагу. |
| **Инспектор** | Правая колонка (на телефоне — нижняя шторка) с выбранным действием целиком и вкладкой «Файлы». |

## Что записывается

Сессия хранится целиком, в том виде, в каком её ведёт Buff Code:

- **слова разработчика** и приложенные к ним файлы;
- **что пришло от модели**: текст ответа, рассуждение, вызовы инструментов с аргументами и
  результат каждого вызова — содержимое прочитанных файлов, вывод команд, ответы подключений;
- **кто и где**: разработчик, устройство, организация, проект;
- **сколько** — у каждого хода: модель, статус ответа, длительность, токены — вход, выход,
  рассуждение, кэш (чтение и запись) — и сколько списано.

Неудачный ход (отказ модели, обрыв, отказ из-за баланса) тоже сохраняется и не списывается.
Служебные вызовы — название сессии, сжатие контекста — считаются и списываются наравне с
рабочими; сжатие видно в ленте как служебное сообщение.

## Что не записывается и что не показывается

**Не записывается** то, что не уходит к модели: файлы на диске, которые Buff Code ей не
передавал; команды терминала и их вывод, если их не отдали модели; правки, которые разработчик
внёс руками. Пароли и токены подключений в записи не бывает — они не покидают коннектор.

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

## Где хранится и кто видит

Записи хранятся в Buff, в данных вашей организации, на тех же условиях, что остальные
материалы организации (см. [Безопасность](/docs/security)). Они не удаляются: при уходе
сотрудника его сессии остаются у организации.

| Кто | Что видит |
| --- | --- |
| Разработчик | свои сессии |
| Владелец организации | сессии всех разработчиков организации |

Участник, который откроет чужую сессию, получит отказ: «Чужие сессии разработки видит только
владелец организации». Владелец, открыв чужую сессию, видит предупреждение «Чужая сессия»:
просмотр и выгрузка записываются в [журнал аудита](/docs/buff-code/sessions/audit).

## Карта раздела

| Страница | О чём |
| --- | --- |
| [Найти сессию](/docs/buff-code/sessions/list) | Фильтры по периоду, разработчику и проекту; «Итого за выбранное»; как читается строка списка; «Спросить по выборке» |
| [Прочитать сессию](/docs/buff-code/sessions/view) | Шапка и метрики; полоса хода; лента сообщений и действий; служебные вызовы; «Следить» и «Идёт»; раскладка на телефоне |
| [Что именно делал агент](/docs/buff-code/sessions/action) | Инспектор: виды действий и что показывает каждый; статусы; «Вызов и результат как есть»; вкладка «Файлы» |
| [Спросить по сессиям](/docs/buff-code/sessions/ask) | Три способа задать вопрос; что получает модель; как читать ответ; кто видит; расход и журнал |
| [Выгрузка](/docs/buff-code/sessions/export) | Markdown и JSON: что в файле, пример, что не входит |
| [Журнал аудита и Buff Code](/docs/buff-code/sessions/audit) | Какие события вокруг Buff Code попадают в журнал аудита, с какой важностью, и какие — нет |
