0Pricing
AI Agents · Aula

Construindo um agente confiável para preencher formulários

Um estudo de caso prático: entre em um portal, preencha um formulário com várias páginas e verifique o envio.

Construindo um agente confiável para preencher formulários é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

Um Projeto Realista

Um agente para "preencher este formulário de várias páginas". Combinaremos Playwright + planejamento com LLM + repetição + alternativa com visão.

Arquitetura

  1. O LLM lê os requisitos dos campos a partir de uma especificação JSON
  2. Playwright abre o formulário
  3. Para cada campo, encontre o seletor + valor, preencha e valide
  4. Se for difícil localizar um campo pelo DOM, use a visão como alternativa
  5. Envie o formulário e verifique o sucesso

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

Step 4: Localizador Assistido por LLM

Se os seletores padrão falharem, peça ao LLM para identificar o 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()

Step 5: Alternativa com Visão

Se nem mesmo o LLM conseguir encontrar um seletor, faça uma captura de tela e use a visão:

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

Step 6: Valide Cada Etapa

Depois de preencher, leia novamente o valor:

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

Step 8: Lógica de Repetição

Às vezes, os formulários apresentam falhas. Tente novamente com verificações de idempotência:

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

Step 9: Tratamento de CAPTCHA

Se o formulário tiver reCAPTCHA, use um serviço de resolução (2Captcha, Anti-Captcha) — ou falhe de maneira controlada e peça ajuda a uma pessoa.

Step 10: Registro e Reprodução

Salve cada ação + captura de tela. Quando algo falhar, você poderá reproduzir o rastreamento para depurar:

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

Considerações sobre Concorrência

Para processar os formulários de muitos usuários em paralelo, crie um contexto de navegador por tarefa. Limite a concorrência para evitar sobrecarregar o site-alvo.

Respeitando o Site-Alvo

  • Reduza a velocidade entre as ações (pessoas não digitam a 200 caracteres por segundo)
  • Respeite robots.txt e os Termos de Serviço
  • Use IPs rotativos somente quando permitido
  • Evite abusos — tráfego de agente não é uma onda de raspagem

Estratégia de Robustez

Qual é a estratégia mais confiável para preencher formulários com HTML imprevisível?

Recapitulação

Playwright + seletores assistidos por LLM + alternativa com visão + validação por etapa + repetições + registros de rastreamento. Essa é a receita para um preenchimento confiável de formulários.

Perguntas Frequentes

A aula “Construindo um agente confiável para preencher formulários” é grátis?

Sim — o texto completo de “Construindo um agente confiável para preencher formulários” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.

O que vou aprender em “Construindo um agente confiável para preencher formulários”?

Um estudo de caso prático: entre em um portal, preencha um formulário com várias páginas e verifique o envio. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AI Agents?

Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Construindo um agente confiável para preencher formulários”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AI Agents?

Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Automação de navegador com Playwright
  2. Modelos de visão para compreensão de telas
  3. Padrões de uso do computador (Anthropic Computer-Use)
  4. Construindo um agente confiável para preencher formulários
← Voltar para AI Agents