> ## Documentation Index
> Fetch the complete documentation index at: https://docs.botky.chat/llms.txt
> Use this file to discover all available pages before exploring further.

# Intenciones (Functions)

> Detecta la intención del usuario y ejecuta funciones, recolectando parámetros hasta completarlos

export const Placeholder = () => <div className="botky-image-placeholder w-full aspect-video rounded-xl flex items-center justify-center font-semibold">
    Captura pendiente
  </div>;

Las **Intenciones (Functions)** permiten que el bot detecte lo que el usuario quiere hacer y ejecute una función en consecuencia. Para implementarlas, primero debes crear una **Intención** dentro de Automatización.

<Frame caption="Creación de una Intención dentro de Automatización">
  <Placeholder />
</Frame>

## Cómo funciona (workflow de ejemplo)

<Frame caption="Workflow de ejemplo de una Intención">
  <Placeholder />
</Frame>

<Steps>
  <Step title="Limpiar el historial del chat">
    Es el paso base y crítico: permite iterar por ciclos de *completion* hasta reunir con éxito todos los parámetros.
  </Step>

  <Step title="Mensaje de sistema">
    Un mensaje simple instruye al modelo a confirmar que **todos** los parámetros fueron obtenidos antes de concluir la llamada a la función.
  </Step>

  <Step title="Mapear parámetros y probar">
    Establece las intenciones, mapea los parámetros y prueba exhaustivamente que se recolectan correctamente.
  </Step>

  <Step title="Devolver al chat si falta algo">
    Si algún parámetro queda incompleto, regresa al usuario al ciclo de *chat completion*.
  </Step>
</Steps>

<Frame caption="Mensaje de sistema que confirma la captura de todos los parámetros">
  <Placeholder />
</Frame>

## Manejo de la salida

El manejo de la salida requiere evaluar el **motivo de finalización (finish reason)** del chat:

<Card type="note">
  Cuando el *finish reason* indica que ocurrió una **llamada a función**, significa que todos los parámetros ya se capturaron, y puedes entregarle el resultado directamente al usuario.
</Card>

<Frame caption="Evaluación del finish reason para entregar el resultado">
  <Placeholder />
</Frame>

Esta metodología no se limita a agendar citas: aplica a muchos otros tipos de intención.

<Card type="note">
  Hay un video tutorial disponible: [youtube.com/watch?v=67nWUjxw41w](https://www.youtube.com/watch?v=67nWUjxw41w)
</Card>
