AI-agenten · Les

Een betrouwbare agent voor formulierinvulling bouwen

Een praktische casestudy: log in op een portaal, vul een formulier met meerdere pagina's in en verifieer de verzending.

Les 4 van 416 stappen

Een betrouwbare agent voor formulierinvulling bouwen is een gratis AI-agenten-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject AI-agenten. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus AI-agenten bevat in totaal 4 lessen.

Delen van deze les zijn nog niet vertaald en worden in het Engels weergegeven.

Een realistisch project

Een agent die zegt: ‘vul dit formulier met meerdere pagina's in’. We combineren Playwright, planning door een LLM, opnieuw proberen en een visuele terugvaloptie.

Architectuur

  1. De LLM leest de veldvereisten uit een JSON-specificatie
  2. Playwright opent het formulier
  3. Zoek voor elk veld een keuzepatroon en waarde, vul het in en valideer het
  4. Als een veld moeilijk via de DOM te vinden is, val dan terug op visuele analyse
  5. Verstuur het formulier en controleer of dit is gelukt

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}')

Stap 4: Door een LLM ondersteunde locator

Als standaardkeuzepatronen mislukken, vraag je de LLM om het veld te identificeren:

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()

Stap 5: Visuele terugvaloptie

Als zelfs de LLM geen keuzepatroon kan vinden, maak je een schermafbeelding en gebruik je visuele analyse:

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

Stap 6: Valideer elke stap

Lees na het invullen de waarde opnieuw uit:

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')

Stap 8: Logica voor opnieuw proberen

Formulieren werken soms niet goed. Probeer het opnieuw met controles op idempotentie:

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

Stap 9: Captcha's afhandelen

Als het formulier reCAPTCHA bevat, gebruik dan een oplosdienst (2Captcha, Anti-Captcha) — of geef het netjes op en vraag een mens om hulp.

Stap 10: Logboek bijhouden en opnieuw afspelen

Sla elke actie en schermafbeelding op. Wanneer er iets mislukt, kun je het spoor opnieuw afspelen om fouten op te sporen:

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

Overwegingen rond gelijktijdigheid

Maak één browsercontext per taak om de formulieren van veel gebruikers parallel te verwerken. Beperk de gelijktijdigheid om te voorkomen dat je de doelsite overbelast.

De doelomgeving respecteren

  • Laat tijd tussen acties (mensen typen geen 200 tekens per seconde)
  • Houd je aan robots.txt en de servicevoorwaarden
  • Gebruik wisselende IP-adressen alleen wanneer dat is toegestaan
  • Vermijd misbruik — agentverkeer is geen massale scrapingactie

Strategie voor robuustheid

Wat is de betrouwbaarste strategie om formulieren met onvoorspelbare HTML in te vullen?

Samenvatting

Playwright + door een LLM ondersteunde keuzepatronen + visuele terugvaloptie + validatie per stap + opnieuw proberen + sporentracering. Het recept voor betrouwbaar formulieren invullen.

Gratis beginnen

Leer AI-agenten met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
60
Lessen
239

Veelgestelde vragen

Is de les “Een betrouwbare agent voor formulierinvulling bouwen” gratis?

Ja — de volledige tekst van “Een betrouwbare agent voor formulierinvulling bouwen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus AI-agenten wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus AI-agenten bevat in totaal 4 lessen.

Wat leer ik in “Een betrouwbare agent voor formulierinvulling bouwen”?

Een praktische casestudy: log in op een portaal, vul een formulier met meerdere pagina's in en verifieer de verzending. Je oefent met AI-agenten door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met AI-agenten te beginnen?

Ervaring vooraf is niet nodig. AI-agenten op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Een betrouwbare agent voor formulierinvulling bouwen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over AI-agenten?

Ja. Elke les over AI-agenten bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Browserautomatisering met Playwright
  2. Visiemodellen voor schermbegrip
  3. Patronen voor computergebruik (Anthropic Computer-Use)
  4. Een betrouwbare agent voor formulierinvulling bouwen
← Terug naar AI-agenten