Contrato de tarefa para agente de navegador (objetivo, limites, prova, parada)
"Agende uma revisão pra mim no site" parece um pedido. Para um agente de navegador, falta tudo: em que página, o que ele pode tocar, como provar que acabou e quando parar. Nesta aula você escreve o contrato de uma tarefa em quatro partes e confere com um script que o contrato está completo antes de entregar a qualquer agente.
Objetivo: escrever o contrato de uma tarefa de navegador com objetivo, limites, prova e parada, e conferir que está completo.
01 · As quatro partes
Clique em cada bloco. Leia de baixo para cima quando revisar.
Clique em cada bloco do diagrama para ver o que ele faz.
Sem prova, o resultado é promessa. Sem limites, o site inteiro está em jogo. Sem parada, o agente insiste até inventar.
02 · Escrevendo cada parte
O que o conferir-contrato.mjs cobra e por quê.
1. Objetivo
20 letras ou mais e um lugar: endereço ou nome da página. "No site da oficina" não serve; "na página agendar.html" serve.
Uma tarefa, um resultado. Duas coisas viram dois contratos.
2. Limites
O script exige pelo menos um "não": o agente precisa saber o que não fazer. Em teste de site, quase sempre: não confirmar, não pagar, não sair do endereço.
Limite de dado também conta: "não digite senha", "não use dado de outra pessoa".
3. Prova
Um texto literal, entre aspas, que você consegue procurar na página. É o mesmo texto que o robô de ensaio da aula 6 vai esperar.
Peça também a evidência copiada da página: "devolva os horários copiados da lista, não de memória".
4. Parada
Os sinais (login, verificação, confirmação) e um número: 10 ações, 3 tentativas. O script exige um número.
Peça o bloqueio bem reportado: onde parou, o que falta e a ação de que a pessoa precisa.
Bloqueio bem reportado"Parei na tela de login de conta.html: pede e-mail e senha. Falta: login do dono da conta. Nada foi enviado." Melhor que "não consegui".
03 · Um contrato completo e um vago
O mesmo script confere os dois. Os títulos das partes também valem em inglês e espanhol (Goal, Limits, Proof, Stop; Objetivo, Límites, Prueba, Parada).
Arquivo · kit/contratos/exemplo.md
# Contrato: horários de troca de pneu
## Objetivo
Na página http://127.0.0.1:8433/agendar.html, descobrir os horários livres de "Troca de pneu" em 2026-11-03.
## Limites
Pode preencher o formulário e clicar em "Ver horários". Não clique em "Agendar às…" nem em "Confirmar". Não saia de http://127.0.0.1:8433/.
## Prova
A página mostra "4 horários livres para Troca de pneu em 2026-11-03." Devolva os horários copiados da lista, não de memória.
## Parada
Pare e descreva a tela se aparecer login, verificação humana ou pedido de confirmação. Pare depois de 10 ações sem chegar à prova.
Terminal · conferir o contrato completo
cd ~/projetos/formacao-webmcp-navegador-v72/kit
node conferir-contrato.mjs contratos/exemplo.md; echo "saída: $?"
Terminal · conferir o contrato vago
cd ~/projetos/formacao-webmcp-navegador-v72/kit
node conferir-contrato.mjs contratos/vago.md; echo "saída: $?"
As quatro partes presentes, cada uma com o que o script cobra.
contrato incompleto: 0/4 partes · contratos/vago.md
falta: objetivo sem o lugar (endereço ou página)
falta: limites (o que pode e o que não pode)
falta: prova (o que se vê na página quando acabou)
falta: parada (quando parar e chamar a pessoa)
saída: 1
"Agende uma revisão pra mim no site da oficina" não diz a página, não tem limite, não tem prova e não tem parada. Um agente com esse pedido pode clicar em Confirmar.
04 · Prática
Do vago ao completo, e um contrato do seu site. Cada exercício tem um "pronto quando".
E1 · Consertar o vago
10 min
Copie kit/contratos/vago.md para meu-contrato.md e reescreva até o script aceitar. Use a página conta.html: a prova é a lista de agendamentos e a parada, a tela de login.
Pronto quando:node conferir-contrato.mjs meu-contrato.md → contrato ok: 4/4 partes e saída: 0.
E2 · Uma tarefa do seu site
15 min
Escreva o contrato de uma tarefa real do seu site (local ou em homologação), só de leitura. A prova tem de ser um texto que você acha na página agora.
Pronto quando:node conferir-contrato.mjs contrato-site.md → contrato ok: 4/4 partes, e o texto da prova aparece com Ctrl+F na página.
05 · Teste da aula
Pergunta 1 de 4
Qual destas frases serve como prova num contrato de tarefa?competência
Correto
Prova é um texto que se confere na página. A frase do agente é promessa; a captura sozinha não diz o que conferir; tempo não é resultado.
Não é essa
Prova é um texto que se confere na página. A frase do agente é promessa; a captura sozinha não diz o que conferir; tempo não é resultado.Rever: As quatro partes
Pergunta 2 de 4
O agente chegou à tela de login no meio da tarefa. O que o contrato manda?competência
Correto
Login é sinal de parada. O bloqueio bem reportado diz a tela, o que falta e a ação da pessoa. Criar conta ou tentar senha fere os limites.
Não é essa
Login é sinal de parada. O bloqueio bem reportado diz a tela, o que falta e a ação da pessoa. Criar conta ou tentar senha fere os limites.Rever: Escrevendo cada parte
Pergunta 3 de 4
Por que o conferir-contrato.mjs exige um "não" nos limites?
Correto
Limites dizem o que pode e o que não pode. Em teste de site, o "não" protege o que tem consequência: confirmar, pagar, sair do endereço.
Não é essa
Limites dizem o que pode e o que não pode. Em teste de site, o "não" protege o que tem consequência: confirmar, pagar, sair do endereço.Rever: Escrevendo cada parte
Pergunta 4 de 4
A parada diz "pare se travar". O que falta?
Correto
"Travar" o agente decide sozinho. Um orçamento (10 ações) e sinais claros (login, verificação, confirmação) tornam a parada verificável.
Não é essa
"Travar" o agente decide sozinho. Um orçamento (10 ações) e sinais claros (login, verificação, confirmação) tornam a parada verificável.Rever: As quatro partes
Teste concluído
Você acertou {a} de {n}. Acertando todas, a aula é marcada como concluída.
Escolha uma alternativa. A explicação aparece depois da sua tentativa.
06 · Em três frases
Quatro partesObjetivo com lugar, limites com um "não", prova entre aspas, parada com número.
Prova não é fraseÉ um texto que você procura na página e acha.
Parar é resultadoParar com o motivo exato vale mais que insistir e inventar.