Prompts / Instruções
Os prompts geralmente dizem ao LLM o que fazer em seguida. Por exemplo, solicitar ao usuário informações específicas como nome, número de seguro, endereço/contato etc.
Os prompts podem ser estáticos ou dinâmicos.
Prompts estáticos / texto simples
Exemplo:
Cumprimente o chamador e peça o nome dele.Em prompts estáticos, você pode acessar todas as variáveis do state usando {{variableName}}.
Exemplo: As seguintes informações estão armazenadas no state:
{
companyName: "claiverly GmbH"
}Prompt que usa essas informações:
Cumprimente o chamador com a seguinte frase: "Bem-vindo à {{companyName}}".Prompts dinâmicos / programáticos
Às vezes é necessário incluir informações dinâmicas no prompt, vindas de uma fonte externa ou do state, e que não são estáticas.
Exemplo: Sua aplicação precisa da data e hora atuais. LLMs são treinados até um determinado ponto no tempo e são baseados em texto, então não sabem a data e hora atuais. Se a aplicação depende de informações de tempo, por exemplo para agendar compromissos, o LLM pode ser informado sobre a data e hora atuais.
Exemplo de como fornecer a data e hora atuais ao LLM:
function prompt(params) {
return ({ "prompt": "Today is " + new Date().toLocaleString() });
}Exemplo de como incluir a temperatura atual na Alexanderplatz, em Berlim, via uma consulta webhook no prompt:
function prompt(params) {
const temperature = webhook("https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41¤t=temperature_2m", {}, {method: "get"});
return ({ "prompt": `The temperature in Berlin is right now: ${JSON.stringify(temperature)}`});
}Como escrever prompts eficazes
Um bom prompt descreve claramente o objetivo, os limites e o comportamento esperado do assistente. Comece pelo resultado desejado e adicione apenas o contexto e as regras necessários. O prompting é iterativo: teste uma primeira versão com conversas realistas, analise o resultado e ajuste a instrução que causou o comportamento indesejado.
Estruture o prompt
Divida o prompt em seções curtas e claramente nomeadas: Função, Objetivo, Contexto, Regras da conversa, Ferramentas, Limites, Fallbacks e Exemplos. Em um bot multi-stage, mantenha cada stage focado em um estado da conversa e explique claramente quando passar para o próximo stage.
## Função
Você é a recepcionista cordial de uma clínica odontológica.
## Objetivo
Ajude os chamadores a marcar, alterar ou cancelar uma consulta.
## Regras
- Cumprimente o chamador e pergunte como pode ajudar.
- Faça apenas uma pergunta de cada vez.
- Use linguagem natural e adequada para uma conversa telefônica.
- Repita a data e o horário e peça confirmação antes de marcar.
## Limites
- Nunca invente disponibilidade, preços ou dados de pacientes.
- Se faltar uma informação, informe isso e ofereça uma transferência.Descreva o comportamento com precisão
Evite instruções vagas como “seja útil”. Diga o que o assistente deve fazer, quando e com qual resultado. Defina explicitamente o que fazer quando faltarem dados, uma ferramenta não encontrar resultados ou falhar, o chamador discordar ou o pedido estiver fora do escopo.
Quando o chamador quiser cancelar uma consulta:
1. Pergunte a data e o nome do chamador.
2. Encontre a consulta correspondente.
3. Leia os detalhes da consulta.
4. Pergunte: “Devo cancelar esta consulta?”
5. Chame `cancel_appointment` somente após a confirmação.Planeje para conversas de voz
- Mantenha as respostas curtas e faça uma pergunta por vez.
- Use frases curtas e evite listas longas, URLs e termos técnicos.
- Confirme nomes, datas, horários, endereços e valores importantes.
- Defina como números, datas e endereços de e-mail devem ser lidos.
- Explique como lidar com interrupções e respostas incertas.
- Especifique idioma, tom, formalidade e terminologia.
Fale em português formal. Use o formato de 24 horas. Depois de receber um telefone, repita
cada dígito e peça confirmação. Se não entender, faça uma pergunta curta em vez de adivinhar.Torne as chamadas de ferramentas previsíveis
Descreva o objetivo e o momento de cada ferramenta, seus pré-requisitos, confirmações e o comportamento após sucesso ou erro. O prompt e a descrição da ferramenta não devem se contradizer. Em bots single- ou multi-stage, especifique quando chamar ferramentas, mudar de stage, enviar mensagens, marcar horários ou transferir chamadas. Consulte ferramentas e funções.
Use contexto e exemplos
Inclua fatos relevantes no prompt ou forneça-os por meio do state, de uma base de conhecimento ou de um prompt dinâmico. Informe qual fonte deve ser usada e o que fazer quando a informação estiver ausente. Nunca inclua segredos ou credenciais nos prompts. Os exemplos devem ser curtos, realistas, variados e coerentes com as regras de produção.
Evite problemas comuns
- Remova ou corrija instruções contraditórias.
- Separe responsabilidades não relacionadas em diferentes stages ou assistentes.
- Defina fallbacks para dados ausentes, erros, silêncio e transferências.
- Remova regras que não influenciam o resultado desejado.
- Especifique tamanho, formato, idioma e tom.
- Oriente o assistente a pedir esclarecimentos em vez de adivinhar.
Teste e melhore de forma sistemática
Defina primeiro os critérios de sucesso. Teste casos normais, interrupções, respostas ambíguas, dados ausentes, erros de ferramentas e transferências. Analise transcrições e chamadas de função e altere apenas uma parte por vez. A documentação de debugging explica como inspecionar state, stacks, funções e webhooks.