Экран открывается из списка тредов проекта тапом по нужному диалогу, а кнопка «+» там же создаёт новый диалог и сразу открывает его. Один экран чата — это всегда один тред: своя история, своё состояние, своя модель и своя рабочая папка.
Как устроен экран
Экран состоит из пяти слоёв, и каждый слой отвечает за своё. Сверху вниз они выглядят так:
| Слой | Что на нём | Зачем он нужен |
|---|---|---|
| Шапка | название треда, метка субагента, модель, усиление рассуждения, состояние связи, цель треда, кнопка назад и меню | Показать, где вы находитесь, и дать быстрый доступ к настройкам треда |
| Лента | полосы расхода и связи, сообщения, карточки работы агента, вопросы и одобрения | Показать всю переписку и всю работу агента в хронологическом порядке |
| Нижняя панель | очередь сообщений, полоска плана, полоска статуса хода | Показать, что отложено, что выполняется по плану и чем занят агент прямо сейчас |
| Поле ввода | текст, вложения, прикреплённые скиллы, меню композера, переключатель режима, кнопки Stop и Send | Написать агенту сообщение, приложить файлы и отправить или остановить ход |
| Плавающая кнопка | стрелка вниз со счётчиком новых сообщений | Вернуться к последнему сообщению, если вы ушли вверх по ленте |
Поверх ленты отдельно раскрывается панель плана: она растёт вверх от полоски плана, а лента и поле ввода остаются на своих местах. С поверх всего экрана открываются полноэкранные окна: выбор модели, сведения о токенах, цель треда, переименование, удаление, а также экраны инструментов агента. Меню композера слева от поля ввода и полное меню треда под тремя точками в шапке открывают часть одних и тех же настроек — разница только в том, откуда вы в них пришли.
Что зависит от чего
- Полосы над лентой зависят от разных вещей, и каждая включается сама по себе. Полоса расхода контекста появляется, когда известны данные о токенах. Полоса лимитов появляется, когда израсходовано не меньше 70% доступного лимита модели. Баннер связи появляется, когда тред открыт, а соединение с агентом оборвалось или завершилось ошибкой. Баннер зависшего кэша появляется, когда сторож подозревает, что запросы идут без кэша. Отдельно в самой ленте, между карточками, появляется плашка «агент не отвечает» — когда ход долго молчит или потерялся.
- Полосы внизу зависят от хода. Полоска очереди есть, только когда во время работы агента вы отправили ещё не отправленные сообщения. Сообщение из очереди не показывается в ленте: оно появится там само, когда агент возьмёт его в работу. Полоска плана есть, только когда у агента есть план: предложенный, одобренный или выполняемый. Полоска статуса есть, когда идёт ход, идёт сжатие контекста или агент ждёт вашего ответа.
- Кнопка Stop появляется вместо паузного состояния ровно на время хода, а кнопка Send всегда на месте и гаснет, когда в поле пусто.
- Шапка меняется от треда к треду. У субагента в шапке появляется метка SUBAGENT со ссылкой на родительский тред, и кнопка назад уводит туда же. У удалённого агента в шапке появляется метка связи с сервером. Строка цели и строка перенаправления на другую модель появляются, только если они реально заданы.
Жизненный цикл одного хода
- Вы пишете сообщение и отправляете его. Пока агент не начал отвечать, сообщение висит в ленте с отметкой об отправке.
- Агент начинает работать. В полосе статуса появляется стадия: он читает файл, выполняет команду, вызывает инструмент, думает или пишет ответ. В ленте появляются карточки по мере поступления, а не после конца хода.
- Агент может задать вопрос или попросить одобрение. Карточка вопроса появляется в ленте, а полоса статуса переключается на «ждёт ответа». Пока вы не ответили, ход стоит на паузе.
- Агент закончил и показал итог. В конце блока хода появляется карточка с временем, числом команд, мыслей и правок, а полоса статуса гаснет.
- Если агент завис или потерял ход, приложение честно скажет об этом в полосе статуса и в баннере, а не будет молча показывать «работает».
Навигация
- В чат попадают из списка тредов проекта тапом по карточке диалога или кнопкой «+» для нового.
- Кнопка назад в шапке ведёт к родительскому треду, если вы смотрите субагента, иначе — назад к списку тредов.
- Из чата можно уйти в планы проекта, в список планов и файлов, а оттуда — снова в любой тред.
Технические данные
| Параметр | Значение |
|---|---|
| Порог показа полосы лимитов | 70% расхода лимита модели |
| Порог предупреждения о заполнении контекста в меню | 80% |
| Цвета полосы заполнения контекста | до 70% бирюзовый, от 70% жёлтый, от 90% красный |
| Порог подозрения на зависший ход | 4 минуты тишины |
| Повторная проверка живости агента | не чаще раза в 2 минуты |
| Таймаут сжатия контекста | 10 минут |
| Потолок цифры на кнопке возврата вниз | 99+, дальше показывается «99+» |
| Что считается новым сообщением для счётчика | ответ агента, его мысли и планы, но не команды и не служебные карточки |
| Сколько тредов держит сторож кэша в памяти | 32, родительский тред и его субагенты вместе |
| Условия баннера зависшего кэша | три запроса подряд дали меньше половины кэша, при этом запрос крупный и контекст почти не менялся |
| Сколько живёт предупреждение о залипании кэша после кнопки «Continue» | час, а залипание в фоне проверяется не чаще чем раз в 30 минут |
| Сообщения о результатах действий | обычные 3 секунды, предупреждения 6 секунд, ошибка остаётся до закрытия |
Что агент умеет
- Агент видит всю переписку в треде: ваши сообщения и свои ответы, а также результаты своих действий — команды, чтение файлов, правки, вызовы инструментов.
- Агент сам решает, нужна ли ему команда в терминале, чтение файла или правка файла, и отмечает каждый такой шаг в ленте отдельной карточкой.
- Агент может задать вопрос с вариантами ответа и дождаться выбора, а может попросить одобрение перед тем, как выполнить опасное действие.
- Агент может предложить план шагов до начала работы и ждать одобрения этого плана, если включён режим plan.
- Агент может вызвать любой подключённый к нему инструмент по MCP, и вызов виден в ленте вместе с результатом.
- Агент видит прикреплённые к сообщению файлы и пути к ним. Картинку он смотрит через подключённый инструмент распознавания, а не сам.
- Агент может отправить вам вопрос из другого треда, если работает как субагент, и такой обмен виден в ленте отдельной карточкой.
Ограничения
- Экран чата показывает один тред за раз. Посмотреть соседний диалог можно только через список тредов.
- Ответ агента печатается по мере поступления и не перечитывается целиком при каждом обновлении, поэтому при очень длинных ответах лента может вести себя не совсем плавно.
- Вложение отправляется в ленту как файл с путём. Само содержимое бинарного файла агент не читает: он получает только путь и предупреждение об этом. Файл больше 12 МБ приложение не примет.
- Обрыв связи посреди хода не мешает отправке: приложение само переподключается и досылает сообщение. Если переподключение не удалось, сообщение ждёт в полоске очереди, а лента показывает баннер с кнопкой повторной попытки. Сообщение из очереди в ленту не попадает: оно появится там само, когда агент возьмёт его в работу.
- Перезаход в тред во время идущего хода не обрывает ход, но лента на короткое время показывает скелет входа, пока перечитывает историю.
- Кнопка Stop прерывает ход на стороне приложения. Если ход потерян на сервере намертво, приложение блокирует новые отправки в этот тред и ждёт ручной разблокировки, чтобы не попасть в цикл «запустить — тишина — прервать — запустить».