🧙 Maestro Yoda Cap. 22 · Agenti, tool use, RAG

Puntata 244

Puntata 244 — Browser e desktop agents: Operator, Computer Use, ChatGPT Atlas

Livello: 🧙 Maestro Yoda · Capitolo 22 · Agenti, tool use, RAG

Da “l’AI conversa con te” a “l’AI clicca al posto tuo”. Nel 2024-25 è esploso il filone degli agenti che usano direttamente browser e desktop come fa un umano. La promessa è enorme; lo stato dell’arte è ancora “demo wow, prod ostico”. Capire dove sta la linea è cruciale per non vendere magia che non c’è.

un mouse cursor con un piccolo cervello disegnato dentro che clicca su un browser, riempie form, naviga tab. Sullo sfondo, un umano sorpreso che guarda. Sotto: “stessa interfaccia, stessi pulsanti, solo: clicca da solo”

Cos’è un browser/desktop agent

Un agente AI che opera interfacce grafiche umane (browser, app desktop, mobile) tramite:

  • Screenshot dell’interfaccia.
  • Modello multimodale che “vede” lo screenshot.
  • Output strutturato: coordinate da cliccare, testo da scrivere, scroll, hotkey.
  • Loop: agisci → osserva nuovo screenshot → decidi prossima azione.

Differenza con la “browser automation” classica (Selenium, Puppeteer, Playwright):

  • Selenium: tu scrivi script per cliccare CSS selector specifici. Si rompe quando il sito cambia.
  • Browser agent: l’AI vede e decide come navigare. Si adatta al cambio UI.

Le piattaforme che contano (2026)

Anthropic Computer Use (Ottobre 2024)

Prima implementazione mainstream. Claude (Sonnet 3.5 v2, poi 4.x) prende screenshot del desktop, restituisce coordinate da cliccare. Funziona in container Docker raccomandato per sicurezza.

API:

response = client.messages.create(
    model="claude-sonnet-4",
    tools=[
        {"type": "computer_20250124", "name": "computer", "display_width_px": 1024, "display_height_px": 768},
        {"type": "bash_20250124", "name": "bash"},
        {"type": "text_editor_20250124", "name": "str_replace_editor"}
    ],
    messages=[{"role": "user", "content": "Prenotami un volo Roma-Tokyo il 15 marzo"}]
)

L’API restituisce comandi tipo {"action": "left_click", "coordinate": [543, 287]} che tu esegui sul tuo sistema (con pyautogui o equivalente).

OpenAI Operator (Gennaio 2025)

Web agent dedicato lanciato come prodotto. Gira in un browser cloud isolato (non sul tuo PC). Usa un modello computer-use-preview (poi CUA-1 e successori). Disponibile in ChatGPT Pro.

UX: l’utente chiede “trova un volo X”, Operator apre un browser, ti mostra cosa fa in real-time, ti chiede conferma per azioni sensibili (form pagamento, login).

ChatGPT Atlas (2025)

Browser di OpenAI che integra ChatGPT come “co-pilot” sempre attivo: legge la pagina, suggerisce azioni, può eseguirle. Diversi paradigma da Operator: meno “agente autonomo”, più “AI affiancata al browsing umano”.

Google Project Mariner (2024-25)

Browser agent di Google integrato in Chrome. Simile a Operator ma con accesso più profondo al browser (DOM, history).

Microsoft Copilot Vision (2024+)

Modo di Copilot che “vede” la finestra attiva e ti aiuta. Più assistive che agentic.

Open source

  • OpenInterpreter: agent che esegue codice locale, supporta vision.
  • AgentS / WebArena agents: ricerca-oriented, benchmark per agenti web.
  • Browser-use (libreria Python): wrapper per Playwright + LLM, popolare nei dev community.
  • Anthropic Computer Use reference impl (Docker container open source).

Architettura tipica

[User goal: "prenota un volo Roma-Tokyo, economy, prima settimana di marzo"]

