Перейти к содержимому
ColliePWA

06/Documentation

Durable agents на телефоне

Как выглядят раздел, диалоги, вопросы и квитанции durable agent

Экспериментальная. Отображение durable agent на телефоне может измениться, либо функция может быть удалена в следующем минорном релизе. Раздел Durable agents описывает, от чего зависит её сохранение.

На этой странице показаны все места, где durable agent появляется на вашем телефоне: его строка на дашборде, список бесед, вопросы, чат, его стартеры и пуши. Раздел Durable agents описывает предварительное подключение durable agent.

Durable agent отображает элемент управления только для тех действий, которые он заявил в hello. Строка ниже, называющая элемент управления, предполагает, что durable agent его объявил.

Раздел Durable agents на дашборде

Каждый durable agent занимает одну строку в разделе Durable agents, отдельно от ваших spaces.

Раздел Durable agents над spaces с двумя ожидающими беседами desk.
Раздел Durable agents над spaces с двумя ожидающими беседами desk.
часть строкичто отображается
Строка 1Имя durable agent из sources.json и значок Experimental
Строка 2Его среда выполнения, имя, которое durable agent сообщает в приветствии, иначе durable. Затем local или remote
Правый край, готовЧисло открытых разговоров, а цветом needs-you — число тех, что ждут вас. Второе число скрыто, если оно равно нулю
Правый край, не готовСлово Starting, Unreachable или Version mismatch, без счётчиков

Durable agent, доступный через сокет либо по http://127.0.0.1 или http://localhost, имеет статус local. Все остальные URL — remote.

Раздел находится под вашими пространствами. Он перемещается над ними, пока у любого durable agent есть разговор, ожидающий вас, и возвращается вниз, когда получен ответ на последний из них. Если ни один durable agent не подключён, раздел не отображается вовсе.

При включённой настройке «Show only panes that need you» в разделе выводятся только те durable agent, которые ждут вас. Нажмите на строку в любом состоянии, чтобы открыть список разговоров этого durable agent.

Список разговоров

Главный экран durable agent отображает его разговоры так же, как мессенджер отображает чаты.

Список разговоров durable agent: один ожидает, два открыты, два закрыты.
Список разговоров durable agent: один ожидает, два открыты, два закрыты.

Сначала идут те, что ждут вас, затем остальные открытые разговоры, сначала новые. Закрытые следуют под меткой Closed. В каждой строке показаны заголовок, значок состояния, время последней активности и одна строка под ним: ожидающий вопрос, иначе подзаголовок durable agent. В строке с ожиданием также указано число открытых вопросов. Строка без названия подписана как «Untitled conversation».

Нажмите на открытую строку, чтобы открыть её в Chat. Нажмите на закрытую строку, чтобы открыть её только для чтения. У закрытого разговора есть кнопка Reopen, если durable agent умеет их открывать повторно.

Открытые строки берутся из собственных данных панели управления, поэтому отображаются сразу. Закрытые поступают от durable agent, которого Collie опрашивает один раз за посещение и повторно при открытии или закрытии разговора, но не при каждом опросе.

внизу спискакогда
Load moreУ durable agent больше 100 разговоров. Каждое нажатие подгружает следующие 100
«This durable agent does not keep a list of its conversations.»Durable agent ответил, что не ведёт список
«The durable agent did not answer. Try again in a moment.»Durable agent не ответил на запрос чтения
«The durable agent speaks wire v2, this Collie speaks v1. Update Collie, or the agent's SDK.»Collie отклонил durable agent из-за версии протокола wire (Квитанции)
«Couldn't load the conversations. Try again.»Сбой чтения при передаче

Durable agent без истории показывает только свои открытые диалоги, без группы «Closed» и без примечания. Уже отрисованный список остаётся на экране, если последующее чтение завершается с ошибкой.

Вопрос на телефоне

Вопрос от durable agent отображается как карточка в чате, под вызовом соответствующего инструмента.

Карточка разрешения от desk, на ответ осталось 4 минуты.
Карточка разрешения от desk, на ответ осталось 4 минуты.

В подписи указан durable agent: «Needs your answer · desk». Если durable agent задал срок действия, строка под заголовком ведёт обратный отсчёт: «Expires in 4 min», затем «Expires in 40 s», затем «Expired». После истечения срока кнопки остаются, а на позднее нажатие durable agent отвечает сам.

типчто показывает карточкаограничения
permissionПо одной кнопке на вариант, в формулировках Collie: Allow, Always allow, Deny или Cancel. Собственная метка durable agent отображается неброской второй строкойДо 6 вариантов
choiceПо одной строке на вариант. Одно нажатие отправляет выбор. При multiple строки переключаются под заголовком «Pick any number», а кнопка Send отправляет выбранный наборДо 8 вариантов
textОдна строка для ввода, счётчик вида «12 of 500» и кнопка Send500 символов или лимит durable agent вплоть до 2000
formПоля карточки друг под другом над одной кнопкой Send: текстовая строка, выбор из списка или переключатель. У обязательного поля указано RequiredДо 6 полей

