"Фоновые агенты (1/3) Итак, у нас появился новый тип инструментов, которые пробудут с нами некоторое время, и их роль будет только возрастать, и это - асинхронные облачные ИИ-агенты (для краткости - фоновые агенты). Как и любой другой инструмент, этот имеет свои особенности, сферы применения, и его нужно учиться использовать и включать в рабочие процессы. Для начала расскажу, о чём это всё, а позже опишу подробно свои впечатления по некоторым из фоновых агентов и дам сравнение. Для кого это? Фоновые агенты нацелены больше на senior+ разработчиков и предназначены для повышения их продуктивности. Идея в том, чтобы делегировать ИИ-агентам посильные задачи, над которыми они будут работать без вашего участия. Это позволяет меньше отвлекаться на рутину и больше фокусироваться на сложных/творческих проблемах. Больше всего это похоже на то, как будто бы у вас есть на подхвате несколько джунов, которые между собой не общаются, каждый раз видят проект как в первый раз, но могут быстро в параллель работать над небольшими задачами, и всегда при этом доступны. Что им можно скормить? Как правило, такие задачи, которые не особо интересно делать: ● фиксинг мелких багов; ● реализация небольших новых и чётко очерченных фич; ● закодить что-то по существующему в проекте шаблону (всякие CRUD'ы, к примеру); ● написание и отладка тестов; ● мелкий рефакторинг кода; ● создание или обновление документации; ● ... и прочие рутинные или трудоемкие задачи, отнимающие время. Можно глянуть список промптов для Google Jules, чтобы получить более полное представление. Как это работает? Фоновые агенты выпустили несколько компаний, но общий принцип их работы довольно схож: 1. Постановка задачи: обычно через чат или через назначение агенту таски на GitHub (кстати, все они ожидают того, что ваш код хостится на GitHub) 2. Создание изолированного окружения: как правило, в облаке поднимается контейнер или VM, а потом туда клонируется репозиторий проекта 3. Автономная работа: в этой ""песочнице"" агент автономно работает над задачей. Типичные этапы его работы: ● Исследование: поиск релевантных задаче документации и кода ● Планирование: анализ задачи, опционально - разбивка на более мелкие подзадачи и построение плана ● Редактирование: собственно, работа с кодом и/или документацией ● Проверка: запуск линтера, билда, тестов, исправление найденных проблем в цикле В работу некоторых агентов можно вмешиваться на ходу, но по большей части контроля над агентом, кроме полной его остановки, нет до тех пор, пока он не сочтёт задачу выполненной или не завершится по таймауту/ошибке 4. Параллелизация: большинство фоновых агентов поддерживают одновременное выполнение нескольких задач, каждой в своей изолированной среде. Это позволяет делегировать сразу несколько потоков работы - и это, на мой взгляд, самое важное их преимущество Есть параллелизация и другого рода, когда одну и ту же задачу ставят сразу нескольким копиям агента, чтобы по итогу выбрать понравившееся решение. __С людьми такой финт ушами разве что Том Демарко в своём романе ""Deadline"" мог себе позволить :)__ 5. Developer-in-the-loop: финальный контроль остается за человеком. Агент не вносит изменения напрямую в основную ветку, вместо этого он: ● Предлагает результат: чаще всего этого готовый pull request в GitHub, но иногда и просто диффы, которые можно применить в открытом проекте ● Ждёт одобрения: разработчик просматривает PR, принимает изменения или отправляет на доработку через сообщение в чате или комментарий к PR на GitHub 6. Прозрачность: основа агента - LLM, работающая со своим набором инструментов, которые есть в песочнице (консольные команды, git, правка файлов, (возможно) headless браузер). Для отчёта предоставляются логи её действий, вызовов инструментов и этапы рассуждений, что может помочь разобраться, если что-то пошло не так #ai #agents"