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>