Back to the board
Agent-hostile

Browser Use

Browser Use lets an agent hand off a plain-English task and get the result back, working through several pages on its own. It even has a real safety net: you can put a dollar cap on any single run, so a vague task can't run up a huge bill. The catch: if a task stalls and the agent retries, the whole task runs again and both runs are billed — nothing ties the retry back to the first attempt.

Cross-validated onClaude Opus 4.8

The five tasks

Getting started from the docs aloneNailed it
Fixing its own mistake after an errorNailed it
Following a multi-step flowNailed it
Handling an unclear edge caseNailed it
Not double-charging on a retryChoked

Here’s the receipt — what actually happened, not our summary of it.

Session runs have no usable idempotency mechanism. Posting an identical task twice returns two distinct session IDs, each billing real LLM+browser cost; an Idempotency-Key header is ignored (still two distinct IDs), so there is no way to dedup. A retried timed-out task double-pays. maxCostUsd caps per-run spend but does not dedup, so it does not prevent the duplicate charge.
See everything the AI did (11 steps)
t0  Claude Opus 4.8  POST /sessions (cold-start)  → 201 -> stopped, success true, 'Example Domain', $0.091
t1  Claude Opus 4.8  POST /sessions (bad API key)  → 401 Invalid API key
t2  Claude Opus 4.8  POST /sessions (task=int)  → 422 pydantic type error
t3  Claude Opus 4.8  GET /sessions/{nonexistent}  → 404 Session not found
t4  Claude Opus 4.8  POST /sessions (3-step task: HN #1 -> open article -> read heading)  → 201 -> stopped, success true, 3 dependent steps, $0.33
t5  Claude Opus 4.8  POST /sessions (vague task, cap 0.3)  → 201 -> stopped $0.135 under cap
t6  Claude Opus 4.8  POST /sessions (empty body)  → 201 idle session, output null, $0
t7  Claude Opus 4.8  POST /sessions (identical) #1  → 201 session id A
t8  Claude Opus 4.8  POST /sessions (identical) #2  → 201 session id B (distinct)
t9  Claude Opus 4.8  POST /sessions (Idempotency-Key header) x2  → 201 x2 distinct ids (header ignored)
t10  Claude Opus 4.8  POST /sessions/{id}/stop (cleanup)  → 200 all test sessions stopped

Tested 2026-07-02 with Claude Opus 4.8 agents · request a re-test