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

Поле ввода

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

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

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

Как устроено само поле

  • Поле начинается с двух строк и растёт под текст. В нём помещается до пяти строк, а дальше текст прокручивается внутри поля, а лента не растёт.
  • Пустое поле показывает подсказку вместо текста. Она выглядит как Ask the agent и исчезает, как только вы начинаете печатать.
  • Курсор в поле бирюзовый. Шрифт текста обычный для ответов агента, чтобы написанное вами читалось так же, как то, что он прислал.
  • Кнопка отправки на клавиатуре работает как Send. Если текст есть, нажатие этой кнопки отправляет сообщение, а если поле пустое, ничего не происходит.
  • В углу поля всегда видна кнопка разворота. В свёрнутом виде это значок во весь экран, в развёрнутом — стрелка вниз.
  • Развёрнутое поле занимает почти весь экран. Его верхний край упирается в нижнюю границу верхней панели, чтобы шапка чата оставалась на виду.
  • В развёрнутом виде текст не обрезается. Вместо пяти строк поле вмещает до тысячи строк и прокручивается внутри себя.
  • Когда начинается ход агента, развёрнутое поле само сворачивается. Так лента остаётся свободной под ответ.
  • Пустое свёрнутое поле компактное, а с текстом у него появляется верхний отступ. В этом отступе живёт счётчик символов, поэтому высота поля не скачет при наборе текста.
  • Счётчик символов виден, только когда есть текст. Он показывает, сколько символов уже написано, и рисуется полупрозрачным в левом верхнем углу поля.

Что можно прикрепить

  • Прикреплённый скилл показывается чипом с именем и знаком доллара. Нажатие на чип снимает скилл с этого сообщения, и следующее сообщение уйдёт уже без него.
  • Снятый скилл не отключается целиком. Он просто перестаёт уходить в следующее сообщение, а в настройках остаётся включённым.
  • Выбрать файл или картинку можно одним пунктом Attach. Из него открывается системный выбор файла, а тип вложения определяется по самому файлу.
  • Тип файла определяется по тому, что о нём сообщает система. Сначала смотрится тип файла, а если система его не знает или отдаёт общий тип, то расширение и имя.
  • Файлы делятся на три вида, и вид меняет то, как агент с ними обработается. Картинка сохраняется как картинка и агент смотрит её сам, текстовый файл уходит путём, который агент прочитает своими инструментами, а бинарный файл уходит путём, который прочитать нельзя.
  • Пока файл загружается, чип показывает крутящийся кружок. Загрузка идёт на сервер, а путь к готовому файлу сам подставляется в текст сообщения.
  • Путь вставляется в текст отдельной строкой. Если поле было пустым, путь становится всем содержимым, а если в нём уже был текст, путь добавляется в конец с новой строки.
  • Картинка в чипе показывается миниатюрой. Миниатюра видна сразу, ещё до конца загрузки, и рисуется прямо на чипе.
  • У бинарного файла на чипе есть предупреждение. Оно прямо говорит, что агент сможет прочитать такой файл только как файл, без содержимого.
  • Крестик на чипе убирает вложение из сообщения. Сам файл при этом остаётся на сервере, из текста убирается его путь.
  • Если загрузка сорвалась, чип становится красным. На нём видно, что именно сломалось, и подпись с предложением нажать, чтобы повторить.
  • Нажатие на красный чип повторяет загрузку. Выбранный файл при этом не нужно искать заново, приложение берёт его по сохранённой ссылке.
  • На чипе с файлом показан его размер. Маленькие файлы видны в байтах, средние в килобайтах, а большие в мегабайтах с одним знаком после запятой.
  • Картинка с именем файла в чипе не теряется. Имя обрезается до одной строки с многоточием, если оно слишком длинное.

Нижний ряд

  • Слева в ряду стоит иконка меню композера. Она открывает вложения, скиллы, заготовки, сжатие контекста и переключатели треда.
  • На иконке меню может быть бирюзовая точка. Она означает, что состояние треда нестандартное: экран не засыпает или сообщения уходят в очередь.
  • Рядом с меню стоит переключатель режима. Он переключает две метки: build и plan, и меняет значок на этой кнопке.
  • Нажатие на режим просто переключает его. Отдельного выпадающего списка нет: кнопка всегда переключает build и plan сама.
  • Справа в ряду стоит кнопка отправки. Она активна, только когда в поле есть непробельный текст, иначе нажатия ничего не делают.
  • Пока идёт ход агента, рядом с отправкой появляется кнопка Stop. Она красная и останавливает работу агента.
  • Во время остановки кнопка Stop временно гаснет. Так видно, что нажатие уже прошло и агент заканчивает текущее действие.
  • Обе кнопки справа одного размера. Ряд не прыгает, когда кнопка Stop появляется и исчезает.

