Prompts / Instrucciones
Los prompts generalmente le indican al LLM qué hacer a continuación. Por ejemplo, pedir al usuario información específica como su nombre, número de seguro, dirección/datos de contacto, etc.
Los prompts pueden ser estáticos o dinámicos.
Prompts estáticos / texto simple
Ejemplo:
Saluda al llamante y pide su nombre.En los prompts estáticos, puedes acceder a todas las variables del state usando {{variableName}}.
Ejemplo: La siguiente información está almacenada en el state:
{
companyName: "claiverly GmbH"
}Prompt que usa esta información:
Saluda al llamante con la siguiente frase: "Bienvenido a {{companyName}}".Prompts dinámicos / programáticos
A veces es necesario incluir información dinámica en el prompt que proviene de una fuente externa o del state y no es estática.
Ejemplo: Tu aplicación necesita la fecha y la hora actuales. Los LLM se entrenan hasta cierto momento y son textuales, por lo que no conocen la fecha y la hora actuales. Si la aplicación depende de información de tiempo, por ejemplo para programar citas, el LLM puede ser informado de la fecha y hora actuales.
Ejemplo de cómo proporcionar la fecha y hora actuales al LLM:
function prompt(params) {
return ({ "prompt": "Today is " + new Date().toLocaleString() });
}Ejemplo de cómo incluir la temperatura actual en Berlin Alexanderplatz mediante una consulta webhook en el 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)}`});
}Cómo escribir prompts eficaces
Un buen prompt describe claramente el objetivo, los límites y el comportamiento esperado del asistente. Empieza por el resultado que quieres y añade solo el contexto y las reglas necesarios. El prompting es iterativo: prueba una primera versión con conversaciones realistas, revisa el resultado y mejora la instrucción que causó el comportamiento no deseado.
Estructura el prompt
Divide el prompt en secciones breves y claramente nombradas: Rol, Objetivo, Contexto, Reglas de conversación, Herramientas, Límites, Fallbacks y Ejemplos. En un bot multi-stage, mantén cada stage centrado en un estado de la conversación e indica claramente cuándo pasar al siguiente stage.
## Rol
Eres la persona amable de recepción de una clínica dental.
## Objetivo
Ayuda a los interlocutores a reservar, cambiar o cancelar una cita.
## Reglas
- Saluda y pregunta cómo puedes ayudar.
- Haz una sola pregunta cada vez.
- Usa un lenguaje natural adecuado para una conversación telefónica.
- Repite la fecha y la hora y pide confirmación antes de reservar.
## Límites
- Nunca inventes disponibilidad, precios ni datos de pacientes.
- Si falta información, dilo y ofrece transferir la llamada.Describe el comportamiento con precisión
Evita instrucciones vagas como “sé útil”. Describe qué debe hacer el asistente, cuándo y con qué resultado. Define explícitamente qué hacer si faltan datos, una herramienta no devuelve resultados o falla, el interlocutor no está de acuerdo o la solicitud está fuera del alcance.
Cuando el interlocutor quiera cancelar una cita:
1. Pregunta la fecha y el nombre del interlocutor.
2. Busca la cita correspondiente.
3. Lee los detalles de la cita.
4. Pregunta: “¿Debo cancelar esta cita?”
5. Llama a `cancel_appointment` solo después de la confirmación.Diseña para conversaciones de voz
- Mantén las respuestas breves y haz una pregunta cada vez.
- Usa frases cortas y evita listas largas, URL y términos técnicos.
- Confirma los nombres, fechas, horas, direcciones e importes importantes.
- Define cómo deben leerse los números, las fechas y las direcciones de correo.
- Especifica cómo gestionar interrupciones y respuestas inciertas.
- Indica el idioma, el tono, el nivel de formalidad y la terminología.
Habla en español formal. Usa el formato de 24 horas. Después de recibir un teléfono,
repite cada dígito y pide confirmación. Si no entiendes algo, haz una pregunta breve en
vez de adivinar.Haz previsibles las llamadas a herramientas
Describe el propósito y el momento de cada herramienta, sus requisitos, las confirmaciones necesarias y el comportamiento después de un éxito o un error. El prompt y la descripción de la herramienta no deben contradecirse. En bots single- o multi-stage, especifica cuándo llamar herramientas, cambiar de stage, enviar mensajes, reservar o transferir. Consulta herramientas y funciones.
Usa contexto y ejemplos
Incluye los hechos relevantes en el prompt o proporciónalos mediante el state, una base de conocimiento o un prompt dinámico. Indica qué fuente debe utilizarse y qué hacer si falta información. Nunca incluyas secretos ni credenciales en los prompts. Los ejemplos deben ser breves, realistas, variados y coherentes con las reglas de producción.
Evita problemas habituales
- Elimina o corrige instrucciones contradictorias.
- Divide las responsabilidades no relacionadas entre varios stages o asistentes.
- Define fallbacks para datos ausentes, errores, silencios y transferencias.
- Elimina las reglas que no afectan al resultado deseado.
- Especifica longitud, formato, idioma y tono.
- Indica al asistente que pida aclaraciones en vez de adivinar.
Prueba y mejora de forma sistemática
Define primero los criterios de éxito. Prueba casos normales, interrupciones, respuestas ambiguas, datos ausentes, errores de herramientas y transferencias. Revisa las transcripciones y las llamadas de funciones y cambia solo una parte cada vez. La documentación de depuración explica cómo inspeccionar state, stacks, funciones y webhooks.