y83 code / справочник

Карточки ленты

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

раздел
Чат с агентом (Codex)
пунктов возможностей
86
источник
docs/codex/chat-cards.md

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

Сообщения и мысли

  • Ваше сообщение рисуется пузырём справа, бирюзового цвета. Сверху в пузыре перечисляются прикреплённые скиллы со знаком доллара, под ними показываются миниатюры приложенных картинок, а под всем этим сам текст. Внизу пузыря стоят время отправки, кнопка копирования и меню с тремя точками.
  • Черновик вашего сообщения появляется с лёгким эффектом. Пузырь сначала сжимается до 95 процентов, потом расправляется пружиной, а текст проявляется за 150 миллисекунд.
  • Пока сообщение уходит агенту, под ним видно его состояние. Возможные подписи: sending, waiting for connection, not confirmed, send failed. Отправленное сообщение подписи не имеет, но если отправка сорвалась, рядом появляется кнопка повторной отправки.
  • Меню вашего сообщения зависит от того, отправлено оно или нет. Для отправленного доступны редактирование, повторный запуск ответа агента, удаление последнего хода и создание ответвления треда. Для неотправленного доступна только повторная отправка.
  • Ответ агента рисуется пузырём слева, с бирюзовой полоской по левому краю. Текст ответа показывается как разметка: заголовки, списки, таблицы, блоки кода и ссылки. Очень длинный ответ прокручивается внутри своего пузыря, чтобы не растягивать ленту на весь экран.
  • Ссылка в ответе агента открывает встроенный браузер. Исключение сделано для ссылок на файлы с расширением md: такой путь просто копируется в буфер, потому что открывать локальный файл браузер не умеет.
  • Внизу ответа агента есть время, кнопка копирования и меню. Если в ответе есть блоки кода, рядом с копированием появляется кнопка Code с числом блоков, которая копирует только код.
  • Меню ответа агента умеет копировать текст в разных видах. Можно скопировать ответ целиком, только простой текст без разметки, только блоки кода и только таблицы в виде CSV. Там же удаление последнего хода и создание ответвления треда.
  • Пока агент ещё не прислал ни одного слова, вместо текста горит надпись writing response с тремя пульсирующими точками. Сама эта заглушка в ленту не попадает, она живёт только внутри пузыря.
  • Размышления агента показываются отдельной серой карточкой со значком головы. В свёрнутом виде видна только первая строка мыслей, обрезанная до 120 символов, и таймер. Развернутая карточка показывает весь текст мыслей в области высотой до 240dp со своей прокруткой.
  • Карточка мыслей показывает, что происходит прямо сейчас. Пока агент думает, в шапке крутится значок обновления, а таймер тикает. Когда мысли закончились, значок становится галочкой и таймер показывает, сколько времени заняли мысли. Если мысли прервали, вместо галочки появляется крестик, а время и значок становятся красными.
  • Пока агент думает, карточка мыслей развёрнута сама. Как только мысли закончились, карточка сворачивается, чтобы не занимать полэкрана, и развернуть её можно тапом.

Команды и чтение файлов

  • Выполненная команда рисуется карточкой со значком терминала. В шапке видна сама команда со знаком доллара, таймер и значок состояния: обновление, галочка или крестик при ошибке.
  • Раскрытая карточка команды показывает вывод. Вывод обрезается до 4000 символов и показывается максимум 12 строками, а если команда отработала с ошибкой, в конце добавляется её код завершения.
  • В раскрытой карточке команды есть мелкие метки с дополнительными сведениями. Одна метка показывает рабочую папку, а ещё до трёх — что именно делала команда, например чтение файла или поиск по нему. Метки появляются только когда есть что показать.
  • Карточка команды сворачивается сама, как только команда отработала. Пока команда ещё выполняется, она раскрыта, чтобы было видно живой вывод.
  • Чтение файла рисуется карточкой со значком документа. В шапке видна команда чтения, а если она пустая, то путь к файлу. Раскрытая карточка показывает начало содержимого файла, обрезанное до 8 строк.
  • У чтения файла есть свой значок состояния. Ошибка чтения даёт крестик, успешное чтение галочку, а идущее чтение показывается значком обновления.
  • Серия чтений, поисков и листинга одного хода собирается в одну карточку с итогом. В свёрнутом виде в ней написано, например, Explored, 5 ops и первая операция с числом остальных. Пока агент ещё изучает файлы, в строке написано Exploring и значок обновления, а когда работа закончена, появляется галочка и слово Explored.
  • Карточка изучения свёрнута, а тап разворачивает список операций. У каждой строки свой значок: документ для чтения, папка для листинга и лупа для поиска. Команды, запущенные вами вручную, в такую карточку не собираются и остаются отдельными карточками.

