Torna al blog

Agenti e automazioneGuida

Browser Use su un modello economico: configurazione base_url e costo di esecuzione

Collega Browser Use a un'API compatibile con OpenAI, esegui un task di controllo prezzo in un browser reale e stima quanto costa una singola esecuzione.

Di CheapTokens TeamPubblicato il 5 min di lettura

Configurazione di Browser Use: ChatOpenAI con base_url e model id personalizzati
In questa pagina
  1. Installa e puntalo all'API
  2. Cosa fa davvero l'agente su una pagina di prezzo
  3. Quanto costa una singola esecuzione
  4. Se non funziona

Browser Use accetta qualsiasi endpoint compatibile con OpenAI, quindi collegarlo a CheapTokens richiede tre valori: base_url, la tua chiave e l'id completo del modello. Qui sotto trovi un agent.py che apre una pagina prodotto, legge il prezzo e lo riporta, più una stima di quanto costa una singola esecuzione ai prezzi correnti.

Un agente browser reinvia il testo della pagina al modello a ogni passo, quindi la stima viene prima della pianificazione.

Installa e puntalo all'API#

Il README di Browser Use (verificato l'8 novembre 2026) lo installa con uv; la libreria richiede Python 3.11+ ed è distribuita con licenza MIT. La pagina dei modelli supportati nella documentazione mostra il pattern per endpoint personalizzati: ChatOpenAI con un base_url, poi Agent(task=..., llm=llm).

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

Metti la chiave in un file .env accanto allo script, mai nel codice:

bash
CHEAPTOKENS_API_KEY=your-key-here

Poi 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())

Esegui con uv run agent.py. Se la prima esecuzione segnala un browser mancante, installalo come mostra la quickstart di Browser Use (uvx browser-use install, verificato l'8 novembre 2026).

Il blocco ChatOpenAI con base_url e model id di CheapTokens
L'unica parte che cambia rispetto alla configurazione predefinita: modello, base_url, chiave.

Perché questo modello: un'esecuzione browser è composta da molte chiamate con un contesto pagina lungo. DeepSeek-V4-Flash ha una finestra di contesto di 380K, fino a 32.768 token di output per risposta e un prezzo unico a qualsiasi ora del giorno. L'id deve essere il deepseek-ai/DeepSeek-V4-Flash-0731 completo — i nomi brevi delle tabelle prezzi non sono accettati dall'API. Altri id e le basi della connessione sono nella documentazione di CheapTokens.

Cosa fa davvero l'agente su una pagina di prezzo#

Supponiamo che il tuo task sia "quanto costa oggi questo portatile". L'agente esegue un ciclo: riceve il testo della pagina, chiede al modello cosa fare dopo, esegue l'azione nel browser (apri, scorri, clicca) e riceve il nuovo testo della pagina. Ripete finché il modello decide di avere la risposta.

Il ciclo: task, chiamata al modello, azione nel browser, nuovo testo della pagina
Ogni passaggio del ciclo è una chiamata al modello, e il testo della pagina viene reinviato ogni volta.

È quest'ultima freccia a determinare il costo. Una pagina prodotto può contenere migliaia di token di testo, e viaggia con ogni chiamata. Un post di un canale del 6 novembre citava Browser Use come livello browser di un agente per lo shopping che confronta offerte e monitora cali di prezzo; la stessa idea si adatta a un controllo giornaliero di una o due pagine, come nel task qui sopra.

Scegli il tuo caso

Un agente browser è lo strumento giusto per il tuo controllo?

Il prezzo appare solo dopo i clic

Un agente browser è adatto. Apre la pagina in un browser reale, sceglie una taglia o un colore, scorre e legge ciò che appare. Scrivere tutto come script significa mantenere selettori per ogni negozio.

Un URL fisso e un elemento prezzo fisso

Uno script semplice con un selettore costa meno: nessuna chiamata al modello. Metti i passaggi fissi nel codice e tieni il modello per le parti che cambiano. Ne parliamo in gli agenti hanno bisogno del modello a ogni passo.

Due o tre negozi con layout diversi

Un agente browser è adatto. Un unico testo di task copre diversi layout di pagina, e confronti le risposte da una riga dopo.

Un avvertimento prima di pianificare qualsiasi cosa: l'agente legge qualunque cosa dica la pagina, e una pagina può contenere istruzioni rivolte all'agente. La checklist per il prompt injection spiega cosa fare al riguardo, e il task qui sopra vieta gli acquisti per lo stesso motivo.

Quanto costa una singola esecuzione#

Non tirare a indovinare; fai una stima. Supponiamo che un'esecuzione richieda 15 passi. Ogni passo invia il task, la cronologia e la pagina corrente: circa 12.000 token di input, e il modello risponde con un'azione breve di circa 600 token.

15 × 12.000 = 180.000 token di input e 15 × 600 = 9.000 token di output per esecuzione. Su DeepSeek-V4-Flash quell'esecuzione costa $0.0036, con input a $0.015 per 1M di token. Qui l'input è 20 volte l'output, cosa tipica per il lavoro browser, e contando tutto insieme il prezzo è sotto il riferimento di OpenRouter per questo modello.

La tabella qui sotto usa gli stessi numeri per passo su 15 passi, così puoi vedere ogni modello affiancato:

Modello Per richiesta 15 richieste OpenRouter, 15 richieste
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 token di input e 600 token di output per richiesta. I prezzi per 1M di token sono attuali e cambiano insieme alle nostre tariffe; la colonna OpenRouter mostra i prezzi di riferimento per lo stesso carico di lavoro.

Poi rapportalo alla tua pianificazione. Tre pagine controllate una volta al giorno sono 45 passi; trascina gli slider sui tuoi numeri.

Calcolatore di costi

Un giorno di controlli prezzo: 3 pagine, 15 passi ciascuna

Token di input per richiesta: 12.000 · Token di output per richiesta: 600 · Richieste al giorno: 45

ModelloAl giornoAl mese
GLM-5.3-Flash$0.0119$0.356
DeepSeek-V4-Flash$0.0108$0.324
MiniMax-M2.7$0.0311$0.932

La versione a 50 passi di questo calcolo su tre modelli è in costo di una sessione agente. Se preferisci GLM-5.3-Flash (contesto 390K, fino a 8.192 token di output), la sua riga è nella tabella qui sopra; le risposte brevi di azione qui ci stanno comodamente sotto quel limite. I prezzi correnti di ogni modello sono nella pagina dei prezzi.

Se non funziona#

Parti dal testo dell'errore. Questi tre sono i sospetti abituali:

Abbina le coppie

Abbina il sintomo alla sua causa

  • 401 UnauthorizedLa chiave manca in .env o contiene un errore di battitura
  • 404 model not foundÈ stato usato l'id breve del modello invece di deepseek-ai/DeepSeek-V4-Flash-0731
  • {"navigate": "google.com"} invece di {"navigate": {"url": ...}}Il modello ha restituito uno schema di azione errato

L'ultimo è descritto nella pagina dei modelli supportati di Browser Use (verificata l'8 novembre 2026) per i modelli Qwen più piccoli: possono restituire uno schema di azione errato. La correzione suggerita dalla documentazione è inserire nel prompt esempi del formato di azione corretto. Aggiungili al testo del task, per esempio:

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

Se un'esecuzione continua a girare in tondo, restringi il task: una pagina, una domanda, risposta da una riga. I task brevi terminano in meno passi, e meno passi è la correzione più economica che esista.

Prossimo: LangChain con un base_url personalizzato usa la stessa idea di base_url se costruisci le tue chain attorno all'agente browser.