ИИ-агенты уходят в фон

Как асинхронные субагенты в LangChain Deep Agents запускают фоновые задачи, принимают уточнения и возвращают результаты. Пример с PR и тестами.

Попросили агента проверить большой PR, а через минуту выяснилось, что смотреть надо другую ветку. Если агент ждёт окончания тестов внутри одного цикла, уточнение повиснет до завершения команды. В Deep Agents от LangChain долгую работу можно поручить фоновому субагенту, а с главным агентом продолжить разговор.

Как работают асинхронные субагенты

Оркестратор держит контекст разговора и раздаёт задачи. В нашем примере один субагент читает diff и ищет ошибки в миграциях, второй гоняет тесты. У каждой задачи есть свой поток выполнения. Оркестратор получает идентификатор сразу после запуска и может запросить статус, отправить уточнение или остановить задачу.

Что происходит, когда задача меняется

У обновления задачи в Deep Agents две стратегии. В режиме interrupt текущий запуск прерывается, а субагент стартует с новой инструкцией. Это подходит, если пользователь поменял ветку. В режиме enqueue инструкция ждёт завершения текущего запуска. Так можно попросить прогнать дополнительные тесты после основной проверки.

Как результаты возвращаются в чат

Если оркестратор занят, он проверяет незавершённые задачи между вызовами модели. Если простаивает, завершившийся субагент может запустить новый проход оркестратора. Когда оркестратор ждёт подтверждения от пользователя, результат дождётся ответа. LangChain помечает уведомления о задачах как бета-функцию.

Где начнутся проблемы в продакшене

Зафиксируйте SHA коммита в каждой задаче и прикладывайте его к результату. Иначе отчёт по старой ветке может прийти после переключения и попасть в новый ревью. Разведите рабочие каталоги у воркеров, которым разрешено менять файлы. Для внешних действий вроде создания комментария в PR используйте ключ идемпотентности, чтобы повторный запуск не оставил дубликат.

Что измерить на первой интеграции

Запустите долгий тест и в середине попросите сменить ветку. Отдельно измерьте время до реакции оркестратора и проверьте, что пользователь в итоге получил отчёт по нужному коммиту. Эти две проверки покажут, насколько хорошо работают и диалог, и фоновое выполнение.

Разбор архитектуры в блоге LangChain

Поделиться:

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *