August 18

Агент Hermes только что узнал, как остановиться!

Одна из самых важных вещей, которым может научиться ИИ-агент, — это умение останавливаться.Звучит почти до смешного просто.Но это не так.Мы тратим огромное количество времени на то, чтобы оценить возможности агентов по тому, что они могут запустить.Могут ли они использовать браузер?Запустить терминал?Генерировать медиафайлы?Вызывать API?Делегировать работу?Продолжать работать без присмотра?Круто.Но есть еще один критерий, которому уделяется гораздо меньше внимания: Что произойдет, если я передумаю?Hermes Agent только что устранил вполне реальную проблему.

Когда «стоп» означало «подожди»

Hermes уже поддерживает прерывание активной работы. Вы можете перенаправить ее. Вы можете дать команду остановить ее.

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

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

Другие могут зависнуть на входящем звонке и просто сидеть так, пока работа не возобновится.

Это создавало неудобный пробел в последовательном выполнении инструментов.

Пользователь мог бы сказать:

Остановка. Займись чем-нибудь другим.

И инструмент мог бы ответить:

Круто. Я займусь этим, когда закончу.

Один из зарегистрированных случаев был связан с генерацией и масштабированием изображений с помощью FAL. Сообщается, что перенаправление находилось в очереди примерно 40 секунд в ожидании завершения этой работы.

Сорок секунд — не такая уж катастрофа.

Но суть не в этом.

Дело в том, что человек уже вернул себе контроль.

Система казни просто не успела среагировать.

Исправление — это нечто большее, чем генерация изображений

Самое интересное, что Hermes не просто исправил один инструмент для работы с изображениями. Изменился сам последовательный исполнитель. Долго выполняющиеся инструменты теперь запускаются на рабочем сервере, а не блокируют очередь без тайм-аута. Hermes проверяет состояние прерывания примерно раз в секунду. Если пользователь прерывает работу, кооперативные инструменты получают короткий льготный период для корректного завершения работы. Если этого не происходит, Hermes может прекратить ожидание, пометить вызов инструмента как отмененный и продолжить работу.Генерация изображений также получила собственную функцию обработки прерываний, в том числе во время апскейлинга.Таким образом, у Hermes есть два уровня защиты: глобальная резервная копия в исполнителе.И локальное взаимодействие внутри инструментов, которые умеют корректно завершать работу.Вот что меня волнует.

Кроме того, существует проблема «зомби-результата»

Здесь есть еще один неприятный пограничный случай.

Допустим, Hermes перестает ожидать завершения работы инструмента.

Базовый рабочий процесс в конечном итоге все равно завершается.

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

Новый способ отмены не позволяет рассматривать это позднее завершение как успешный результат работы инструмента.

После того как Hermes принял решение об отмене звонка, он остается отмененным в реальности агента.

На первый взгляд это кажется незначительной деталью реализации.

Но это не так.

В агентных системах полно подобных деталей.

«Стоп» должен становиться все более действенным по мере развития агентов.

Здесь есть одно важное отличие.

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

Внешняя служба, которая не сотрудничает с агентом, все равно может завершить свою работу.

Что может сделать Hermes, так это вернуть управление в цикл агента, вместо того чтобы заставлять пользователя ждать завершения этой операции, прежде чем что-то еще станет возможным.

И это подводит нас к более важному вопросу.

Мы продолжаем наделять агентов все большими полномочиями.

Файлы.

Браузеры.

Оболочки.

API.

Фоновые задания.

Другие агенты.

Чем мощнее становятся эти системы, тем менее приемлемым становится то, что остановка выглядит как вежливое предложение.

Способности привлекают внимание.

Автономность — это демонстрация возможностей.

Но именно контроль делает их полезными.

Агент на самом деле не под вашим контролем, если «остановка» означает только «после того, как я закончу».

Будущее пользовательского опыта с агентами — это не только обучение агентов тому, как продолжать работу.

Это чертовски важно, чтобы человек мог заставить их остановиться. 🤘

Посмотреть исходное изменение Hermes Agent на GitHub

ТГ канал-https://t.me/Novopoltsev_Pavel