17 октября 2026 г.
libfx: агент доводит ход до конца после падения, редеплоя или таймаута
С 9 октября сессии libfx переживают падения и редеплои: каждый шаг хода сохраняется, и упавший агент продолжает с места падения, а не с нуля.

Guillermo Rauch
@rauchg
Durability для харнессов на fx.sh. Тот же `createFxAgent()` теперь *durable* на вашем ноутбуке или в облаке: через файлы, Postgres или Vercel Workflows. Node.js или Bun. Агентам нужны долгие вычисления. Но им ещё нужно переживать перезапуски, редеплои, таймауты, падения… Если пользователь отправил промпт и выбросил телефон в чёрную дыру, мы гарантируем, что ход доедет до конца. Если процесс упал посреди вызова инструмента, он продолжится с того же места. Для этого в libfx появился простой API адаптера durability. На Vercel он использует всю инфраструктуру, которую мы построили для durable workflows и очередей, и даёт надёжность в одну строку кода. Это критичная часть production-агентов, и всё, что есть у агентов @eve, работает из коробки. Дальше покажем, как принести ту же durability в Pi, OpenCode и даже ваши собственные харнессы.
libfx теперь durable из коробки. Тот же API на локальной машине, на Vercel и на своей инфраструктуре. - Сессии переживают падения, редеплои и таймауты - Облачные агенты на подписках ChatGPT и Grok - Кастомные провайдеры и поддержка локальных моделей в libfx - Несколько агентов libfx в одном приложении - Больше контроля над каждой сессией libfx - TypeScript-типы для публичных API libfx - Портировано на Zig 0.17 - Несколько багфиксов и улучшений безопасности
· 27,9 тыс. просмотров
**Ход не теряется, когда телефон уже в кармане.** Гийом Раух, известный как @rauchg, описывает сценарий: пользователь отправил промпт и вышел, а агент доводит ход до конца. Если процесс упал посреди вызова инструмента, он продолжится с того же места.
Как это работает. Каждый шаг хода сохраняется по мере выполнения. Упала функция, Vercel Queues передаёт ход новой функции, и та продолжает с последнего сохранённого шага. Ход переносится в новый вызов и до дедлайна функции, поэтому сессия переживает падения, таймауты и редеплои.
Не хотите разбираться сами? Внедряем ИИ в ваш бизнес: задачи без лимита, одна цена в месяц, отмена в любой момент.
Ограничения. Одна операция модели или инструмента не может длиться дольше maxDuration функции. Песочница Vercel у сессии по умолчанию живёт до 4 часов, лимит задаётся через sandbox с полем budget.vmSeconds.
Инструменты. Каждый инструмент объявляет поле idempotent. При true инструмент перезапускается после краша без ожидания журнала. При false ход ждёт записи вызова в журнал и не запускается дважды. Инструмент без поля libfx отклоняет.
Где хранятся сессии. Локально в Node.js они лежат в файлах $TMPDIR/libfx/sessions, путь меняет переменная FX_SESSIONS_DIR. На Vercel работает World Vercel Workflow, а свой Postgres подключается через пакет @workflow/world-postgres и переменную WORKFLOW_POSTGRES_URL.
Установка и миграция. Ставится командой npm i libfx, агент создаётся через createFxAgent({ model }). Код под 0.0.12 надо обновить: createFxAgent() теперь возвращает агента синхронно и не делает I/O до запуска сессии. Для Pi и OpenCode на Vercel есть пакеты durable-harness, версии OpenCode закреплены точно, без знака ^.
Следом автор обещает ту же durability для собственных харнессов, помимо Pi и OpenCode.
Первоисточник