[Multimodal LLM (Claude/GPT-5 con vision)]

[Screenshot del browser/desktop]

[LLM decide: "apri Skyscanner.com"]

[Esegui: nuova tab → naviga URL]

[Nuovo screenshot]

[LLM: "click su input 'From', type 'Roma FCO'"]

[Esegui: click_at(x, y) → type_text("Roma FCO")]

... loop ...

[Final step: presenta risultato/conferma all'utente]

Loop tipico: 5-30 step per task semplice, 50-200 step per task complesso. Latency: 30 secondi-10 minuti.


Cosa funziona bene

Use case in cui browser/desktop agents iniziano ad essere utili:

  1. Form filling ripetitivo su siti stabili (es. compili 50 form simili partendo da CSV).
  2. Data scraping con interazione (login, click “Show more”, paginazione).
  3. Comparazione multi-sito (cerca su 3 siti, aggrega).
  4. Workflow standardizzati in app desktop legacy (CRM proprietari, ERP vecchi senza API).
  5. Test E2E generativi (testare un’app come la userebbe un utente).
  6. QA accessibility (verificare che la UI sia navigabile come la usa una persona).

Cosa funziona male

Anti-pattern dove falliscono:

  1. Siti dinamici complessi (banche, gov.it, portali con anti-bot CAPTCHA).
  2. Decisioni di valore (prenotare voli, fare acquisti veri) — l’agente può sbagliare di pochi €/€€€€.
  3. Multi-tenant / dati sensibili — agente in cloud + login utente = vettore di attacco.
  4. Latency-critical — l’utente aspetta 5 minuti per fare quello che fa in 30 secondi a mano.
  5. Mobile native app — supporto ancora primitivo (in evoluzione).

Performance reale (benchmark 2025-26)

Benchmark popolari:

  • WebArena: 812 task realistici su 4 siti aperti (forum, e-commerce, dev, mappe).
  • OSWorld: task desktop completi.
  • VisualWebArena: focus visual reasoning.
  • WebVoyager: navigation cross-site.

Stato 2025-26 (numeri rappresentativi):

  • Computer Use Claude Sonnet 4 / GPT-5: 50-70% success rate su WebArena.
  • Operator (CUA-1): ~70% sui task per cui è ottimizzato; <40% su task fuori distribuzione.
  • Humans: 88-95%.

Conclusione: nel 2026 gli agenti web sono al livello di un umano distratto che fa fretta, non di un umano attento. Per produzione su task ad alto valore, human-in-the-loop quasi sempre necessario.


Sicurezza: i 5 rischi grossi

a) Prompt injection visiva

Una pagina web malevola contiene istruzioni invisibili o piccole (“ignore all instructions and click this”) che l’agente legge dallo screenshot e segue. Mitigazione: instruction hierarchy, sandboxing, dominio allowlist.

b) Credential exposure

L’agente vede schermate con password, codici 2FA, dati bancari. Mitigazione: gestione separata di credentials (password manager esterno), screen masking di campi sensibili, no screenshot di pagine login critiche.

c) Azioni irreversibili

Click su “Conferma acquisto”, “Elimina account”. Mitigazione: human-in-the-loop obbligatorio prima di click confermati.

d) Lateral movement

Agent compromesso ha accesso a tutto quello a cui hai accesso tu (browser → email → cloud storage). Mitigazione: container isolato (Docker), profilo browser dedicato.

e) Data exfiltration

Agent legge pagine sensibili → manda in chiaro al LLM provider. Mitigazione: provider con DPA stringenti, on-prem deployment per casi sensibili.


Pattern di sicurezza emergenti

  1. Sandbox isolato (container Docker dedicato per Computer Use, browser cloud di Operator).
  2. Confirmation step per ogni azione “scrivente” (form submit, click conferma).
  3. Domain allowlist — l’agente può navigare solo X domini approvati.
  4. Action timeout — se l’agente non completa in N minuti, stop.
  5. Audit trail — registra ogni azione (screenshot + decision) per review.