Для «Always allow» требуется два нажатия. Первое меняет кнопку на «Tap again to always allow» и имя инструмента. Второе отправляет ответ. Collie не предлагает этот вариант, если в вопросе не назван инструмент.

Если Collie пришлось сократить или очистить текст durable agent, на карточке выводится «Text shortened» и вариант «Always allow» не предлагается, поскольку вам был показан не весь текст.

Карточка неизвестного для этой версии Collie типа показывает свой текст и сообщение «This ask cannot be answered from the phone.». Диалог отрисовывает первые 5 вопросов как карточки, а строка «Show N more» открывает остальные.

Что происходит после нажатия

Каждое нажатие передаёт один идентификатор запроса, и только нажатие отправляет ответ.

что произошлочто написано на карточкечто делать
Durable agent принял ответНичего: карточка закрываетсяНичего
Durable agent принял решение первым«Decided in the durable agent.»Ничего. В чате остаётся соответствующая строка
Сначала истёк срок ожидания вопроса"Время ожидания ответа истекло."Ничего. В чате остаётся соответствующая строка
Другой ответ пришёл раньше"Ответ уже получен. Эта карточка закроется при следующем обновлении."Ничего
Вопрос не был открыт, и durable agent не сообщил причину"Не принято. Вопрос может появиться снова через минуту."Подождите. Перезапущенный durable agent задаст вопрос повторно
Вопрос изменился во время ответа"Вопрос изменился. Прочитайте его ещё раз и выберите ответ."Прочитайте изменённый вопрос и ответьте снова
Возможно, ответ не дошёл"Не удалось подтвердить получение ответа. При повторной попытке он будет отправлен ещё раз."Нажмите «Повторить попытку». При этом отправляется тот же идентификатор запроса, поэтому durable agent получит его один раз
При повторной попытке вопрос оказался закрыт или изменён"Возможно, уже применено. Проверьте чат."Проверьте чат
Collie отклонил ответПричина от Collie, иначе «Ответ был отклонён».Прочитайте причину
На машине с durable agent установлена более старая версия Collie"На этой машине работает устаревшая версия Collie, и здесь ответы не принимаются. Обновите её или ответьте в durable agent."Обновите эту машину

Квитанции

Collie сообщает, чем завершился вопрос, если вы на него не ответили, и почему durable agent отклонён.

Карточка, которая пришла слишком поздно: Решено в durable agent.
Карточка, которая пришла слишком поздно: Решено в durable agent.
ситуациячто отображается
У вопроса есть срок действияВ карточке отображается оставшееся время под заголовком
Вы нажали ответ после того, как durable agent принял решение, или после истечения срока действияКарточка блокируется и показывает: «Решено в durable agent.» или «Время ожидания ответа истекло.»
Время ожидания вопроса истекло, либо durable agent решил его сам, без вашего нажатияОдна строка в чате: «Timed out before an answer:» или «Decided in the durable agent:», затем заголовок вопроса
Collie отклонил durable agent из-за версии сетевого протокола (wire version)Блок предупреждения на главной durable agent и слова Version mismatch в его строке на панели управления

Вопрос, на который вы ответили с телефона, или вопрос, завершённый из-за остановки хода, не оставляет такой строки. Ваше нажатие уже содержало карточку.

Главная страница отклонённого durable agent: Program speaks wire v2, this Collie speaks v1.
Главная страница отклонённого durable agent: Program speaks wire v2, this Collie speaks v1.

В блоке предупреждения указано, какую версию протокола использует каждая сторона, например «Program speaks wire v2, this Collie speaks v1. Update Collie, or the durable agent's SDK.». Обновите устаревшую сторону. Правило описано в Версии.

Чат

Диалог durable agent открывается во вкладке Chat — это его единственное представление.

элемент от durable agentчто отображает Chat
userВаша реплика
replyОтвет агента
thinkingРазмышления агента
noticeКороткая заметка в треде
markdownОтрисованный markdown: заголовки, списки, выделение, код и ссылки. Исходный HTML отображается как текст
codeБлок кода с указанием языка, если durable agent его задал
linkСтрока ссылки с её меткой, иначе адрес. Только ссылки https://
toolВызов инструмента: выполняется, завершён с выводом, завершился с ошибкой или отклонён

Элемент reply, thinking, notice или markdown, который всё ещё дополняется, содержит курсор на конце и не имеет времени. Курсор исчезает по прибытии финального текста. Остановленный вами ход оставляет пометку «stopped».

Ваша реплика

