ブログに戻る

エージェントと自動化ガイド

安価なモデルで Browser Use:base_url の設定と実行コスト

Browser Use を OpenAI 互換 API に接続し、実際のブラウザで価格チェックタスクを実行し、1 回の実行コストを見積もります。

投稿者: CheapTokens Team公開日 読了時間 6 分

Browser Use の設定:カスタム base_url とモデル id を指定した ChatOpenAI
このページの内容
  1. インストールして API を指定する
  2. エージェントが価格ページで実際に行うこと
  3. 1 回の実行コスト
  4. うまくいかない場合

Browser Use は OpenAI 互換のエンドポイントであればどれでも受け付けるため、CheapTokens に接続するには 3 つの値、base_url、あなたのキー、そして完全なモデル id が必要です。以下は商品ページを開き、価格を読み取って報告する agent.py と、実際の価格での 1 回の実行コストの見積もりです。

ブラウザエージェントは各ステップでページテキストをモデルに再送信するため、見積もりはスケジュールの前に来ます。

インストールして API を指定する#

Browser Use の README(2026 年 11 月 8 日確認)では uv でインストールします。ライブラリは Python 3.11+ が必要で、MIT ライセンスです。ドキュメントのサポートモデルページにはカスタムエンドポイントのパターンが示されています:base_url を指定した ChatOpenAI、続いて 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 で実行します。初回実行でブラウザが見つからないとエラーが出る場合は、Browser Use quickstart の手順に従ってインストールしてください(uvx browser-use install、2026 年 11 月 8 日確認)。

CheapTokens の base_url とモデル id を指定した ChatOpenAI ブロック
デフォルト設定と比べて変わるのはモデル、base_url、キーだけです。

このモデルを選ぶ理由:ブラウザ実行は長いページコンテキストを伴う多数の呼び出しになります。DeepSeek-V4-Flash は 380K のコンテキストウィンドウ、回答あたり最大 32,768 出力トークンを持ち、価格は 1 日中いつでも同じです。id は完全な deepseek-ai/DeepSeek-V4-Flash-0731 である必要があります — 価格表の短い名前は API では受け付けられません。他の id と接続の基本は CheapTokens ドキュメント にあります。

エージェントが価格ページで実際に行うこと#

タスクが「このノート PC は今日いくらか」だとします。エージェントはループを実行します:ページテキストを取得し、次に何をするかをモデルに尋ね、ブラウザでアクションを実行し(開く、スクロール、クリック)、新しいページテキストを取得します。モデルが答えを得たと判断するまで繰り返します。

ループ:タスク、モデル呼び出し、ブラウザアクション、新しいページテキスト
ループを 1 周するたびにモデル呼び出しが 1 回あり、そのたびにページテキストが再度送られます。

最後の矢印がコストの要因です。商品ページは数千トークンのテキストになることがあり、それが各呼び出しに付いて回ります。11 月 6 日のチャネル投稿では、Browser Use を、オファーを比較して値下げを追跡するショッピングエージェントのブラウザレイヤーとして挙げていました。同じ考え方は、上記のタスクのように 1〜2 ページの毎日のチェックにも当てはまります。

ケースを選ぶ

ブラウザエージェントはあなたのチェックに適したツールか?

価格はクリック後にしか表示されない

ブラウザエージェントが適しています。実際のブラウザでページを開き、サイズや色を選び、スクロールして表示される内容を読み取ります。これをスクリプトで書くと、ストアごとにセレクタを保守することになります。

固定 URL と固定の価格要素が 1 つ

セレクタを使った単純なスクリプトの方が安上がりです:モデル呼び出しは一切ありません。固定の手順はコードに置き、変化する部分にモデルを使ってください。詳細は エージェントは毎ステップでモデルを必要とするか にあります。

レイアウトの異なる 2〜3 のストア

ブラウザエージェントが適しています。1 つのタスクテキストで複数のページレイアウトをカバーでき、後で 1 行の回答を比較できます。

何かをスケジュールする前の注意点:エージェントはページに書かれている内容をそのまま読み、ページにはエージェントを狙った指示が含まれている可能性があります。プロンプトインジェクションのチェックリスト にその対処法がまとまっており、上記のタスクが購入を禁止しているのも同じ理由です。

1 回の実行コスト#

推測せず、仮定しましょう。1 回の実行が 15 ステップかかるとします。各ステップではタスク、履歴、現在のページを送信します:入力は約 12,000 トークン、モデルは約 600 トークンの短いアクションで回答します。

1 回の実行あたり 15 × 12,000 = 180,000 入力トークン、15 × 600 = 9,000 出力トークンです。DeepSeek-V4-Flash では、入力が 1M トークンあたり $0.015 なので、この実行のコストは $0.0036 です。ここでは入力が出力の 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 出力トークン。100万トークンあたりの価格は現行のもので、当社の料金体系に合わせて変動します。OpenRouter 列は同じワークロードの参考価格を示しています。

次にスケジュールに合わせて拡大してください。3 ページを 1 日 1 回チェックすると 45 ステップです。スライダーを自分の数値に合わせて動かしてください。

コスト計算機

価格チェックの 1 日:3 ページ、各 15 ステップ

リクエストあたりの入力トークン数: 12,000 · リクエストあたりの出力トークン数: 600 · 1日あたりのリクエスト数: 45

モデル1日あたり1か月あたり
GLM-5.3-Flash$0.0119$0.356
DeepSeek-V4-Flash$0.0108$0.324
MiniMax-M2.7$0.0311$0.932

3 モデルでのこの計算の 50 ステップ版は エージェントセッションのコスト にあります。GLM-5.3-Flash(390K コンテキスト、最大 8,192 出力トークン)を好む場合、その行は上の表にあります。ここでの短いアクションの回答はその上限を十分に下回ります。すべてのモデルの現在の価格は 価格ページ にあります。

うまくいかない場合#

まずエラーテキストを確認してください。よくあるのは次の 3 つです:

ペアを合わせる

症状と原因を照合する

  • 401 Unauthorized.env にキーがないか、タイプミスがある
  • 404 model not founddeepseek-ai/DeepSeek-V4-Flash-0731 の代わりに短いモデル id が使われた
  • {"navigate": "google.com"} が {"navigate": {"url": ...}} の代わりに返るモデルが誤ったアクションスキーマを返した

最後のものは、より小さな Qwen モデルについて Browser Use のサポートモデルページ(2026 年 11 月 8 日確認)で説明されています:誤ったアクションスキーマを返すことがあります。ドキュメントが提案する修正は、正しいアクション形式の例をプロンプトに入れることです。タスクテキストに追加してください。例えば:

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

実行が堂々巡りを続ける場合は、タスクをより狭くしてください:1 ページ、1 つの質問、1 行の回答。短いタスクはより少ないステップで終わり、ステップが少ないほど最も安上がりな修正です。

次:カスタム base_url を使った LangChain は、ブラウザエージェントの周りに独自のチェーンを構築する場合に同じ base_url の考え方を使います。