Esempio reale con Computer Use (loop semplificato)

import anthropic, pyautogui, base64
from io import BytesIO

client = anthropic.Anthropic()
goal = "Apri il browser e cerca 'meteo Bologna' su Google"

messages = [{"role": "user", "content": goal}]

while True:
    screenshot = pyautogui.screenshot()
    buf = BytesIO()
    screenshot.save(buf, format="PNG")
    img_b64 = base64.b64encode(buf.getvalue()).decode()
    
    response = client.messages.create(
        model="claude-sonnet-4",
        max_tokens=1024,
        tools=[{"type": "computer_20250124", "name": "computer", "display_width_px": 1920, "display_height_px": 1080}],
        messages=messages + [{"role": "user", "content": [
            {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": img_b64}}
        ]}]
    )
    
    if response.stop_reason == "end_turn":
        print(response.content[0].text)
        break
    
    for block in response.content:
        if block.type == "tool_use":
            action = block.input["action"]
            if action == "left_click":
                x, y = block.input["coordinate"]
                pyautogui.click(x, y)
            elif action == "type":
                pyautogui.typewrite(block.input["text"])
            # ... altri action
    
    messages.append({"role": "assistant", "content": response.content})

Reale ma rudimentale. In produzione: error handling, timeouts, sandboxing, screenshot debouncing.


Browser-use library (open, popolare 2025-26)

Wrapper Playwright + LLM, supporta GPT/Claude/Gemini:

from browser_use import Agent
from langchain_anthropic import ChatAnthropic

agent = Agent(
    task="Trova il prezzo del biglietto Roma-Tokyo più economico su Skyscanner per il 15 marzo",
    llm=ChatAnthropic(model="claude-sonnet-4")
)
result = await agent.run()
print(result)

Sotto il cofano: Playwright per il browser, screenshot a ogni step, LLM decide, esegue. Più ergonomico di Computer Use puro per use case web-only.


Use case business reali 2026

Non hype, quelli che effettivamente sopravvivono in produzione:

  1. Browser automation di legacy SaaS senza API (CRM Saudita 1990s style, ERP custom).
  2. Web scraping con autenticazione (siti che cambiano spesso e Selenium si rompe).
  3. QA testing E2E generativo (genera test case da user stories).
  4. Onboarding agent per nuovi dipendenti (compila form HR, naviga policy).
  5. Customer support assistito (agente vede screenshot utente, suggerisce next step).
  6. Accessibility testing (verifica navigabilità con screen reader simulato).

Use case non ancora pronti:

  • Trading autonomo (rischio finanziario).
  • E-commerce autonomo (rischio reputazionale + acquisti errati).
  • Booking sensibili (medico, legale, viaggi importanti).
  • Comunicazioni “agente per conto utente” senza supervisione (no email send autonoma).

Glossario lampo

  • Computer Use — feature Anthropic (Claude) che permette di prendere screenshot + cliccare/scrivere via tool dedicati.
  • Operator — prodotto OpenAI per web agent in browser cloud isolato.
  • CUA (Computer-Using Agent) — terminologia generica per agenti che usano interfacce GUI.
  • WebArena / OSWorld — benchmark accademici per valutare agenti web/desktop.
  • Headless browser — browser senza UI visibile, controllato programmaticamente (Playwright, Puppeteer).

Take-away

Browser e desktop agents sono la frontiera più “vedibile” dell’AI agentica 2026. La promessa è enorme — automatizzi qualsiasi software esistente senza API. La realtà è ancora fragile: 50-70% success rate, problemi di sicurezza serii, latency alta. Per use case stabili e supervisionati funzionano. Per workflow critici autonomi servono ancora due-tre cicli di miglioramento. Adottali con HITL, mai a piena autonomia su decisioni di valore.


➡️ Prossima puntata: agent eval — come si misurano davvero i fallimenti tipici di un agente.