Назад в блог

Агенты и автоматизацияИнструкция

Browser Use на дешёвой модели: base_url и цена запуска

Подключите Browser Use к OpenAI-совместимому API, запустите проверку цены в настоящем браузере и прикиньте стоимость одного запуска.

Автор: CheapTokens TeamОпубликовано 4 мин чтения

Настройка Browser Use: ChatOpenAI с собственным base_url и id модели
Содержание
  1. Установка и подключение к API
  2. Что агент делает на странице с ценой
  3. Сколько стоит один запуск
  4. Если не заработало

Browser Use принимает любой OpenAI-совместимый адрес, поэтому для CheapTokens нужны три значения: base_url, ваш ключ и полный id модели. Ниже — agent.py, который открывает страницу товара, читает цену и сообщает её, и оценка, сколько стоит один запуск на живых ценах.

Браузерный агент на каждом шаге отправляет текст страницы в модель заново, поэтому расчёт стоит сделать до расписания.

Установка и подключение к API#

README Browser Use (сверено 8 ноября 2026) ставит библиотеку через uv; нужен Python 3.11+, лицензия MIT. Страница supported-models в документации показывает схему для своих адресов: ChatOpenAI с base_url, затем Agent(task=..., llm=llm).

bash
uv init --python 3.12
uv add browser-use

Ключ положите в файл .env рядом со скриптом, не в код:

bash
CHEAPTOKENS_API_KEY=your-key-here

И сам agent.py:

python
import asyncio
import os

from dotenv import load_dotenv
from browser_use import Agent, ChatOpenAI

load_dotenv()

llm = ChatOpenAI(
    model='deepseek-ai/DeepSeek-V4-Flash-0731',
    base_url='https://api.cheaptokens.dev/v1',
    api_key=os.getenv('CHEAPTOKENS_API_KEY'),
)

task = (
    'Open https://shop.example/laptop-x (replace with your product page). '
    'Find the current price and whether it is in stock. '
    'Reply with one line: price, currency, in stock yes/no. '
    'Do not click Buy or add anything to the cart.'
)

agent = Agent(task=task, llm=llm)
asyncio.run(agent.run())

Запуск: uv run agent.py. Если при первом запуске скрипт пожалуется на отсутствие браузера, поставьте его, как показано в quickstart Browser Use (uvx browser-use install, сверено 8 ноября 2026).

Блок ChatOpenAI с base_url CheapTokens и id модели
Меняется только это по сравнению с настройкой по умолчанию: модель, base_url, ключ.

Почему эта модель: в браузерном прогоне много вызовов и длинный контекст страниц. У DeepSeek-V4-Flash окно контекста 380K, до 32 768 токенов в одном ответе и одна цена в любое время суток. Id нужен полный — deepseek-ai/DeepSeek-V4-Flash-0731: короткие имена из ценовых таблиц API не принимает. Остальные id и основы подключения — в документации CheapTokens.

Что агент делает на странице с ценой#

Допустим, задача — «сколько сегодня стоит этот ноутбук». Агент крутит цикл: получает текст страницы, спрашивает модель, что делать дальше, выполняет действие в браузере (открыть, прокрутить, нажать) и получает новый текст страницы. Так — пока модель не решит, что ответ готов.

Цикл: задача, вызов модели, действие в браузере, новый текст страницы
Каждый круг цикла — один вызов модели, и текст страницы уходит в него снова.

Последняя стрелка и есть главная статья расхода. Страница товара — это тысячи токенов текста, и они едут с каждым вызовом. В посте одного канала от 6 ноября Browser Use назван браузерным слоем агента-покупателя, который сравнивает предложения и следит за снижением цен; та же идея подходит для ежедневной проверки одной-двух страниц, как в задаче выше.

Выберите свой случай

Подходит ли браузерный агент для вашей проверки?

Цена появляется только после кликов

Браузерный агент подходит. Он откроет страницу в настоящем браузере, выберет размер или цвет, прокрутит и прочитает появившееся. Скриптом то же придётся поддерживать селекторами под каждый магазин.

