Especificação de Prompt Estruturado - ER Soluções Web – Desenvolvimento Web, WordPress & Integrações APIs

📄 Especificação do Prompt Estruturado

🔧 Estrutura Geral

O <prompt> define um formato XML para uso em agentes, automações e assistentes. Ele é composto pelas seguintes seções:

🏷️ Tags

Tag Obrigatória Descrição
<prompt>✅Tag raiz do documento.
<context>✅Cenário de aplicação do prompt.
<usage-rules>❌Conjunto de regras de validação. Pode ser usado em <context>, <fallback> e <step>.
---- <rule>✅Cada regra com id, type, required.
<instructions>❌Etapas sequenciais de execução.
---- <step>✅Cada passo com atributo order.
<tools>❌Bloco opcional de ferramentas executáveis.
---- <tool>✅Ação, API ou função com name, when, mode.
---- ---- <param>✅Parâmetros de entrada para a ferramenta.
<fallback>❌Mensagem ou ação se regras não forem atendidas.
<vars>❌Variáveis globais usadas no prompt.
---- <var>✅Definição de uma variável com name e value.

🔑 Atributos das Tags

Tag Atributo Obrigatório Descrição
<rule> id ✅ Identificador único da regra.
<rule> type ✅ Tipo da regra (ex: condition).
<rule> required ✅ Se a regra é obrigatória (true ou false).
<step> order ❌ Ordem sequencial do passo.
<rule> action ❌ Ação a ser executada se a regra for ativada.
<step> order ✅ Ordem sequencial do passo.
<tool> name ✅ Nome da ferramenta, função ou API.
<tool> required ✅ Se a ferramenta é obrigatória (true ou false).
<tool> when ❌ Condição para execução da ferramenta.
<tool> mode ❌ Modo de execução (sync ou async).
<fallback> trigger ❌ Evento que dispara o fallback (ex: if_failed).
<var> name ✅ Nome da variável.
<var> value ✅ Valor inicial da variável.

🧪 Exemplo Completo

<prompt>
  <metadata>
    <author>Everaldo</author>
    <version>1.0</version>
    <date>2025-07-08</date>
  </metadata>
  <context>
    Você é um agente que vai lidar com follow up e com a pesquisa de satisfação

    o usuario vai responder com:

    Ótimo
    Bom
    Regular
    Ruim
    Péssimo

    Se for Bom ou Regular pergunta a ele se teria alguém para indicar já que gostou do serviço

    Se for outra opção pergunte porque não gostou e o que poderia melhorar

    Depois que ele responder guarde isso no banco de dados

    Se tiver indicação peça o nome e o numero do telefone (se possível whatsapp)
  </context>
  <instructions>
    <step order="1">Verifique as condições r1 e r2.</step>
    <step order="2">Se forem verdadeiras, prossiga com o envio.</step>
  </instructions>
  <tools>
    <tool name="enviarFormulario" required="true" when="Usuário enviar todos os dados" mode="sync">
      <param>nome</param>
      <param>email</param>
      <usage-rules>
        <rule id="r1" type="condition" required="true">Sem indicação disponível.</rule>
        <rule id="r2" type="condition" required="true">Dados já enviados.</rule>
      </usage-rules>
      <fallback trigger="Não conseguiu capturar o e-mail">
        Você precisa indicar alguém ou enviar os dados antes de continuar.
      </fallback>
    </tool>
  </tools>
  <vars>
    <var name="nome" value="" />
    <var name="email" value="" />
  </vars>
  <fallback action="Executar ferramenta X">
      <usage-rules>
        <rule id="r1" type="condition" required="true">Não conseguiu detectar o telefone.</rule>
      </usage-rules>
  </fallback>
</prompt>
      

📋 Exemplos de Regras (<rule>)