Skip to content

epic: one canonical AutoBot browser — unify stacks + full agent-browser feature set #12756

Description

@mrveiss

Goal

Converge AutoBot's browser automation into one canonical browser control plane that carries the full agent-browser feature set — and fully implement it. Today "browser control for AI agents" is spread across multiple, non-shared Playwright subsystems with real feature gaps. This umbrella tracks the convergence and the missing features, so there is exactly one Browser in AutoBot with all capabilities behind a single interface.

Sourced from a /research comparison against PinchTab (a Go browser-automation control plane for AI agents). PinchTab is not adopted as a product (Go vs Python; it would be a duplicate control plane) — this umbrella mines its proven patterns onto AutoBot's existing Playwright stack.

Current state (audit — file:line evidence)

There are two/three distinct, non-shared browser subsystems:

  • Live interactive browser — Node/Playwright autobot-browser-worker/ (one Chromium, one BrowserContext per chat session_id), driven by chat_workflow/tool_handler.py → api/browser_mcp.py.
  • Research browser — in-process Python Playwright autobot-backend/research_browser_manager.py (page snapshot / API intercept / scrape-template tools).
  • Docker/remote render — autobot-backend/services/playwright_service.py (web_fetch JS-render fallback).

element-index.js:16-23 explicitly notes the live and research stacks do not share code.

What already works well (keep):

  • OpenManus-style stable indexed element refs with server-side resolution + stale-index guard (autobot-browser-worker/element-index.js:37-117).
  • Hybrid HTTP→browser render cascade for single-URL fetch (Jina→BS4→Playwright, web_fetch/fetcher.py:345-420).
  • Strong DNS-resolving SSRF guard (autobot_shared/url_safety.py), enforced at every fetch primitive.
  • NPU-accelerated local captcha OCR + human loop (agents/browser/captcha_solver.py).

Workstreams

A. Canonical interface / consolidation

B. Navigate the real internet (existing epic, folds in here)

C. Perception + ergonomics (existing)

D. Wire the GUI (existing)

E. New gaps surfaced by the PinchTab research (children filed under this umbrella):

Non-goals / constraints

Done when

One Browser abstraction with pluggable in-proc/Docker execution; all agent + research + KB callers use it; the workstream/child boxes above are delivered with tests green; no second browser stack remains.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions