Bumalik sa blog

Mga agent at automationGabay

Browser Use sa murang model: base_url setup at gastos sa run

Ikonekta ang Browser Use sa isang OpenAI-compatible API, magpatakbo ng price-check task sa tunay na browser at tantiyahin ang gastos ng isang run.

Ni CheapTokens TeamNai-publish noong 5 min na pagbabasa

Browser Use configuration: ChatOpenAI na may custom base_url at model id
Sa pahinang ito
  1. I-install at ituro sa API
  2. Ano ang aktwal na ginagawa ng agent sa isang price page
  3. Magkano ang isang run
  4. Kung hindi ito gumana

Tumatanggap ang Browser Use ng anumang OpenAI-compatible endpoint, kaya tatlong value lang ang kailangan para ikonekta ito sa CheapTokens: base_url, ang iyong key at ang buong model id. Nasa ibaba ang isang agent.py na nagbubukas ng product page, nagbabasa ng presyo at nag-uulat nito, kasama ang estimate ng gastos ng isang run sa live na presyo.

Ang browser agent ay muling nagpapadala ng page text sa model sa bawat step, kaya ang estimate ay bago ang schedule.

I-install at ituro sa API#

Ang README ng Browser Use (sinuri noong 8 Nobyembre 2026) ay nag-i-install nito gamit ang uv; kailangan ng library ang Python 3.11+ at MIT-licensed ito. Ang supported-models page ng docs ay nagpapakita ng pattern para sa custom endpoints: ChatOpenAI na may base_url, pagkatapos Agent(task=..., llm=llm).

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

Ilagay ang key sa isang .env file sa tabi ng script, hindi kailanman sa code:

bash
CHEAPTOKENS_API_KEY=your-key-here

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

Patakbuhin ito gamit ang uv run agent.py. Kung ang unang run ay nagreklamo tungkol sa nawawalang browser, i-install ito gaya ng ipinapakita ng Browser Use quickstart (uvx browser-use install, sinuri noong 8 Nobyembre 2026).

Ang ChatOpenAI block na may CheapTokens base_url at model id
Ang tanging bahagi na nagbabago kumpara sa default setup: model, base_url, key.

Bakit ang model na ito: ang browser run ay maraming calls na may mahabang page context. Ang DeepSeek-V4-Flash ay may 380K context window, hanggang 32,768 output tokens bawat sagot, at isang presyo sa anumang oras ng araw. Ang id ay dapat ang buong deepseek-ai/DeepSeek-V4-Flash-0731 — ang mga short name mula sa price tables ay hindi tinatanggap ng API. Ang iba pang id at ang mga pangunahing kaalaman sa koneksyon ay nasa CheapTokens docs.

Ano ang aktwal na ginagawa ng agent sa isang price page#

Sabihin nating ang task mo ay "magkano ang laptop na ito ngayon". Ang agent ay nagpapatakbo ng loop: nakukuha nito ang page text, tinatanong ang model kung ano ang susunod na gagawin, ginagawa ang aksyon sa browser (open, scroll, click), at nakukuha ang bagong page text. Inuulit ito hanggang magpasya ang model na may sagot na ito.

Ang loop: task, model call, browser action, bagong page text
Bawat pagdaan sa loop ay isang model call, at ang page text ay pumapasok muli sa bawat pagkakataon.

Ang huling arrow na iyon ang cost driver. Ang isang product page ay maaaring libu-libong tokens ng text, at ito ay sumasama sa bawat call. Isang channel post noong 6 Nobyembre ang naglista sa Browser Use bilang browser layer ng isang shopping agent na naghahambing ng mga offer at nagsubaybay sa pagbaba ng presyo; ang parehong ideya ay angkop sa araw-araw na pagsusuri ng isa o dalawang page, tulad ng sa task sa itaas.

Piliin ang iyong kaso

Ang browser agent ba ang tamang tool para sa iyong check?

Ang presyo ay lumalabas lamang pagkatapos ng mga click

Angkop ang browser agent. Binubuksan nito ang page sa isang tunay na browser, pumipili ng size o kulay, nag-i-scroll at nagbabasa ng lumalabas. Ang pagsulat nito bilang script ay nangangahulugan ng pagpapanatili ng mga selector para sa bawat store.

Isang fixed na URL at isang fixed na price element

