Buff Development
Buff CodeСессии разработки

Что именно делал агент

Инспектор действия в сессии разработки: виды действий и что показывает каждый, статусы, «Вызов и результат как есть», вкладка «Файлы».

Инспектор — правая колонка открытой сессии (на телефоне — нижняя шторка). Две вкладки: «Действие» — выбранное действие целиком, в том виде, который ему подходит: терминал, файл, диф, код; «Файлы (N)» — все файлы, которые сессия читала и меняла. Как выбрать действие — на странице Прочитать сессию.

Инспектор: чем именно модель вызвала инструмент и что он ответил — дословно.

Заголовок действия

  • значок вида и глагол с объектом — те же, что в строке ленты: «Прочитал» и путь, «Запустил» и команда;
  • строка hh:mm · модель · ход N с · имя инструмента — когда начался ход, какая модель отвечала, сколько ход длился и как инструмент называется технически (bash, edit, knowledge_read_entry, jira__get_issue);
  • статус справа — см. таблицу ниже. У действия с ошибкой под заголовком — её текст.

Виды действий

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

ВидИнструментыГлагол · объектЧто показывает инспектор
Терминалbash, shellЗапустил · первая строка команды; команда в фоне — Запустил в фонеОкно терминала: папка, команда, вывод. При ненулевом коде выхода вывод красный.
Чтение файлаread и инструменты с окончанием _readПрочитал · путьФайл с номерами строк — ровно тот фрагмент, который получила модель, с той строки, с которой читала. Листинг папки — как текст.
Правка файлаwrite, edit, multiedit, apply_patch, patchЗаписал (write) или Изменил · путьДиф с подписью, против чего он посчитан (см. ниже), число +N −N, ниже — «Ответ инструмента».
Поискglob, grep, search, list, ls и подобныеИскал · шаблон или запрос«Вызов» — аргументы, «Результат» — что нашлось.
Кодexecute (Code Mode)Выполнил код · первая строка кода«Код модели» с номерами строк и «Результат» его выполнения.
Знанияknowledge_*Записал знание · заголовок — разработчик добавил запись; Предложил знание — не добавлено — отказался; Предлагает знание — запрос ещё ждёт ответа; Просмотрел знания · имя записи или запрос«Вызов» и «Результат». Это база знаний организации.
Справочникинструменты с handbook в имениИскал в справочнике · запрос«Вызов» и «Результат».
Вопрос разработчикуquestionСпросил разработчика · первый вопросВопросы с вариантами ответов и «Ответ разработчика».
Интернетwebfetch, websearch, fetchОткрыл · адрес или запрос«Вызов» и «Результат».
Подзадачаtask, subagentПоручил подзадачу · описание«Вызов» и «Результат».
НавыкskillПрименил навык · имя навыка«Вызов» и «Результат».
Планplan_exitПредложил план · заголовок планаПлан текстом, как его видел человек при утверждении.
Список делtodo_updateОбновил список дел · «готово N из M»Пункты списка с отметками сделанного.
Сценарийworkflow_*Запустил сценарий, Исправил прогон сценария, Сохранил сценарий, Спросил человека и другие · название«Вызов» и «Результат». См. Сценарии.
Автоматизацияautomation_*Предложил автоматизацию · название«Вызов» и «Результат». См. Автоматизации.
Инструментвсё остальное — инструменты подключений, репозитории проекта, свои MCPимя инструмента как есть«Вызов» — аргументы как JSON, «Результат» — ответ как JSON или текст.

Против чего посчитан диф. Запись хранит вызовы, а не файловую систему, поэтому диф правки строится по тому, что сессия видела раньше:

  • «заменённый фрагмент» — у edit: старый текст против нового, как их передала модель;
  • «против версии, записанной раньше в этой сессии» — у write, если этот файл в сессии уже записывали;
  • «против версии, прочитанной раньше в этой сессии» — у write, если файл раньше читали с первой строки;
  • «Новый файл — или его прежняя версия в этой сессии не видна» — сессия его раньше не читала и не писала: весь текст показан как добавленный. Так бывает и с существующим файлом, если модель записала его, не читая.
Терминал в инспекторе: команда, вывод и код выхода — красным, если команда завершилась с ошибкой.
Правка файла: диф против заменённого фрагмента, счётчик строк и ответ инструмента.

Статусы

СтатусКогда
ждёт ответарезультата ещё нет — идущая сессия или обрыв, после которого ответ не пришёл
код выхода 0 / готовокоманда завершилась нулём; у остальных инструментов — ответ пришёл без ошибки
код выхода N (красный)команда завершилась ненулевым кодом
ошибка (красный)инструмент ответил ошибкой: JSON с полем error, «Unknown tool», «Error:»

Статус берётся из ответа инструмента, а не из слов модели: если модель написала «готово», а команда упала, на полосе хода и в инспекторе будет ошибка.

«Вызов и результат как есть»

Кнопка под телом действия показывает два текста без разбора: аргументы вызова, как их написала модель, и ответ инструмента, как он пришёл. Это для случаев, когда представление инспектора чего-то не показало — обрезанный поток, нестандартный ответ — или когда нужно скопировать байты для разбора.

Вкладка «Файлы»

Все файлы, которые сессия читала или меняла отдельными вызовами, в порядке первого обращения — за всю загруженную сессию, а не за один ход. У каждого:

  • значок: создан, изменён или только прочитан;
  • подпись: «создан», «изменён N раз» (у созданного — «создан, потом изменён N раз»), «прочитан N раз»;
  • +N −N — сумма добавленных и удалённых строк по всем правкам файла в сессии.

Клик по файлу открывает во вкладке «Действие» последнее действие с ним. Листинги папок в список не попадают. Если сессия файлов не трогала — «Сессия не читала и не меняла файлы отдельными вызовами».

Что сюда не попадает. Правки, которые модель сделала из кода Code Mode (действие «Выполнил код»), отдельными вызовами не записаны — их видно в самом коде и его результате. Правки, внесённые разработчиком руками, не попадают никуда: они не проходили через модель.

«Файлы» — все файлы сессии: что прочитано, что изменено и сколько строк; клик открывает последнее действие с файлом.

On this page