Агент закончил работу, а Telegram недоступен: как я сделал очередь доставки ответов
An agent finished a task, checked the result and wrote a reply, but Telegram was unavailable at that moment. From the agent’s perspective the work was done, yet Telegram received neither the result nor an error message. Rerunning the task just to deliver the answer would waste time and tokens and could lead the agent to change files again. The author says this situation was taken into account while developing agent-hub, described as a Rust application.
Агент выполнил задачу, проверил результат и написал ответ. Но в этот момент Telegram недоступен. С точки зрения агента работа закончена, а в Telegram не пришло ни результата, ни сообщения об ошибке. Повторно запускать задачу ради ответа не хочется: это потратит время и токены, а агент может еще раз изменить файлы. Эту ситуацию пришлось учесть при разработке agent-hub - приложения на Rust, которое запускает AI-агентов на компьютере и позволяет общаться с ними через темы Telegram-группы. В прошлой статье я рассказывал, как запрос агента превращается в кнопку «Разрешить». С тех пор в хабе появилась очередь доставки финальных ответов. Казалось бы, достаточно сохранить текст и повторить отправку при ошибке. Но ответ может состоять из нескольких сообщений, Telegram может принять одно из них и не прислать подтверждение, а приложение - перезапуститься между отправкой и записью результата. Расскажу, что именно сохраняется в очереди, как она продолжает работу после сбоя и почему дубликаты все равно возможны. Читать далее