Mas mura ang plain script na may selector: walang model call. Ilagay ang mga fixed na step sa code at itago ang model para sa mga bahaging nagbabago. Higit pa riyan sa do agents need the model at every step.

Dalawa o tatlong store na may magkakaibang layout

Angkop ang browser agent. Isang task text ang sumasaklaw sa ilang page layout, at ikukumpara mo ang one-line na mga sagot pagkatapos.

Isang paalala bago ka mag-schedule ng anuman: binabasa ng agent ang anumang sinasabi ng page, at ang isang page ay maaaring maglaman ng mga instruksyon na nakatuon sa agent. Ang prompt injection checklist ay sumasaklaw sa kung ano ang gagawin tungkol dito, at ang task sa itaas ay nagbabawal sa pagbili para sa parehong dahilan.

Magkano ang isang run#

Huwag manghula; mag-assume. Sabihin nating ang isang run ay tumatagal ng 15 steps. Bawat step ay nagpapadala ng task, ang history at ang kasalukuyang page: mga 12,000 input tokens, at ang model ay sumasagot ng maikling aksyon na mga 600 tokens.

15 × 12,000 = 180,000 input tokens at 15 × 600 = 9,000 output tokens bawat run. Sa DeepSeek-V4-Flash, ang run na iyon ay nagkakahalaga ng $0.0036, input sa $0.015 per 1M tokens. Ang input ay 20 beses ang output dito, na karaniwan para sa browser work, at kung pagsasamahin sa total, ang presyo ay mas mababa sa reference ng OpenRouter para sa model na ito.

Ang table sa ibaba ay gumagamit ng parehong per-step na numero para sa 15 steps, para makita mo ang bawat model nang magkatabi:

Modelo Bawat kahilingan 15 mga kahilingan OpenRouter, 15 mga kahilingan
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 input at 600 output na token bawat kahilingan. Ang mga presyo kada 1M token ay kasalukuyan at nagbabago kasabay ng aming mga taripa; ang column ng OpenRouter ay nagpapakita ng reference na presyo para sa parehong workload.

Pagkatapos i-scale ito sa iyong schedule. Tatlong page na sinusuri isang beses sa isang araw ay 45 steps; i-drag ang mga slider sa sarili mong numero.

Calculator ng gastos

Isang araw ng price checks: 3 pages, 15 steps bawat isa

Mga input token bawat kahilingan: 12,000 · Mga output token bawat kahilingan: 600 · Mga kahilingan bawat araw: 45

ModeloBawat arawBawat buwan
GLM-5.3-Flash$0.0119$0.356
DeepSeek-V4-Flash$0.0108$0.324
MiniMax-M2.7$0.0311$0.932

Ang 50-step na bersyon ng aritmetikang ito sa tatlong model ay nasa agent session cost. Kung mas gusto mo ang GLM-5.3-Flash (390K context, hanggang 8,192 output tokens), ang row para dito ay nasa table sa itaas; ang maikling action answers dito ay kasya nang maayos sa limitasyong iyon. Ang kasalukuyang presyo para sa bawat model ay nasa pricing page.

Kung hindi ito gumana#

Magsimula sa error text. Ang tatlong ito ang karaniwang suspect:

Itugma ang mga pares

Itugma ang sintomas sa sanhi nito

  • 401 UnauthorizedNawawala ang key sa .env o may typo
  • 404 model not foundGinamit ang short model id sa halip na deepseek-ai/DeepSeek-V4-Flash-0731
  • {"navigate": "google.com"} sa halip na {"navigate": {"url": ...}}Nagbalik ang model ng maling action schema

Ang huli ay inilarawan sa supported-models page ng Browser Use (sinuri noong 8 Nobyembre 2026) para sa mas maliliit na Qwen model: maaaring magbalik sila ng maling action schema. Ang solusyon na iminumungkahi ng docs ay ilagay ang mga halimbawa ng tamang action format sa prompt. Idagdag ang mga ito sa task text, halimbawa:

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

Kung ang isang run ay paikot-ikot, gawing mas makitid ang task: isang page, isang tanong, one-line na sagot. Ang maiikling task ay natatapos sa mas kaunting steps, at ang mas kaunting steps ang pinakamurang solusyon.

Susunod: LangChain with a custom base_url ay gumagamit ng parehong base_url na ideya kung gagawa ka ng sarili mong chains sa paligid ng browser agent.