major-ai-skills
Version:
Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.
120 lines (92 loc) • 5.69 kB
Markdown
name: browser-subagent-task-bounding
description: "Define a browser subtask's target, step budget, completion criteria, and return format before delegating navigation."
category: efficiency
risk: safe
source: self
source_type: self
date_added: "2026-08-26"
tags: ["browser-subagent", "dom-bounding", "stop-conditions", "web-automation", "token-optimization", "agent-architecture"]
tools: ["claude", "cursor", "gemini", "codex", "lmstudio"]
# Bounded Browser Subagent Execution (Loop & DOM Bounding)
## Overview
Spawning an autonomous browser subagent with a vague prompt (*"Go to the documentation website and find information on rate limits"*) is one of the most expensive failure modes in agentic systems.
Unbounded browser subagents click exploratory links, get trapped in cookie banners and CAPTCHAs, ingest raw 50,000-token HTML DOM trees, and take 30+ visual screenshots - burning **200,000+ tokens** and stalling the parent agent for 5 minutes.
The **Bounded Browser Subagent Protocol** enforces strict **Step Ceilings, Deterministic Stop Conditions, and Selector-Targeted DOM Extractions**.
## Unbounded Exploration vs. Bounded Surgical Execution
```
┌─────────────────────────────────────────────────────────────┐
│ Browser Subagent Execution │
│ │
│ Unbounded Browser Subagent (Anti-Pattern): │
│ • Prompt: "Find rate limits on Stripe docs" │
│ • Navigates 8 pages, clicks blog links, accepts cookies │
│ • Dumps entire HTML body (45,000 tokens) on each step │
│ • 28 Steps executed, $2.40 billed, 4 minutes elapsed │
│ │
│ Bounded Surgical Subagent Protocol: │
│ • Target URL: `https://docs.stripe.com/rate-limits` │
│ • Max Steps: 3 │
│ • Stop Condition: Read `#rate-limits-table` $\rightarrow$ Return TSV│
│ • 2 Steps executed, $0.04 billed, 6 seconds elapsed │
└─────────────────────────────────────────────────────────────┘
```
## The 4 Bounding Pillars
Every invocation of `browser_subagent` must define these 4 explicit boundaries:
```
┌───────────────────────────────────────────────────────────────────────────┐
│ 1. DIRECT TARGET URL: Direct deep-link; never start on a generic homepage │
│ 2. HARD STEP CEILING: Maximum 5 to 8 actions before forced return │
│ 3. DETERMINISTIC STOP: "Stop immediately when element [X] is visible" │
│ 4. STRICT RETURN SCHEMA: Return only a compact JSON object or TSV table │
└───────────────────────────────────────────────────────────────────────────┘
```
## Master Bounded Subagent Task Prompt Template
When calling `browser_subagent`, structure the `Task` parameter using this schema:
```markdown
### 🎯 Objective:
Navigate to [EXACT DEEP LINK URL] and extract [SPECIFIC DATA].
### 🛑 Hard Stop Condition (RETURN IMMEDIATELY WHEN):
- Element `table.pricing-matrix` is visible OR
- Target text "Per-request rate limits" is located.
### ⚠️ Execution Constraints:
- **Maximum Step Limit**: 5 steps. If data is not found in 5 steps, return `[DATA_NOT_FOUND]`.
- Do NOT click navigation menus, footers, or external links.
- Do NOT return raw HTML. Extract text from the target selector only.
### 📋 Return Payload Schema:
Return a single JSON object:
{
"endpoint": string,
"requests_per_second": number,
"burst_allowance": number,
"verified_url": string
}
```
## Production Tool Call Example
```json
{
"TaskName": "Extracting Stripe API Rate Limits",
"TaskSummary": "Extracting rate limits table from Stripe documentation.",
"RecordingName": "stripe_rate_limits",
"Task": "1. Navigate directly to 'https://docs.stripe.com/rate-limits'. 2. Wait for '#limits' section. 3. Extract the RPS limits for read and write endpoints. 4. STOP and return JSON { 'read_rps': number, 'write_rps': number }.",
"toolAction": "Extracting rate limits table",
"toolSummary": "Browser rate limit extraction"
}
```
## Turn & Token Benchmark Comparison
Extracting API pricing data from a SaaS documentation portal:
| Dimension | Unbounded Subagent | Bounded Subagent Protocol | Improvement |
| :--- | :--- | :--- | :--- |
| **Total Steps** | 24 steps | **2 steps** | **91.6% Fewer Steps** |
| **DOM Tokens Ingested** | 185,000 tokens | 4,200 tokens | **97.7% Token Reduction** |
| **Session Latency** | 195 seconds | 8.5 seconds | **23x Faster** |
| **Trap Failure Rate** | 35% (Stuck in popups) | 0% (Direct selector target) | **100% Deterministic** |
## Agent Operational Directive
> **MANDATORY**: Autonomous agents must NEVER spawn a browser subagent without an explicit deep-link URL and a hard step ceiling ($\le 8$). Always specify the exact DOM selector to extract and forbid exploratory link hopping.