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
- Il LLM legge i requisiti dei campi da una specifica JSON
- Playwright apre il modulo
- Per ogni campo, trovare il selettore e il valore, compilare e convalidare
- Se un campo è difficile da individuare tramite il DOM, ricorrere alla visione
- 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.zipConsiderazioni 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
- Automazione del browser con Playwright
- Modelli di visione per comprendere lo schermo
- Pattern per l’uso del computer (Anthropic Computer-Use)
- Creare un agente affidabile per la compilazione dei moduli