0Pricing
AI Agents · Lezione

Creare un agente affidabile per la compilazione dei moduli

Un caso di studio pratico: accedere a un portale, compilare un modulo di più pagine e verificare l’invio

Creare un agente affidabile per la compilazione dei moduli è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Agents, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Agents include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

Un progetto realistico

Un agente per "compilare questo modulo multipagina". Combineremo Playwright + pianificazione LLM + tentativi + fallback alla visione.

Architettura

  1. Il LLM legge i requisiti dei campi da una specifica JSON
  2. Playwright apre il modulo
  3. Per ogni campo, trovare il selettore e il valore, compilare e convalidare
  4. Se un campo è difficile da individuare tramite il DOM, ricorrere alla visione
  5. Inviare il modulo e verificare il completamento

Step 1: Define the Task

TASK = {
    'url': 'https://example.com/apply',
    'login': {'user': 'alice', 'pass': '...'},
    'fields': {
        'first_name': 'Alice',
        'last_name': 'Smith',
        'email': 'alice@example.com',
        'role': 'Senior Engineer'
    }
}

Step 2: Login

page.goto(TASK['url'])
if page.locator('input[name="username"]').is_visible():
    page.fill('input[name="username"]', TASK['login']['user'])
    page.fill('input[name="password"]', TASK['login']['pass'])
    page.click('button[type="submit"]')
    page.wait_for_load_state('networkidle')

Step 3: Field Filler

def fill_field(page, field_name, value):
    for selector in [
        f'input[name="{field_name}"]',
        f'input[aria-label="{field_name}"]',
        f'input[placeholder*="{field_name}"]',
        f'label:has-text("{field_name}") + input'
    ]:
        if page.locator(selector).count() > 0:
            page.fill(selector, value)
            return True
    return False

# --- demo ---
class _FakeLocator:
    def __init__(self, found):
        self._found = found
    def count(self):
        return 1 if self._found else 0

class _FakePage:
    """Only the 3rd selector (placeholder) matches, to show the fallback loop."""
    def locator(self, selector):
        return _FakeLocator(found='placeholder*=' in selector)
    def fill(self, selector, value):
        print(f'Filled via selector: {selector} -> {value!r}')

page = _FakePage()
ok = fill_field(page, 'email', 'alice@example.com')
print(f'fill_field succeeded: {ok}')

Passaggio 4: individuare gli elementi con l'aiuto del LLM

Se i selettori standard non funzionano, chiedere al LLM di identificare il campo:

def ask_llm_for_selector(html, field_name):
    prompt = f'Find the input element for "{field_name}" in this HTML and return a CSS selector. HTML:\n{html[:5000]}'
    return llm.invoke(prompt).content.strip()

Passaggio 5: fallback alla visione

Se neppure il LLM riesce a trovare un selettore, acquisire uno screenshot e usare la visione:

if not filled:
    screenshot = page.screenshot()
    coordinate = vision_llm_locate(screenshot, field_name)
    page.mouse.click(coordinate.x, coordinate.y)
    page.keyboard.type(value)

Passaggio 6: convalidare ogni passaggio

Dopo la compilazione, rileggere il valore:

actual = page.input_value(selector)
assert actual == expected_value, f'Expected {expected_value}, got {actual}'

Step 7: Submit and Verify

page.click('button[type="submit"]')
page.wait_for_load_state('networkidle')
if page.locator('text=Thank you').count() == 0:
    raise SubmissionFailed('Success page not detected')

Passaggio 8: logica dei tentativi

A volte i moduli presentano malfunzionamenti. Riprovare con controlli di idempotenza:

@retry(stop=stop_after_attempt(3), wait=wait_fixed(2))
def fill_and_submit(page, task):
    ...

Passaggio 9: gestione dei captcha

Se il modulo contiene reCAPTCHA, usare un servizio di risoluzione (2Captcha, Anti-Captcha) oppure gestire l'errore in modo corretto e chiedere l'intervento di una persona.

Passaggio 10: registrazione e riproduzione

Salvare ogni azione e screenshot. Quando qualcosa non funziona, è possibile riprodurre la traccia per eseguire il debug:

context.tracing.stop(path=f'trace-{task_id}.zip')
# View with: playwright show-trace trace-abc.zip

Considerazioni sulla concorrenza

Per gestire in parallelo i moduli di molti utenti, creare un browser context per ogni attività. Limitare la concorrenza per evitare di sovraccaricare il sito di destinazione.

Rispettare il sito di destinazione

  • Introdurre un intervallo tra le azioni (le persone non digitano a 200 cps)
  • Rispettare robots.txt e i ToS
  • Usare IP a rotazione solo quando consentito
  • Evitare gli abusi: il traffico dell'agente non equivale a una campagna di scraping indiscriminato

Strategia di robustezza

Qual è la strategia più affidabile per compilare moduli con HTML imprevedibile?

Riepilogo

Playwright + selettori assistiti dal LLM + fallback alla visione + convalida di ogni passaggio + tentativi + log delle tracce. La ricetta per compilare i moduli in modo affidabile.

Domande Frequenti

La lezione «Creare un agente affidabile per la compilazione dei moduli» è gratuita?

Sì — il testo completo di «Creare un agente affidabile per la compilazione dei moduli» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Agents, passa a CoddyKit PRO. Il corso AI Agents include 4 lezioni in totale.

Cosa imparerò in «Creare un agente affidabile per la compilazione dei moduli»?

Un caso di studio pratico: accedere a un portale, compilare un modulo di più pagine e verificare l’invio Eserciti AI Agents con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare AI Agents?

Non è richiesta alcuna esperienza precedente. AI Agents su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Creare un agente affidabile per la compilazione dei moduli»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione AI Agents?

Sì. Ogni lezione AI Agents include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Automazione del browser con Playwright
  2. Modelli di visione per comprendere lo schermo
  3. Pattern per l’uso del computer (Anthropic Computer-Use)
  4. Creare un agente affidabile per la compilazione dei moduli
← Torna a AI Agents