LangChain утомил? Попробуйте Traw
Если вы хоть раз пытались собрать AI-агента для работы с браузером, вы знаете этот ад: сотни мегабайт зависимостей LangChain, медленный Python и вечные проблемы с совместимостью. Traw - это плевок в лицо этой сложности.
Traw - это AI-браузер, написанный на Bun, который использует DOM парсинг для автономного поиска. Никакого Python, никакого LangChain - только чистый JavaScript и скорость.
Что умеет этот странный зверь?
- Автономный поиск в интернете - задаете вопрос, получаете ответ
- DOM парсинг вместо тяжелых скриншотов (об этом ниже)
- Работает на Bun - в 3-4 раза быстрее обычного Node.js
- Минимальные зависимости - никакого bloat, как в LangChain
- Открытый код на GitHub - можно ковыряться и дорабатывать
Почему DOM парсинг, а не скриншоты? (Спойлер: потому что это умнее)
Большинство AI-агентов для браузера делают скриншоты страниц и отправляют их в vision-модель. Это дорого, медленно и часто бесполезно - модель пытается 'прочитать' текст с картинки, как первоклассник. Traw парсит DOM напрямую, извлекая текст и структуру. Быстро, дешево и точно.
DOM парсинг работает не на всех сайтах. Если сайт сильно нагружен JavaScript (всякие React-приложения), могут быть проблемы. Но для 80% задач - поиска информации, чтения статей, сбора данных - этого хватает.
Сравнительная таблица: Traw против других инструментов
| Инструмент | Язык | Зависимости | Скорость | Сложность |
|---|---|---|---|---|
| LangChain + Puppeteer | Python | 150+ пакетов | Медленно | Высокая |
| Playwright AI | JS/Python | Средние | Быстро | Средняя |
| Cogitator | TypeScript | Минимальные | Быстро | Низкая |
| Traw | JavaScript (Bun) | Минимальные | Очень быстро | Низкая |
Если вы уже используете AI-агента на Bun, Traw будет естественным продолжением. Для сложных сценариев с суб-агентами, смотрите эту статью.
1 Установка и настройка за 2 минуты
Установите Bun, если еще нет (это займет секунд 30):
curl -fsSL https://bun.sh/install | bash
Клонируйте репозиторий Traw:
git clone https://github.com/your-repo/traw.git
cd traw
bun install
2 Пример кода: как заставить Traw искать информацию
Базовый пример выглядит до смешного просто:
import { Traw } from 'traw';
const traw = new Traw({
apiKey: 'your-openai-api-key', // или Gemini, Anthropic - что хотите
headless: true, // безголовый режим - не показываем браузер
});
// Задаем вопрос - Traw сам найдет ответ
const result = await traw.search('Что такое Bun и зачем он нужен?');
console.log('Ответ:', result.answer);
console.log('Источники:', result.sources); // Ссылки на сайты, откуда взята информация
Traw сам откроет браузер, найдет информацию и вернет структурированные данные. Никаких телодвижений с промптами и цепочками вызовов.
3 Более сложный пример: сбор данных с нескольких сайтов
Допустим, вам нужно сравнить цены на что-то. Traw справится:
const traw = new Traw({ apiKey: 'your-key' });
// Ищем информацию о ценах на видеокарты
const query = 'Цены на RTX 4090 в 2024 году сравнение магазинов';
const results = await traw.deepSearch({
query: query,
maxPages: 5, // Проверим 5 страниц
summarize: true, // Попросим ИИ обобщить информацию
});
// results теперь содержит:
// - summary: обобщенный ответ от ИИ
// - pages: массив с данными с каждой страницы
// - bestPrice: найденная лучшая цена (если Traw смог ее распознать)
console.log(`Лучшая цена: ${results.bestPrice}`);
console.log(`Обзор: ${results.summary}`);
Кому подойдет Traw? (А кому - нет)
Берите Traw, если вы:
- JavaScript разработчик, который устал тащить Python в AI-проекты
- Хотите быстрого AI-агента для поиска информации без танцев с бубном
- Цените минимализм и скорость (Bun + мало зависимостей = быстро)
- Не хотите разбираться с LangChain (честно, я вас понимаю)
Не берите Traw, если вам нужно:
- Сложные агенты для трейдинга или анализа кода (посмотрите CodeAct)
- Работа с сайтами, требующими сложной авторизации (капчи, 2FA)
- Полноценный браузерный автомат для тестирования (тут Playwright лучше)
- Анализ сложных SPA-приложений с тоннами JavaScript
Ограничения и подводные камни
Traw не идеален. Вот что может пойти не так:
Сайты с бесконечным скроллом или lazy loading - Traw может не догрузить весь контент. Решение: в настройках можно увеличить timeout или добавить ручной скролл.
Еще проблема: некоторые сайты блокируют headless-браузеры. Traw пытается маскироваться, но 100% гарантии нет. Если сайт важный, возможно, придется использовать 'headed' режим (показать реальный браузер).
Что в итоге? (Спойлер: попробуйте, не пожалеете)
Traw - это не очередной монстр-фреймворк, который пытается решить все проблемы. Это инструмент для одной конкретной задачи: автономного поиска информации. И он делает это хорошо.
Если вам надоели гигабайтные зависимости LangChain, медленный Python и сложные конфиги - дайте шанс Traw. Установка за 2 минуты, код из 10 строк, и вы уже получаете работающего AI-агента для поиска.
А самое главное - это открытый код. Не нравится что-то? Форкните и переделайте под себя. В мире, где каждый AI-фреймворк весит как операционная система, такая простота - настоящий глоток свежего воздуха.
P.S. Если попробуете Traw и найдете баг - создайте issue на GitHub. Или лучше - пул-реквест. Автору будет приятно.