Fractera AI Browser
Настоящий браузер на вашем сервере для машин: открывает страницы и веб-приложения так, как их открывает человек, и возвращает то, что на них на самом деле есть.
Память, другие службы и агенты дают ему адреса и получают итоговый HTML после скриптов, весь текст, заголовки, ссылки, кнопки, формы, поля и медиа по атрибутам — по нескольким страницам за один вызов. Ролики YouTube приходят с данными и субтитрами с метками времени.
Агент, читающий веб простыми HTTP-запросами, видит пустые заготовки страниц, которые рисуют скрипты, и мета-теги вместо содержимого. А браузер рядом с вашими данными — отдельный риск, если страница может заставить его стучаться во внутренние двери машины.
ИИ-браузер — отдельный микросервис со своим адресом, своим ключом и своими страницами. Он делает одно: открывает то, что ему дали, настоящим браузером и возвращает результат в виде, пригодном для программы.
Один вход, и каждый шаг между зовущим и страницей — проверка.
Поверхностный разбор элементов и медиа по атрибутам — и весь текст и код страницы.
HTML целиком после исполнения скриптов и весь видимый текст — не исходник, присланный сервером.
Заголовок, lang, canonical, мета-теги и заголовки h1–h6 с уровнями.
Ссылки, кнопки, формы и поля с именами, подписями, подсказками и вариантами выбора.
Картинки, видео, звук и фреймы по атрибутам: адрес, alt, постер, длительность, заголовок.
Браузер стоит рядом со слоем данных и другими службами. Страница не должна получить его руки внутри машины.
Схема, буквальный IP и разрешённое имя проверяются до открытия вкладки: петля, частные сети, link-local и адреса самой машины отвергаются.
Весь выход браузера идёт через собственный прокси службы для этого адреса. Он сам разрешает имена и соединяется только с проверенным адресом — перенаправления и WebSocket тоже.
Движок браузера запущен так, что даже петля идёт через прокси; по умолчанию Firefox отправил бы её мимо.
Тот же браузер, свой метод: youtube возвращает содержание ролика, а не страницу вокруг него.
Название, описание, канал, длительность, даты публикации и загрузки, просмотры, ключевые слова — со страницы самого ролика.
Берутся из запроса, который делает плеер при включении субтитров, строками [мм:сс–мм:сс] текст. Язык можно попросить.
Субтитров нет или плеер их не отдал — данные ролика, transcript: null и причина словами.
Служба поставляется со стендом за входом архитектора. Он зовёт тот же договор, что и любая программа, — второго пути в браузер нет.
/{язык}/settings?section=read-test
Один REST API, один ключ. Два метода: прочитать страницы, прочитать ролик YouTube.
curl -X POST https://ai-browser.your-domain.com/v1/read \
-H "Content-Type: application/json" -H "x-ai-browser-key: YOUR_KEY" \
-d '{ "urls": ["https://todomvc.com/examples/react/dist/"] }'curl -X POST https://ai-browser.your-domain.com/v1/read \
-H "Content-Type: application/json" -H "x-ai-browser-key: YOUR_KEY" \
-d '{ "urls": [
"https://developer.mozilla.org/en-US/docs/Web/HTML",
"https://en.wikipedia.org/wiki/Web_browser",
"https://example.com/"
] }'curl -X POST https://ai-browser.your-domain.com/v1/youtube \
-H "Content-Type: application/json" -H "x-ai-browser-key: YOUR_KEY" \
-d '{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "lang": "en" }'Пределы названы в самом ответе, а обрезанное помечено: список из 300 ссылок при 2 000 на странице несёт total: 2000.
| Что | Предел |
|---|---|
| Адресов за вызов | 10 |
| Вкладок одновременно | 3 |
| Время на адрес | 90 с |
| Итоговый HTML страницы | 5 000 000 знаков |
| Видимый текст страницы | 1 000 000 знаков |
| Каждый список элементов | 300 записей |
Про установку нужно знать ровно одно.
Один запуск робота-установщика Fractera на вашем сервере поднимает все микросервисы платформы, включая ИИ-браузер: движок браузера, его библиотеки, nginx и ключ доступа настраиваются за вас.
Стенд, API и каждый метод открывают страницы через одну защищённую вкладку. Второй путь в браузер обошёл бы запрет адресов.
У каждого отказа вечный код и причина: url-forbidden, page-timeout, not-youtube, video-unavailable. Неоткрывшийся адрес не роняет остальные в том же вызове.
Обрезанное помечено, незагрузившееся названо. load_reached: false значит, что страница отдана, не дождавшись события load.
Короткие ответы на то, о чём спрашивают до интеграции.
Потому что многие страницы рисуют скрипты. Простой запрос к TodoMVC получает 645 знаков HTML, браузер после скриптов отдаёт 3 289 — список, поле ввода, кнопки. Простой запрос видит пустую заготовку, браузер — страницу, которую видит человек.
Нет. Адреса самой машины, петли, частных сетей и link-local отвергаются до открытия вкладки и ещё раз на каждом запросе страницы — картинках, фреймах, fetch, перенаправлениях и WebSocket. Весь выход браузера идёт через собственный прокси службы: он сам разрешает имя и соединяется только с проверенным адресом. Прибор на сервере считает обращения к слушателю на петле: ноль, в том числе после перенаправления на 127.0.0.1.
По каждому адресу: итоговый адрес и код, заголовок, итоговый HTML целиком, весь видимый текст, lang и canonical, мета-теги, заголовки h1–h6, ссылки, кнопки, формы и поля с подписями, картинки, видео, звук и фреймы по атрибутам — у каждого списка items и total. И ещё — что страница пыталась достать и получила отказ, и дождалась ли она события load.
Fractera AI Browser — один из микросервисов платформы Fractera, инженерной инфраструктуры для автономных агентов. Весь проект, включая эту службу, с открытым исходным кодом.
Проект Fractera на GitHubПаспорт службы — зачем она, как устроена и где её пределы.
Данные ролика всё равно приходят — название, описание, канал, длительность, даты, просмотры — с transcript: null и причиной словами. Субтитры берутся из запроса самого плеера; если плеер их не отдал, ответ говорит это, а не отдаёт пустой успех.
Лёгкая страница открывается за несколько секунд, тяжёлая с десятками сторонних ресурсов — за 20–60 с. До 10 адресов за вызов, одновременно 3, на адрес 90 с. Измерено на эталонном сервере: три тяжёлые страницы одним вызовом — около 95 с.
Нет. Браузер не входит на сайты под учётной записью и не проходит проверки на ботов. Если сайт вместо содержимого показал страницу проверки, вы получите её с кодом ответа — измерено: проверка безопасности Vercel пришла кодом 403 со своим заголовком.
Первой — память: чтобы сохранять страницы и ролики, которые присылают люди. Другие службы сервера и агенты зовут его тем же договором с ключом; процессы этой же машины — секретом машины.
На вашем сервере. Браузер, его кэш и каждая открытая страница остаются на машине; стороннего сервиса скрейпинга посередине нет.