diff --git a/backend/apps/agents/browser/browser_schema.py b/backend/apps/agents/browser/browser_schema.py index 485526a8..0d82174a 100644 --- a/backend/apps/agents/browser/browser_schema.py +++ b/backend/apps/agents/browser/browser_schema.py @@ -687,15 +687,20 @@ SYSTEM_PROMPT = ( "state, so when that state shows you the next 2-3 steps, emit them as ONE " "BrowserBatch instead of one tool per turn; single-action turns are for when " "the next step genuinely depends on something you haven't seen. Good batches: " - "a form (type, type, click Send); a repeated action (5 swipes, 3 scrolls); a " - "deterministic flow (type query, press Enter, click first result); or act-then-" - "read by ending the batch with list_interactives, so click, wait, " + "filling a form (type, type, click Next); a repeated action (5 swipes, 3 " + "scrolls); a deterministic flow (type query, press Enter, click first result); " + "or act-then-read by ending the batch with list_interactives, so click, wait, " "list_interactives is ONE turn not three. Max 5 sub-actions. The batch runs " "them in order and STOPS at the first that fails or if the URL changes, so " "order them safely (never a maybe-failing step before a must-do one); a safe " "stop means the rest is skipped and you just continue from the fresh state, so " - "a conservative batch costs you nothing. Don't batch when you must read the " - "page MID-sequence to decide the next step. EXCEPTION: an irreversible step " + "a conservative batch costs you nothing. Go solo ONLY when you cannot yet NAME " + "the next action's target: its element is not in the state you are reading and " + "its name is not predictable. Needing to see a result AFTER acting is never a " + "reason to go solo (results auto-attach fresh state, and a failed or page-" + "changing step stops the batch safely). If your last 2 turns were single " + "actions whose targets were already visible beforehand, you are under-" + "batching: batch the next sequence. EXCEPTION: an irreversible step " "(Send/Submit/Pay/Post) is always its own single action with `expect` proof, " "never inside a batch.\n\n"