MÓDULO 1.3

🧾 API declarativa

Transforme formulários semânticos em ferramentas compreensíveis para agentes e ainda controladas pelo usuário.

6

Tópicos

3h

Carga

Builder

Nível

Implementação

Tipo

0 de 60%
1

Promova um formulário a ferramenta

O que é: Os atributos toolname e tooldescription declaram a intenção do formulário sem remover sua semântica HTML.

Por que aprender: É o caminho de menor esforço para jornadas que já possuem campos, validação e botão de envio.

Form semânticoentrada observável Schema sintetizadocontrato explícito Respostaresultado verificável

Conceito aplicado

O contrato deve ser compreensível por quem usa, testável por quem desenvolve e limitado por quem opera. A ferramenta não substitui autorização, validação nem experiência visual.

<form
  toolname="solicitar_contato"
  tooldescription="Envia uma solicitação de contato para a equipe comercial.">
  <!-- campos e submit continuam normais -->
</form>

Dica prática

Copie o exemplo, rode primeiro com dados locais e só depois conecte o backend. Mantenha logs sem dados pessoais e provoque pelo menos uma falha.

Checklist operacional

O objetivo da ferramenta cabe em uma frase.
A entrada inválida produz um erro compreensível.
O efeito aparece na interface para a pessoa.
O caminho manual funciona sem WebMCP.
Indo mais fundo: evidência mínima

Guarde a entrada usada, o estado anterior, o resultado devolvido e a alteração visível da página.

Anote também o comportamento sem suporte, durante cancelamento e diante de uma resposta não autorizada do backend.

Conceitos-chave

01

form continua HTML

02

toolname identifica

03

descrição orienta

04

progressive enhancement

2

Descreva parâmetros sem ambiguidade

O que é: O name do controle vira a propriedade; toolparamdescription explica ao agente o significado e o formato esperado.

Por que aprender: Labels ajudam pessoas, enquanto descrições precisas reduzem preenchimentos plausíveis porém errados.

✓ Faça

  • ✓ Declare name é chave de forma observável.
  • ✓ Preserve label serve pessoas no fluxo manual.
  • ✓ Teste o resultado e o cancelamento.

✗ Evite

  • ✗ Esconder efeitos atrás de descrições vagas.
  • ✗ Confiar na tool como autorização.
  • ✗ Remover o fallback da interface.

Conceito aplicado

O contrato deve ser compreensível por quem usa, testável por quem desenvolve e limitado por quem opera. A ferramenta não substitui autorização, validação nem experiência visual.

<label for="email">E-mail profissional</label>
<input id="email" name="email" type="email" required
  toolparamdescription="E-mail corporativo para retorno da equipe." />

Dica prática

Copie o exemplo, rode primeiro com dados locais e só depois conecte o backend. Mantenha logs sem dados pessoais e provoque pelo menos uma falha.

Checklist operacional

O objetivo da ferramenta cabe em uma frase.
A entrada inválida produz um erro compreensível.
O efeito aparece na interface para a pessoa.
O caminho manual funciona sem WebMCP.
Indo mais fundo: evidência mínima

Guarde a entrada usada, o estado anterior, o resultado devolvido e a alteração visível da página.

Anote também o comportamento sem suporte, durante cancelamento e diante de uma resposta não autorizada do backend.

Conceitos-chave

01

name é chave

02

label serve pessoas

03

descrição serve escolha

04

exemplos esclarecem

3

Sintetize schema com controles HTML

O que é: Tipos de input, required, min, max e opções contribuem para o schema sintetizado pelo navegador.

Por que aprender: Reutilizar restrições semânticas mantém o formulário manual e a tool alinhados.

1

Defina o contrato

Nome, descrição, entrada, resultado e limites ficam explícitos antes da implementação.

2

Observe a execução

Registre entrada, estado visível, cancelamento e saída sem expor dados sensíveis.

3

Verifique a evidência

A tool só está pronta quando o efeito e o retorno podem ser reproduzidos.

Conceito aplicado

O contrato deve ser compreensível por quem usa, testável por quem desenvolve e limitado por quem opera. A ferramenta não substitui autorização, validação nem experiência visual.

<select name="nivel" required
  toolparamdescription="Nível atual em WebMCP.">
  <option value="iniciante">Iniciante</option>
  <option value="intermediario">Intermediário</option>
</select>

Dica prática

Copie o exemplo, rode primeiro com dados locais e só depois conecte o backend. Mantenha logs sem dados pessoais e provoque pelo menos uma falha.

Checklist operacional

O objetivo da ferramenta cabe em uma frase.
A entrada inválida produz um erro compreensível.
O efeito aparece na interface para a pessoa.
O caminho manual funciona sem WebMCP.
Indo mais fundo: evidência mínima

Guarde a entrada usada, o estado anterior, o resultado devolvido e a alteração visível da página.

Anote também o comportamento sem suporte, durante cancelamento e diante de uma resposta não autorizada do backend.

Conceitos-chave

01

required vira requisito

02

select limita valores

03

min/max restringem

04

algoritmo ainda evolui

4

Controle a confirmação com toolautosubmit

O que é: Sem toolautosubmit, o agente preenche e a página devolve o foco ao usuário para revisão; com o atributo, o envio pode ocorrer automaticamente.

Por que aprender: A escolha deve seguir o risco e o efeito da ação, não apenas a conveniência do fluxo.

