Files
agent-estate-wiki/concepts/browser-automation.md
T

2.3 KiB
Raw Blame History

title, type, status, created, updated, verified_on, confidence, tags, sources
title type status created updated verified_on confidence tags sources
Browser Automation concept active 2026-07-22 2026-08-02 2026-08-02 high
concept
browser
camofox
steel
live-probe
session-history

Browser Automation

Idea

Giving an agent a real, controllable web browser — as opposed to just an HTTP-fetch tool — so it can handle JS-heavy pages, logins, and visual verification.

How this install implements it

  • Engine: Camoufox (Firefox-based, fingerprint-resistant) — see comparisons/camoufox-vs-chrome for why this over stock Chrome.
  • Connection: REST API at localhost:9093 (profile anthony) + CDP WebSocket at localhost:9377
  • Display: headed, not truly headless — runs under Xvfb :99 (1600×1200×24) with fluxbox as window manager, viewable live over VNC (see systems/headless-server).
  • Config: cloud_provider: camofox, camera_provider: camofox in ~/.hermes/config.yaml
  • Auth: Persistent profile anthony — authenticated into Uber Eats, LinkedIn, etc. No cookie files needed.

Why headed-under-Xvfb instead of headless

Running a real X display (rather than a headless browser flag) lets a human watch/intervene via VNC and tends to reduce automation-detection fingerprints compared to headless-mode flags — consistent with using Camoufox in the first place. The tradeoff, flagged in systems/headless-server, is that the VNC exposing this display currently has no password.

The Steel Experiment (Jul 2930)

Steel Browser (Chromium 140 on CT201) was briefly the primary backend. It offered full CDP access and a built-in session viewer, but was reverted after:

  • CDP URL normalization issues (Docker internal networking required a plugin patch)
  • Empty-stream errors from the opencode-go/deepseek-v4-flash provider path
  • DeepSeek 0731's stricter tool name validation affected all providers

Lesson: A local browser backend (same host, no network hop) has fewer failure modes than a remote Docker container. The browser-steel plugin is still present but disabled. See comparisons/steel-vs-camoufox and decisions/rollback-steel-to-camofox.