agent-aget

Язык: Русский | English
aget - помощник для браузерных сценариев LLM-агентов. CLI запускает управляемый CloakBrowser stealth Chromium, хранит локальные сессии и возвращает машинно-читаемый JSON.

Установка
npm i -g agent-aget
aget version
При npm i -g agent-aget пакет скачивает native aget и пытается установить pinned CloakBrowser в пользовательский cache. Upstream CloakBrowser описывает себя так: "Stealth Chromium that passes every bot detection test. Drop-in Playwright replacement with source-level fingerprint patches. 30/30 tests passed." Если сеть недоступна, установка пакета не падает; браузер можно поставить позже:
aget browser install
aget browser status
aget browser path
Порядок выбора браузера:
--browser-path
AGET_BROWSER_PATH
- managed CloakBrowser из cache
- legacy managed Chrome for Testing из cache, если он был установлен ранними версиями
aget
- системный Chrome/Chromium
Чтобы пропустить установку managed browser:
AGET_SKIP_BROWSER_DOWNLOAD=1 npm i -g agent-aget
Для локальной разработки:
go run ./cmd/aget version
Быстрый старт
Откройте страницу и сохраните sid из ответа:
aget open https://example.com -n example
По умолчанию браузер запускается в headless-режиме. Для видимого окна используйте:
aget open https://example.com -n example --headful
Для мобильных и планшетных страниц используйте --device (согласованный viewport + user-agent + touch для сохранения stealth):
aget open https://m.site.ru --device mobile
aget open https://m.site.ru --device tablet
Чтобы зайти с куками (Netscape-файл или inline):
aget open https://example.com -n example --cookies cookies.txt
aget open https://example.com -n example --cookies "session=abc; token=xyz"
Профили
Профиль — именованная директория Chromium с persistent cookies, localStorage и сессионными данными. Создайте профиль один раз и переиспользуйте в разных сессиях, сохраняя авторизованное состояние.
# Создать профиль с куками (браузер запустится, инжектит куки и закроется)
aget profile create ozon --cookies ozon-cookies.txt
# Создать пустой профиль (можно залогиниться вручную через --headful)
aget profile create samokat
# Просмотр
aget profile list
aget profile show ozon
# Открыть страницу с профилем (куки уже внутри)
aget open https://ozon.ru --profile ozon
# Удалить профиль и все его данные
aget profile delete ozon
Один профиль не может использоваться двумя сессиями одновременно — вторая попытка вернёт ошибку.
Команды страницы
Для действий сначала сделайте snapshot. Он возвращает refs вроде @e1 и @i1:
aget page snapshot -s SID
aget page click -s SID --ref @e1
aget page fill -s SID --ref @i1 --text TEXT
После действия --diff показывает только что изменилось относительно предыдущего snapshot той же сессии (added/removed/changed) — экономит токены:
aget page snapshot -s SID # базовый snapshot
aget page click -s SID --ref @e1
aget page snapshot -s SID --diff # только дельта после клика
Прочитать текущую страницу:
aget page read -s SID
aget page read -s SID --limit 40
Очистка шума (--clean)
Для read-heavy задач --clean убирает boilerplate-шум из текста страницы (cookie-баннеры, навигацию, повторяющиеся строки) и экономит токены. Работает в Go-слое над уже захваченным текстом — не трогает живой DOM, поэтому stealth не страдает. Это снижение шума, не защита от prompt injection и не маскировка PII.
# Разовая очистка для одного read
aget page read -s SID --clean
# Включить для всей сессии
aget open https://example.com --clean
AGET_CLEAN=1 aget open https://example.com
# Отключить, если кажется что пропал нужный контент
aget page read -s SID --no-clean
Очистка выключена по умолчанию и только удаляет не-основные строки (точные дубли и известные паттерны chrome) — основной контент не трогается. В ответе появляются clean_enabled и clean_dropped (сколько строк убрано). Приоритет: --no-clean > --clean > AGET_CLEAN > значение сессии.
Семантические локаторы (find)
find находит элемент по ARIA-роли, имени, тексту, placeholder или testid — устойчивее CSS и понятнее агенту. Только чтение DOM, без мутации (stealth сохраняется). Можно сразу выполнить действие через --action.