Меню композера

  • Пункт Attach открывает выбор файла. Подсказка под ним предупреждает, что тип картинки определится сам, а если источники для распознавания не настроены, это прямо написано в подсказке.
  • Пункт Skills открывает экран скиллов. Там можно включить скилл в промпте, и приложение покажет предупреждение, если такой скилл зависит от выключенного инструмента.
  • Пункт Prompts открывает библиотеку заготовок. Выбранная заготовка вставляется в поле как готовый текст.
  • Пункт Compact context сжимает переписку. Он недоступен, пока идёт ход агента или уже идёт сжатие, и при нажатии спрашивает подтверждение, потому что отменить сжатие нельзя.
  • Переключатель Keep screen on не даёт экрану заснуть. Он держит экран включённым, пока открыт этот тред.
  • Переключатель Steer while running решает, что будет с сообщением. Если он включён, сообщение дописывается в активный ход агента, а если выключен, оно встаёт в очередь и уйдёт после конца хода.
  • Состояние переключателей видно сразу. У Keep screen on и Steer while running справа стоят настоящие тумблеры, которые показывают текущее состояние.
  • Выбор режима отправки запоминается. Выключили Steer while running один раз, и в следующих тредах сообщения по умолчанию будут вставать в очередь.

Что происходит при отправке

  • Перед отправкой экран отпускает клавиатуру. Фокус с поля снимается, чтобы клавиатура не ожила сама при следующем сворачивании экрана.
  • Отправка сразу очищает поле и вложения. Прикреплённые скиллы снимаются чуть позже: когда сообщение ушло на сервер или встало в очередь, а если отправка сорвалась, они остаются прикреплёнными.
  • Отправка не блокируется из-за связи. Если соединения с сервером нет, приложение сначала переподключается само, и только потом отправляет сообщение.
  • Пока идёт ход агента, сообщение ведёт себя по-разному. При включённом steer оно дописывается в активный ход, а при выключенном встаёт в очередь и уходит после конца хода.
  • Если сервер отклонил дописывание, сообщение не теряется. Оно переносится в очередь и уходит отдельным ходом, когда агент закончит текущую работу.
  • Если ход в треде завис и заблокирован, сообщение тоже ждёт. Оно встаёт в очередь до ручной разблокировки, чтобы не слать команды в застрявший ход.
  • Отправка снимает плашку о пустом ответе агента. Если агент вернул только размышления без ответа, подсказка с повтором исчезает.
  • Отправленный текст сразу появляется в ленте как ваше сообщение. Оно сначала показывает состояние отправки и обновляется по мере подтверждения сервером.
  • Пока файл ещё загружается, его можно отправить вместе с текстом. В этом случае путь в текст не подставится, но чип загрузки продолжит доводить файл до конца.

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

ПараметрЗначение
Строк в свёрнутом полеот 1 до 5
Строк в развёрнутом поледо 1000
Подсказка пустого поляAsk the agent
Счётчик символовтолько при непустом поле
Радиус карточки композера20dp
Тень карточки композера8dp
Отступы карточки снизу и по бокам12dp по бокам, 8dp снизу
Верхний отступ поля12dp у пустого свёрнутого, 28dp с текстом
Анимация отступов поля220 миллисекунд
Высота кнопок отправки и остановки40dp
Высота кнопки меню композера40dp
Размер кнопки разворота поля28dp
Режимы работы агентаbuild и plan
Отображение размера файлабайты, килобайты, мегабайты
Строк в предупреждении об ошибке загрузкидо 2
Предельный размер обычного файла12 МБ
Предельный размер картинки20 МБ
Подготовка картинкидо 3 мегапикселей и 3072 пикселей по стороне
Качество картинки при сжатии95 для JPEG, PNG без потерь
Типы вложенийкартинка, текст, бинарный файл
Куда попадает вложениезагружается на сервер, путь подставляется в текст
Автозакрытие поля в развёрнутом видепри начале хода агента
Запоминание режима отправкимежду тредами и запусками приложения

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