Вызовы инструментов

  • Вызов инструмента рисуется карточкой со значком инструмента. В шапке написано имя сервера и имя инструмента через точку, дальше таймер и значок состояния.
  • В раскрытой карточке инструмента видны аргументы и ошибка. Аргументы показываются в удобном виде и прокручиваются, если их много. Ошибка обрезается до трёх строк и 300 символов.
  • Если инструмент успешно вернул картинку, она показывается прямо в карточке. Саму картинку можно открыть и рассмотреть, а ссылку на внешний адрес приложение умеет грузить.
  • Генерация картинок рисуется отдельной карточкой со своей галереей. В шапке написано Image generation, а под ней статус и время: Generating, Queued с номером в очереди, Completed, Failed, Cancelled, Ready или Waiting с пометкой, что задачу можно продолжить. Если сервис отдаёт свой текст о прогрессе, он показывается вместо стандартного статуса.
  • Пока картинка генерируется, карточка сама обновляет статус раз в две секунды. Дополнительная кнопка проверки статуса не нужна, поэтому в карточке её нет.
  • Пока генерация идёт, у карточки есть кнопка Cancel. Она исчезает вместе с результатом, потому что отменять уже нечего.
  • Если картинка не скачалась на телефон, карточка честно об этом пишет. В ней появляется плашка о том, что локальная копия не удалась и показан публичный адрес.
  • Идентификатор задачи генерации виден в подписи карточки и копируется одним нажатием. Рядом с ним стоит значок состояния, а подсказка о том, что картинка скачалась только по публичной ссылке, выводится отдельной плашкой.
  • Когда результат готов, картинки открываются в полноэкранный просмотрщик. В нём есть действия поделиться, сохранить в Загрузки, скопировать ссылку и открыть файл или страницу, а если картинок несколько, их можно листать стрелками.
  • В просмотрщике картинку можно править, не выходя из чата. Кнопка кисти включает режим маски с тремя инструментами: Object — тап по объекту (локальная модель MediaPipe выделяет его по контуру), Brush — обвести пальцем, с ластиком, Box — растянуть рамку. Выделение видно прямо поверх картинки, Reset снимает его целиком, а повторный тап по объекту заменяет прежнее выделение, а не дорисовывает второе.
  • Кнопка Edit открывает окно правки. В нём промпт (что сделать в выделенной области), модель, denoise, seed, 4-step, апскейл, две LoRA с силой и секция референсов стиля с выбором картинки из загруженных; запуск идёт сразу в y83.media, в окне видны прогресс, ошибка и результат, который можно открыть тут же и править дальше.

Планы, правки и файлы

  • План рисуется карточкой с рамкой, а не пузырём. В шапке написано название плана, метка состояния и счётчик шагов вида 2/5, а ниже раскрывается тело с текстом плана и его чеклистом.
  • Состояние плана видно по подписи и цвету рамки. Подписи бывают такие: ожидает одобрения, отклонён, выполняется, одобрен, готов и закрыт. Отклонённый план рисуется красной рамкой, готовый и закрытый фиолетовой, остальные бирюзовой, а план без состояния — серой.
  • Пока план ждёт одобрения, карточка развёрнута. В этом состоянии чеклист и есть главное, поэтому прятать его нельзя.
  • Готовый и закрытый планы в ленте показываются свёрнутыми. В шапке остаются название, подпись состояния и счётчик шагов, а тап открывает план в отдельном окне, чтобы длинный чеклист не закрывал ответ агента.
  • Пока план выполняется или его ход ещё идёт, в ленте его нет. Он целиком живёт в полоске плана под лентой, а в ленту возвращается уже закрытым, после конца хода.
  • У закрытого плана в шапке виден счётчик шагов и число неотмеченных. Формат такой: 3/5 steps, а рядом может стоять 2 unmarked, если два шага ещё не закрыты. У плана в работе в шапке стоит короткий счётчик 3/5 без слова steps.
  • Внутри плана есть полоса прогресса и список шагов с номерами. Полоска показывает, сколько шагов уже сделано, а у каждого шага свой номер и свой цвет: выполненный шаг фиолетовый, текущий бирюзовый, а у закрытого плана неотмеченные шаги приглушены.
  • Раскрытие и сворачивание плана анимированы. Тело карточки выезжает за 250 миллисекунд с проявлением за 200.
  • Карточка правок файлов в свёрнутом виде показывает две первые записи. Заголовок меняется на Changing files, пока агент ещё пишет файлы, и на Changed files, когда работа закончена. Действие показывается знаком: плюс для нового файла, минус для удалённого и волнистая черта для изменённого.
  • В раскрытой карточке правок у каждого файла есть счётчик строк. Он показывает, сколько строк добавлено и сколько удалено, а под первыми шестью строками показывается кусок правки. Пока файлы ещё пишутся, сами куски дифа не показываются, видны только имена и счётчики.
  • Список изменённых файлов можно скопировать целиком. Кнопка копирования стоит в конце раскрытой карточки и копирует только список с пометками, без содержимого дифов.
  • Карточка дифа показывает итог хода и число изменённых строк. Справа написано, сколько строк добавлено и сколько удалено. Если вместе с дифом пришли данные о ходе, в шапке вместо названия будет строка итога хода, а если нет, то надпись Turn changes.
  • В раскрытом дифе файлы показываются отдельными строками. У каждой строки написан путь с приглушённым каталогом и свои счётчики добавленных и удалённых строк, а тап по строке открывает диф только этого файла.
  • Под списком файлов показан кусок дифа первого файла. Он рисуется с номерами строк и прокручивается вбок, если строки длинные, а под ним есть кнопка открытия полного дифа.
  • Диф может прийти неполным, и карточка об этом предупреждает. Если часть строк потерялась при кэшировании, под списком файлов появляется отдельная пометка об этом.

