O <prompt> define um formato XML para uso em agentes, automações e assistentes. Ele é composto pelas seguintes seções:
<metadata>: Informações como autor, versão e data.<context>: Explica o cenário de uso do prompt.<usage-rules>: Regras obrigatórias antes da execução.<instructions>: Passos operacionais para a execução.<step>: Cada passo com ordem definida.<tools>: Ferramentas (funções/API) a serem executadas.<tool>: Definição de uma ferramenta específica.<param>: Parâmetros de entrada para a ferramenta.<fallback>: Comportamento em caso de falha.<vars>: Variáveis globais utilizadas no prompt.<var>: Definição de uma variável, com nome e valor inicial.| 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. |
| 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. |
<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>
<rule>)<rule id="r1" type="condition" required="true">O campo nome deve ser preenchido.</rule>
<rule id="r2" type="regex" required="true">O e-mail deve ser válido.</rule>
<rule id="r3" type="condition" required="true">Idade mínima de 18 anos.</rule>
<rule id="r4" type="condition" required="true">O usuário deve aceitar os termos de uso.</rule>
<rule id="r5" type="condition" required="false">Telefone informado para contato.</rule>