Ваша реплика появляется в треде в момент нажатия Send со значком маленьких часов. Когда приходит копия от самого durable agent, она встаёт на место этой строки.

состояниечто показывает строка
Отправляется или отправленоЧасы. В поле ввода появляется «Sent», когда durable agent принял реплику
Ответ так и не пришёл«Sending, not confirmed». Повторная отправка через Send выполняет повтор с тем же request id
Отклонено, либо ход перешёл дальше«Not sent», и ваш текст возвращается в поле ввода

Durable agent, который не возвращает request id, сопоставляется по идентичному тексту в течение 30 секунд. Строка, которую durable agent так и не записал в ответ, перестаёт отображаться через 10 минут.

Пока ваша реплика остаётся последней в треде, а durable agent ещё не ответил, троеточие показывает, что идёт работа.

Заголовок

Заголовок состоит из двух строк. Первая строка содержит название диалога и значок Experimental.

во второй строке отображаетсякогда
«Шаг 2 из 3: сохранение заметки»Долгоживущий агент передаёт шаги, и один из них выполняется
«42%: выгрузка»Долгоживущий агент передаёт процент выполнения с соответствующей подписью
Подзаголовок долгоживущего агентаПрогресса нет, или все шаги выполнены
Рабочая областьДолгоживущий агент не задаёт ни один из этих параметров

Прогресс виден только тогда, когда диалог выполняется или ждёт ваших действий.

Панель действий

На панели действий находятся кнопки Steer и Stop, а затем до четырёх собственных кнопок долгоживущего агента.

Steer отправляет ваш текст в текущий шаг вместо запуска нового. Stop завершает текущий шаг. Кнопка, действие которой сейчас недоступно, становится блёклой на своём месте, поэтому интерфейс не сдвигается.

кнопка долгоживущего агентаправило
ТекстНе более 16 символов
ЗначокОдин из 12 вариантов: play, pause, check, x, refresh, archive, flag, star, send, note, search, more. Для любого другого имени значок не отрисовывается
ЗанятСпиннер и отсутствие реакции на нажатие
ОтключеноБлёклая кнопка и отсутствие реакции на нажатие

Нажатие указывает на самый свежий шаг, который отобразился на телефоне. Если диалог уже ушёл дальше, ничего не выполняется, и телефон сообщает об этом: «Диалог продвинулся дальше, поэтому действие не выполнено». Проверьте состояние, а затем нажмите кнопку снова, если действие всё ещё нужно.

Чего нет на панели долгоживущего агента

У долгоживущего агента нет экрана, поэтому на его панели нет режима Terminal, полос вкладок или панелей, а также кнопок Keys, Type или Quick. В его меню нет пунктов History, Pane settings и Pin to top row. Пункт Close в меню называется «Закрыть диалог».

Новый диалог и стартеры

Страница New долгоживущего агента называется «Новый диалог» и содержит список стартеров этого долгоживущего агента.

Стартер не принимает ни папку, ни текст: долгоживущий агент сам решает, где работать. Нажмите на стартер, и долгоживущий агент откроет новый диалог. На странице нельзя выбрать агент, шелл или команду хоста. Если у долгоживущего агента нет стартеров, выводится: «Долгоживущий агент этой машины пока не предлагает стартеров».

Push-уведомление

Вопрос может отправлять push-уведомление на ваш телефон в пределах лимитов для каждого durable agent.

ограничениелимитсверх лимита
Одна панель3 push-уведомления в минутуВопрос отображается на телефоне без отправки push-уведомления
Один durable agent на одной машине10 push-уведомлений в минутуТо же самое
Один durable agent на одной машине30 push-уведомлений в часОдно push-уведомление: «A durable agent on {host} is raising many asks», затем ни одного push-уведомления от этого durable agent в течение часа

Push-уведомление содержит текст «Permission needed in» и имя панели. Durable agent может добавить собственный заголовок (не более 60 символов) и строку (не более 120 символов). Collie отправляет push-уведомление с вопросом один раз для каждой связки машины, durable agent и вызова инструмента, поэтому вопрос, заданный повторно после перезапуска, отображается на экране, но не отправляет push-уведомление. Подробности см. в Push-уведомления от durable agent.

Маскирование

При включённом маскировании секретов (COLLIE_REDACT, включено по умолчанию) Collie маскирует секреты в заголовках и подзаголовках списка диалогов durable agent.

В составе crew

Дашборд ведущего узла (lead) содержит раздел Durable agents для каждой машины в составе crew. Durable agent участника добавляет имя участника во вторую строку, например pi-durable, local, workshop, а собственные durable agent ведущего узла не содержат имени машины. Вопрос на любой машине перемещает этот раздел выше рабочих пространств. В Durable agents в crew описано, кто и за что отвечает.

Редактировать эту страницу на GitHub

The rest of the documentation