Skip to content

Browser Automation Architecture

The platform runs browser-use on the Mac Mini worker node with Playwright, enabling robust web interaction while minimizing detection risk.

Architecture

DGX Spark orchestrates tasks. Mac Mini M4 executes browser operations. This separation prevents browser processes from competing with inference workloads on the primary compute node.

Playwright Setup

pip install playwright
playwright install chromium

Stealth Configuration

from playwright.sync_api import sync_playwright
browser = p.chromium.launch(
    headless=False,
    args=['--disable-blink-features=AutomationControlled']
)
context = browser.new_context(
    user_agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...',
    viewport={'width': 1280, 'height': 720}
)

Persistent Contexts

Browser sessions persist across agent runs. Cookies, local storage, and authentication states survive restarts. Essential for platforms that enforce login sessions (LinkedIn, TikTok, Instagram).

Detection Avoidance

Technique Purpose
Custom user agent Avoid default automation UA flags
Disable automation flags Hide WebDriver markers
Human-like timing Random delays between actions
Viewport variety Match real device dimensions
Cookie persistence Maintain login sessions across runs

Supported Platforms

LinkedIn, TikTok, Instagram, Product Hunt, web forms, and application submissions. Each platform has its own automation profile with platform-specific timing and interaction patterns.

DGX Workaround

For aarch64 systems without Chrome, Playwright chromium-1223 with explicit executable path in ~/.agent-browser/config.json provides a fallback. Curl-based DuckDuckGo Lite search fills in when full browser automation is unavailable.