ИИ-агентам нужен собственный браузер

Если отдать автономному агенту свой повседневный браузер, он получит ваши cookie, ваши входы и ваше устройство. Почему агентам место в изолированном профиле и как его им выдать.
Самый быстрый способ дать ИИ-агенту реальные возможности в вебе — позволить ему управлять браузером. Самый быстрый способ пожалеть об этом — позволить ему управлять вашим. В повседневном браузере хранятся все сессии, в которые вы когда-либо входили, а агент, умеющий кликать, может кликнуть по всему, до чего эти сессии дотягиваются.
Проблема радиуса поражения
Агент, которому поручили исследовать поставщиков, не собирается открывать вкладку вашего банка. Но браузер, в котором он работает, различий не делает: одно хранилище cookie, один набор сохранённых входов, одна идентичность машины. Куда бы агент ни перешёл, он там уже авторизован. Меры, к которым прибегают в первую очередь, — отдельный профиль Chrome, окно инкогнито — переносят cookie, но больше ничего.
Что на самом деле должна охватывать изоляция
- Хранилище: собственные cookie, Local Storage и IndexedDB в каталоге, в который больше ничто не пишет
- Учётные данные: только те входы, которые вы намеренно выполнили в этом профиле, и никакие другие
- Сеть: собственный маршрут, чтобы трафик агента и ваш трафик не шли с одного адреса
- Идентичность устройства: стабильная для этого профиля, а не копия машины, на которой вы работаете
- Расширения: только то, что нужно агенту, а не ваш менеджер паролей
Этот список совпадает с тем, что уже обеспечивает изолированный профиль браузера. С точки зрения браузера агент — просто ещё один пользователь вашей машины, который не должен видеть остальную вашу работу.
Как выдать агенту профиль
В PowerOps схема короткая. Создайте профиль для агента, задайте маршрут, по которому пойдёт его трафик, и входите только в те аккаунты, которые нужны для задачи. Затем запустите его через Local API, который вернёт отладочную точку доступа браузера, и направьте фреймворк агента на эту точку вместо браузера, запущенного им самим.
# Start the agent's profile and take the endpoint it returns.
curl -s -X POST http://127.0.0.1:50326/v1/browsers/start \
-H "Authorization: Bearer $POWEROPS_KEY" \
-H "Content-Type: application/json" \
-d '{"profileId": "agent-research-01"}'
Всё, что говорит на Chrome DevTools Protocol, подключается к тому, что возвращает этот вызов: Puppeteer, Playwright или фреймворк агента поверх любого из них. Код агента не меняется; меняется браузер, в котором он оказывается.
Один профиль на задачу, а не на агента
Инстинкт подсказывает дать профиль агенту. Лучшая единица — задача. Профиль для исследования поставщиков, профиль для аккаунта, с которого разрешено публиковать, профиль для дашборда, который он читает. Если запуск пойдёт не так, ущерб ограничен тем, до чего мог дотянуться этот один профиль, а каталог можно выбросить и начать заново.
Сопоставимые запуски
Агентов трудно отлаживать, потому что два запуска редко бывают одним и тем же запуском. Профиль, сообщающий одно и то же устройство при каждом старте, с того же маршрута и в состоянии, в котором вы его оставили, убирает целый класс различий между попытками. Когда запуск ведёт себя иначе, среда уже не входит в число подозреваемых.
Граница
Ничто из этого не способ обойти условия сайта, его лимиты запросов или политику robots, и как таковой он не продаётся. Агент получает браузер, принадлежащий задаче, а не вам.
