Зачем агенту отдельный браузер
Агенту нужно обойти триста страниц и собрать данные. Обычный путь - поднять headless Chrome. Он это умеет, все так делают.
Цифры этого решения на ста страницах: два гигабайта памяти в пике, 46 секунд.
Существует другой подход. Браузер, написанный с нуля под агентов - не форк Chromium, не патч WebKit. Те же сто страниц: 123 мегабайта и 5 секунд. В шестнадцать раз меньше памяти, в девять раз быстрее.
Разница берётся из простой вещи. Обычный браузер построен для человека: он рисует пиксели, считает шрифты, анимирует, управляет вкладками. Агенту не нужно ничего из этого. Ему нужен разобранный документ и результат выполнения скриптов. Всё, что рисуется на экран - чистые накладные расходы, за которые вы платите памятью и временем.
Я поставил его дополнением, а не заменой. Playwright остался основным: он умеет то, чего новый браузер пока не умеет, и на сложных страницах надёжнее. Новый берётся там, где важны объём и скорость - обход сотен страниц, парсинг, проверка ссылок.
И одна деталь, ради которой я вообще полез в исходники. Телеметрия там включена по умолчанию. Я разобрал, что именно уходит: факт запуска, флаг шифрования, тип контекста. Адреса посещённых страниц не передаются - это честная анонимная статистика. Но канал наружу всё равно лишний, поэтому выключил переменной окружения.
Проверять такое до установки, а не после - отдельный навык, который экономит потом много нервов.
Чем вы гоняете агента по страницам и сколько это стоит по памяти?