Один постоянный адрес и один постоянный элемент с ценой

Обычный скрипт с селектором дешевле: модель не нужна вовсе. Постоянные шаги держите в коде, а модель — для того, что меняется. Подробнее — в статье нужна ли агенту модель на каждом шаге.

Два-три магазина с разной вёрсткой

Браузерный агент подходит. Один текст задачи покрывает несколько разных страниц, а однострочные ответы вы потом сравниваете.

Перед расписанием ещё одно: агент читает всё, что написано на странице, а на странице могут быть инструкции, адресованные именно агенту. Что с этим делать — в чек-листе по prompt injection; по той же причине в задаче выше запрещена покупка.

Сколько стоит один запуск#

Не гадайте, а задайте допущения. Допустим, запуск занимает 15 шагов. На каждом шаге уходят задача, история и текущая страница — около 12 000 входных токенов, а модель отвечает коротким действием примерно на 600 токенов.

15 × 12 000 = 180 000 входных токенов и 15 × 600 = 9 000 выходных за запуск. На DeepSeek-V4-Flash такой запуск стоит $0.0036, вход — $0.015 за 1M токенов. Вход здесь в 20 раз больше выхода — для браузерной работы это обычная картина, и в сумме, с учётом входа и выхода, цена ниже справочной цены OpenRouter для этой модели.

Таблица ниже считает те же числа на шаг для 15 шагов, чтобы модели можно было сравнить рядом:

Модель За запрос 15 запросов OpenRouter, 15 запросов
GLM-5.3-Flash $0.00026 $0.004 $0.0068
DeepSeek-V4-Flash $0.00024 $0.0036 $0.0139
MiniMax-M2.7 $0.00069 $0.0104 $0.124

12 000 входных и 600 выходных токенов на запрос. Цены за 1M токенов актуальны и меняются вместе с нашими тарифами; столбец OpenRouter показывает справочные цены для той же нагрузки.

Теперь примерьте к своему расписанию. Три страницы раз в день — это 45 шагов; подвигайте ползунки под свои числа.

Калькулятор стоимости

День проверок цен: 3 страницы, по 15 шагов

Входные токены на запрос: 12 000 · Выходные токены на запрос: 600 · Запросов в день: 45

МодельВ деньВ месяц
GLM-5.3-Flash$0.0119$0.356
DeepSeek-V4-Flash$0.0108$0.324
MiniMax-M2.7$0.0311$0.932

Тот же расчёт для 50 шагов на трёх моделях — в статье стоимость сессии агента. Если хотите GLM-5.3-Flash (контекст 390K, до 8 192 токенов в ответе), её строка есть в таблице выше; короткие ответы-действия здесь с большим запасом укладываются в этот лимит. Актуальные цены всех моделей — на странице цен.

Если не заработало#

Начните с текста ошибки. Вот три частые причины:

Найдите пары

Сопоставьте симптом и причину

  • 401 UnauthorizedКлюча нет в .env или в нём опечатка
  • 404 model not foundУказан короткий id вместо deepseek-ai/DeepSeek-V4-Flash-0731
  • {"navigate": "google.com"} вместо {"navigate": {"url": ...}}Модель вернула неверную схему действия

Последний случай описан на странице supported-models Browser Use (сверено 8 ноября 2026) для небольших моделей Qwen: они могут вернуть неверную схему действия. Исправление, которое предлагает документация, — добавить в промпт примеры правильного формата действий. Положите их в текст задачи, например:

text
Actions are JSON objects like {"navigate": {"url": "https://..."}}.
Always put the url inside the object.

Если агент ходит по кругу, сузьте задачу: одна страница, один вопрос, ответ одной строкой. Короткие задачи заканчиваются за меньшее число шагов, а меньше шагов — самая дешёвая правка.

Дальше: LangChain с custom base_url использует ту же идею base_url, если вокруг браузерного агента вы собираете свои цепочки.