Служебные строки и итоги хода

  • Служебная строка рисуется узкой плашкой по центру ленты. В ней маленький значок информации и одна строка текста, обрезанная по длине. Отступы по бокам у такой строки заметно больше, чем у обычной карточки.
  • Служебная строка читается как обычное предложение. Если событие пришло в квадратных скобках, метка отделяется от текста точкой, поэтому строка читается как webSearch, а дальше идёт пояснение.
  • Строка о сжатии контекста отделяет ленту отрезками с двух сторон. В центре написано Context compacted и время операции, например 15s.
  • Пока сжатие контекста идёт, в ленте ничего не рисуется. Индикация с таймером живёт в полоске статуса хода под лентой, а строка в ленте появляется только после завершения.
  • Итог хода рисуется строкой между двумя отрезками. В ней написано Done, время хода и счётчики: сколько команд было выполнено, сколько раз агент думал, сколько файлов прочитано и сколько изменено, а в конце расход токенов.
  • Итог хода меняется, если ход сорвался. Вместо Done пишется Interrupted, а если ход упал с ошибкой, то Failed, и строка становится цветной.
  • Тап по итогу хода открывает подробный разбор. Внутри есть отдельные строки про мысли и команды с их суммарным временем, про количество прочитанных и изменённых файлов и про ошибку, если она была.
  • Ходы без реальной работы сводки не создают. Пустой ход остаётся без строки итога, а ход, который закончился только сжатием контекста, показывает отдельную строку сжатия. Прерванный ход и ход с ошибкой сводку получают всегда, даже если в них ничего не было.

Субагенты и совместная работа

  • Действия с субагентом рисуются карточкой со значком головы в кружке. В шапке написано Subagent и, если агент известен, его позывной вместе с ролью в квадратных скобках. Ниже стоит название задачи и путь к агенту.
  • У карточки субагента есть подпись состояния. Возможные подписи: Started, Interacted with, Completed и Interrupted. Цвет подписи зависит от состояния.
  • Тап по карточке субагента открывает его тред. Если тред открыть нельзя, тап вместо этого разворачивает подробности.
  • Подробности карточки субагента показывают исходные данные. Там дублируется путь к агенту и сам технический текст события, обрезанный до 12 строк.
  • Совместная работа между агентами рисуется отдельной карточкой со значком расширения. В шапке написано Agent tool и позывной с ролью получателя, а ниже — название действия: завести агента, отправить ему ввод, подождать, закрыть, прервать или отправить сообщение.
  • Под карточкой совместной работы виден переданный запрос. Он обрезан до двух строк, а под ним перечислены технические подробности: модель, уровень усиления рассуждения, число агентов и число получателей, если их больше одного.
  • У карточек субагента и совместной работы состояние выглядит одинаково. Подпись Running, Completed, Failed или Interrupted рисуется плашкой с цветом соответствующего состояния.

