А вы знали, что стандартная функция web_extract в Гермесе, которая предназначена для извлечения контента с веб-страницы, режет всё после 5000 символов, и вместо полной информации страница даёт саммари, из-за чего теряются детали? Когда ИИ-агент ищет материал для статьи, он часто получает обрывки вместо полного текста — и либо упускает важные факты, либо галлюцинирует и пишет догадки.
web_extract — встроенный инструмент для извлечения контента с веб-страницы
web_extract — это функция в Hermes, которая по URL загружает страницу и возвращает её содержимое. Она удобная, быстрая, но с жёстким лимитом:
| Размер страницы | Что происходит |
| До 5000 символов | Возвращается как есть |
| 5000 — 500 000 | Саммари через LLM, обрезано до ~5000 |
| 500К — 2М | Чанками, параллельно, итог ~5000 |
| Больше 2М | Отказ |
Для коротких страниц web_extract работает отлично. Но для серьёзной работы — когда нужна полная документация API или статья на 15 000 слов — саммари убивает детали. Таблицы параметров, примеры кода, аргументы и выводы — всё это теряется, и вместо полной картины агент получает выжимку, в которой не хватает ключевых фактов.
Что такое Crawl4AI
Crawl4AI решает эту проблему. Это open-source Python-краулер с 70 500+ звёздами на GitHub. Он позволяет ИИ-агенту заходить на сайт через настоящий браузер и вытягивать весь контент в чистом markdown — без лимита, без саммари, без потери деталей.
Запускается одной командой:
docker run -d --name crawl4ai --restart unless-stopped -p 8080:8080 unclecode/crawl4ai:latest
Принцип работы простой: даёшь URL, и Crawl4AI открывает страницу в настоящем браузере, дожидается загрузки всех скриптов и стилей, и возвращает чистый markdown со всем содержимым. Без лимитов, без саммари, без потери данных.
Что умеет
- JS-heavy страницы — сайты на React, Vue, Angular и других фреймворках, где контент подгружается скриптами после загрузки страницы. Обычный HTTP-запрос получает пустой каркас, а Crawl4AI видит то же, что видит пользователь в браузере
- Deep crawl — обходит весь сайт по ссылкам с разными стратегиями: BFS (обход в ширину) для полноты карты сайта, DFS (обход в глубину) для детального исследования конкретного раздела, Best-First для целевого сбора по релевантности. Выбираешь стратегию под задачу: BFS — когда нужен весь сайт, DFS — когда копаешь глубоко в одну тему, Best-First — когда важны только определённые страницы
- Структурированная выгрузка — извлечение данных не сплошным текстом, а по конкретным селекторам. Указываешь CSS/XPath-селектор или JSON-схему — и получаешь структурированные данные: цены с карточек товаров, заголовки с новостной ленты, профили пользователей. Не нужно парсить markdown руками — Crawl4AI выдаёт готовый JSON с нужными полями
- Multi-URL crawling — можно скормить список из десятков URL, и Crawl4AI обработает их параллельно с контролем concurrency. Вместо того чтобы по очереди ждать каждый сайт, агент отправляет пачку URL и получает все результаты разом. Это экономит время на масштабном ресёрче, когда нужно собрать данные с 20-30 страниц
- Virtual scroll — прокрутка бесконечных лент в Twitter, Reddit, Instagram. Эти платформы подгружают контент при скролле, и обычный краулер видит только первые 10-20 постов. Crawl4AI автоматически прокручивает страницу вниз и собирает весь контент, который подгрузился
- PDF-парсинг — вытягивает текст из PDF-документов. Когда ресёрч ведёт к PDF-отчёту или научной статье, не нужно искать отдельный инструмент — Crawl4AI обработает и такой формат
- Anti-bot и Undetected-режимы — обходит защиту от автоматических запросов. Cloudflare, Datadome, PerimeterX — сайты с такими системами блокируют обычные HTTP-запросы, но Crawl4AI использует реальный браузер, который выглядит как обычный пользователь
- Cache-режимы — запоминает уже загруженные страницы и не запрашивает их повторно. При повторном обходе того же сайта Crawl4AI отдаёт кешированную версию, что экономит время и ресурсы
Чем отличается от базовых функций
| Критерий | web_extract (Hermes) | Crawl4AI |
| Лимит | 5000 символов, дальше саммари | Без лимита, весь контент |
| JS-страницы | Только HTML | Полноценный браузер (Chrome) |
| Deep crawl | Один URL | BFS, DFS, Best-First стратегии |
| Извлечение данных | Только текст | CSS/XPath, JSON-схемы, regex |
| Multi-URL | Нет |
|
| Формат | Урезанный markdown | Полный markdown + структура |
| Где работает | Встроен в агент | Отдельный Docker-контейнер |
| Скорость | Быстро (HTTP-запрос) | Медленнее (запускает браузер) |
Примеры использования
Иногда ИИ-агенту нужно изучить API нового сервиса. В случае использования web_extract он получит 5000 символов summary — общие слова без деталей эндпоинтов. Crawl4AI вытянет всю страницу документации: примеры кода, таблицы параметров, описания ответов. Это позволит агенту чётче выполнить задачу, не придумывая и не додумывая функции.
Агент нашёл статью на 15 000 слов с разбором архитектуры нового фреймворка. web_extract режет после 5000 и выдаёт саммари «статья рассказывает о...». Crawl4AI отдаёт полный текст: все аргументы, цитаты, ссылки на источники и выводы. На следующем шаге копирайтер получит полную картину для построения инсайта, а не обрубок статьи, в котором он сам придумает концовку.
Как встроить в работу
Для поиска нужно добавить сервис SearXNG, и тогда получится, что сначала агент находит релевантные страницы через поиск SearXNG. Если страница короткая — достаточно встроенного web_extract. А если страница длинная, JS-heavy (SPA, React), или нужно пройти по всем ссылкам на сайте — подключается Crawl4AI и вытягивает полный контент.