💡 Teste de realidade

Implemente este tópico com um caminho feliz, uma entrada inválida e um cancelamento. Registre o que a pessoa viu e o que o agente recebeu.

Conceito aplicado

O contrato deve ser compreensível por quem usa, testável por quem desenvolve e limitado por quem opera. A ferramenta não substitui autorização, validação nem experiência visual.

<form toolname="buscar_cursos" toolautosubmit>…</form>
<!-- Consulta reversível: autosubmit pode fazer sentido. -->
<form toolname="confirmar_inscricao">…</form>
<!-- Efeito relevante: preserve confirmação humana. -->

Dica prática

Copie o exemplo, rode primeiro com dados locais e só depois conecte o backend. Mantenha logs sem dados pessoais e provoque pelo menos uma falha.

Checklist operacional

O objetivo da ferramenta cabe em uma frase.
A entrada inválida produz um erro compreensível.
O efeito aparece na interface para a pessoa.
O caminho manual funciona sem WebMCP.
Indo mais fundo: evidência mínima

Guarde a entrada usada, o estado anterior, o resultado devolvido e a alteração visível da página.

Anote também o comportamento sem suporte, durante cancelamento e diante de uma resposta não autorizada do backend.

Conceitos-chave

01

ausente pede revisão

02

booleano habilita envio

03

risco orienta decisão

04

UI mostra preenchimento

5

Responda com SubmitEvent.respondWith

O que é: Em envio acionado por agente, agentInvoked permite identificar a origem e respondWith entrega uma Promise com o resultado estruturado.

Por que aprender: O agente recebe um protocolo verificável sem depender de raspar a página após o envio.

✓ Faça

  • ✓ Declare preventDefault primeiro de forma observável.
  • ✓ Preserve teste agentInvoked no fluxo manual.
  • ✓ Teste o resultado e o cancelamento.

✗ Evite

  • ✗ Esconder efeitos atrás de descrições vagas.
  • ✗ Confiar na tool como autorização.
  • ✗ Remover o fallback da interface.

Conceito aplicado

O contrato deve ser compreensível por quem usa, testável por quem desenvolve e limitado por quem opera. A ferramenta não substitui autorização, validação nem experiência visual.

form.addEventListener('submit', (event) => {
  event.preventDefault();
  const task = enviarContato(new FormData(form));
  if (event.agentInvoked && event.respondWith) {
    event.respondWith(task);
  }
});

Dica prática

Copie o exemplo, rode primeiro com dados locais e só depois conecte o backend. Mantenha logs sem dados pessoais e provoque pelo menos uma falha.

Checklist operacional

O objetivo da ferramenta cabe em uma frase.
A entrada inválida produz um erro compreensível.
O efeito aparece na interface para a pessoa.
O caminho manual funciona sem WebMCP.
Indo mais fundo: evidência mínima

Guarde a entrada usada, o estado anterior, o resultado devolvido e a alteração visível da página.

Anote também o comportamento sem suporte, durante cancelamento e diante de uma resposta não autorizada do backend.

Conceitos-chave

01

preventDefault primeiro

02

teste agentInvoked

03

Promise como resposta

04

erro é estruturado

6

Separe o draft do código de produção

O que é: A API declarativa e os eventos toolactivated/toolcanceled continuam como propostas abertas no draft oficial; toolchange é o evento atualmente especificado.

Por que aprender: Um Builder precisa distinguir modelo conceitual, proposta experimental e API normativa antes de prometer compatibilidade em produção.

💡 Teste de realidade

Implemente este tópico com um caminho feliz, uma entrada inválida e um cancelamento. Registre o que a pessoa viu e o que o agente recebeu.

Conceito aplicado

O contrato deve ser compreensível por quem usa, testável por quem desenvolve e limitado por quem opera. A ferramenta não substitui autorização, validação nem experiência visual.

// API especificada no snapshot de 26/08/2026
document.modelContext?.addEventListener('toolchange', atualizarCatalogo);

// toolactivated/toolcanceled: propostas em discussão; não dependa delas
// em produção até entrarem na interface normativa.

Estado do padrão

A seção declarativa da especificação está marcada como TODO. Use esta aula para compreender a direção do padrão e valide o explainer oficial antes de experimentar atributos.

Dica prática

Copie o exemplo, rode primeiro com dados locais e só depois conecte o backend. Mantenha logs sem dados pessoais e provoque pelo menos uma falha.

Checklist operacional

O objetivo da ferramenta cabe em uma frase.
A entrada inválida produz um erro compreensível.
O efeito aparece na interface para a pessoa.
O caminho manual funciona sem WebMCP.
Indo mais fundo: evidência mínima

Guarde a entrada usada, o estado anterior, o resultado devolvido e a alteração visível da página.

Anote também o comportamento sem suporte, durante cancelamento e diante de uma resposta não autorizada do backend.

Conceitos-chave

01

estado visual explícito

02

cancelamento limpa UI

03

draft pode mudar

04

fallback não depende disso

📦 Entrega do módulo

Instrumentar um formulário de contato com validação, confirmação humana e resposta estruturada com protocolo.

Critério de aceite

A entrega funciona com suporte WebMCP e mantém o caminho manual quando a API não existe.

Evidência

Inclua código, cenário testado, resultado observado e uma limitação conhecida.

Fontes técnicas