Картинки и незнакомые события

  • Картинка из ответа агента рисуется карточкой с круглым значком фотографии. В шапке написано имя файла и подпись: Generated image для сгенерированной картинки и Image attachment для присланной. Если путь к файлу пустой, в карточке написано, что картинка недоступна.
  • Картинка в карточке занимает не больше 320dp по высоте и подстраивается по ширине. Тап открывает её в полноэкранный просмотрщик, где картинку можно сохранить, отправить, открыть отдельно или выделить на ней область и отправить в правку.
  • Событие, которое приложение не умеет разбирать, показывается как обычный ответ агента. При этом в карточку попадает технический текст события как есть, без перевода на понятный вид.
  • Служебная запись рисуется отдельной карточкой со значком документа. В ней не больше двух строк текста, а если текста нет, показывается название самой операции.
  • Пустые записи в ленту не попадают. Так же ведут себя пустые ваши сообщения, пустые ответы, пустые мысли, пустые команды, планы без текста и без шагов и отдельные шаги хода.

Технические данные

ПараметрЗначение
Радиус карточек16dp, у служебной строки 8dp
Отступ между карточками8dp
Отступы ленты слева, справа, сверху, снизу12dp, 12dp, 12dp, 4dp
Округление ваших пузырейправый нижний угол 4dp, остальные 16dp
Округление пузырей агенталевый нижний угол 4dp, остальные 16dp
Ширина цветной полоски в пузыре агента4dp
Обрезка первой строки мыслей в шапке карточки120 символов
Максимальная высота раскрытых мыслей240dp со своей прокруткой
Оборот значка у мыслей, команд и вызовов инструментов900 миллисекунд на круг
Обрезка вывода команды4000 символов и 12 строк
Обрезка содержимого прочитанного файла8 строк
Обрезка ошибки вызова инструмента3 строки и 300 символов
Обрезка текста служебной записи2 строки
Обрезка ошибки генерации картинки4 строки и 500 символов
Высота блока аргументов инструментадо 240dp со своей прокруткой
Высота галереи сгенерированных картинокдо 320dp
Как часто обновляется статус генерации картинкираз в 2 секунды
Обрезка дифа в карточке правок6 строк и 400 символов
Файлов в раскрытом дифедо 4, остальные показываются как «+N more files»
Строк дифа в раскрытом дифедо 12
Ошибка статуса правкипоказывается плашкой, если статус не completed и не inProgress
Отступы служебной строки по бокам48dp
Подписи состояния планаPending approval, Rejected, In progress, Approved, Done, Closed
Формат счётчика шагов3/5 у плана в работе, 3/5 steps и 2 unmarked у закрытого
Сколько шагов помечается в планевсе, без ограничений
Время анимации тела плана250 миллисекунд появление, 200 проявление
Метка итога ходаDone, Interrupted или Failed
Формат расхода токеновK начиная с тысяч, M начиная с миллионов
Формат времени в карточкахдоли секунды до минуты, дальше минуты и секунды
Время появления вашего сообщенияпружина и проявление текста за 150 миллисекунд
Максимальная высота картинки в карточке320dp, ширина по месту
Подписи статуса генерацииGenerating, Queued, Completed, Failed, Cancelled, Ready, Waiting

Что агент умеет

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

Ограничения

  • Карточки в ленте не показывают всё, что прислал агент: часть содержимого обрезается по длине, а полный вывод команды, полный диф и полное содержимое файла доступны только в отдельных окнах.
  • План, который сейчас выполняется, в ленте не виден: его показывает только полоска плана под лентой, а в истории карточка появляется уже закрытой.
  • Открытые вопросы и одобрения не стоят на своих местах в ленте: пока вы на них не ответили, они собраны в один блок над полем ввода, а после ответа остаются в истории в той позиции, где появились.
  • Субагенты и картинки можно открыть только если их удалось сопоставить с тредом или с файлом: если сопоставления нет, карточка показывает лишь технические подробности без перехода.
  • Карточка генерации картинок умеет отменять только активную генерацию: у уже готового результата кнопки Cancel нет, а состояние продолжает обновляться само.
  • Разметка, которую агент прислал, показывается в том виде, в каком пришла: если разметка сломана, лента не пытается её чинить, а показывает текст как есть.
  • Часть счётчиков зависит от того, что агент прислал вместе с ходом: если в ходе не было команд или мыслей, в итоге хода их просто не будет.
  • События, которые приложение пока не умеет разбирать, видны в ленте техническим текстом без перевода на понятные слова, поэтому такие карточки приходится читать внимательно.

Источник: docs/codex/chat-cards.md. Страница собрана из документации проекта при сборке сайта — без пересказа.