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

# Prompt de sistema frente al generador de Flow

> Dos formas de definir el comportamiento del asistente, y cuándo usar cada una

Un asistente se puede controlar de dos formas: con un **único prompt del sistema** o con un **Flow visual**. Ambos usan el mismo motor de voz; la diferencia está en cuánta estructura le impones a la conversación.

## Qué compone un asistente

Todo asistente combina las mismas piezas, sin importar cómo configures su comportamiento:

| Pieza              | Qué controla                                                                                                                                                                               |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Comportamiento** | Un prompt del sistema o un flow — ver más abajo                                                                                                                                            |
| **Modo de motor**  | [Pipeline, realtime o half-cascade](/es/assistants/engine-modes) — cómo escucha y habla                                                                                                    |
| **Modelo y voz**   | El [modelo de lenguaje, reconocimiento de voz y voz](/es/assistants/models-and-voices) que usa                                                                                             |
| **Herramientas**   | [Acciones integradas](/es/assistants/built-in-tools) como transferencias, SMS o terminar la llamada, además de las [Agent Tools](/es/assistants/agent-tools) que tú mismo creas o instalas |
| **Canales**        | Dónde se le puede contactar — números de teléfono, [WhatsApp](/es/channels/whatsapp), el [widget web](/es/web-widget) y más                                                                |

Una vez configurado, asigna el asistente a un número de teléfono para llamadas entrantes o a una [campaña](/es/campaigns/overview) para salientes.

## Prompt de sistema único

La configuración más simple: un prompt describe el rol, el conocimiento y las reglas del asistente; un **first message** define el saludo. El LLM gestiona toda la conversación con libertad dentro de esas instrucciones.

**Ideal para:**

* Asistentes de FAQ y recepción («responder preguntas, tomar mensajes»)
* Asistentes cuya tarea no se ramifica en fases distintas
* Prototipado rápido — puedes reescribir un prompt en segundos

**Configuración:**

* **Agent type** — elige **Single prompt** o **Conversational flow** al crear el asistente, o más adelante en **Settings → General**.
* **System prompt** — rol, tono, reglas y datos. Usa **Choose template** en el lienzo (modo Prompt) o al crear el asistente. Aplicar una plantilla copia su contenido en el prompt (y en el first message, si aplica); no mantiene un enlace en vivo con la plantilla. Consulta [Redacción de prompts](/es/assistants/prompt-writing) para saber cómo estructurar y ajustar el propio prompt.
* **First message** — la frase de apertura, dicha en cuanto se conecta la llamada.
* **Greeting mode** — `agent speaks first` (típico en entrantes) o `user speaks first` (el asistente espera; útil en salientes, donde la persona contesta con un «¿Diga?»).
* **Allow interruption** — deja opcionalmente que quien llama interrumpa el saludo de apertura. Esto es independiente de los ajustes de interrupción a nivel de conversación.
* **Audio greeting** — sube o graba opcionalmente un archivo de audio (mp3/wav/ogg/m4a, ≤ 5 MB) que se reproduce al inicio de la llamada en lugar de la voz sintetizada. El texto del first message sigue disponible para los canales de texto y el buzón de voz. Gestiónalo desde la tarjeta de saludo o mediante `POST`/`DELETE /api/v1/assistants/{id}/greeting-audio`.
* **Assistant picture** — sube opcionalmente una imagen PNG/JPEG/WebP (≤ 1 MB) que se muestra en la interfaz del producto en lugar del orbe predeterminado. Pasa el cursor sobre el avatar en la cabecera del asistente para subirla o reemplazarla, o usa `POST`/`DELETE /api/v1/assistants/{id}/avatar`.

<Tip>
  Mantén el first message corto — con 5–10 segundos es suficiente. Como se dice tal cual está escrito, deletrea números y puntuación de la forma en que deben sonar (unos puntos suspensivos añaden una pausa natural). Si usas un saludo de audio grabado, grábalo de forma profesional y clona esa misma voz para el resto de la llamada, para que la transición de la grabación a la voz sintetizada resulte fluida.
</Tip>

## Plantillas de caso de uso

La galería Create assistant incluye tanto plantillas de prompt como planos completos de Flow. Los planos de Flow muestran un resultado esperado, las superficies compatibles y cualquier configuración que debas completar después de la creación. Al aplicar uno, se copian su prompt, saludo, grafo y variables en el asistente nuevo; la copia queda disponible para que la edites y no cambia cuando se actualiza la plantilla del catálogo. Consulta [Empezar con una plantilla de caso de uso](/es/flow-builder/overview#empezar-con-una-plantilla-de-caso-de-uso) para más información.

Una etiqueta **Avatar-ready** describe la experiencia web prevista, no un nodo de flow especial. Configura el widget web y el avatar virtual después de la creación. La imagen del asistente es solo el retrato estático que se muestra en el producto, y es independiente del avatar que habla durante una sesión web.

## Generador de Flow

El [generador de Flow](/es/flow-builder/overview) convierte la llamada en un grafo: varios agentes especializados, ramas condicionales, herramientas HTTP, pasos de recopilación de datos, transferencias y finales explícitos. El motor va pasando la conversación de nodo en nodo.

En el editor, cambia a **Flow** (o crea el asistente con Conversational flow). El **prompt del sistema base** se edita en Settings → General → **Advanced prompt** (y aparece colapsado en el lienzo). Las instrucciones del nodo de agente se **añaden** a esa base: no la sustituyen.

**Ideal para:**

* Llamadas con fases diferenciadas (calificar → recopilar datos → reservar → confirmar)
* Captura fiable de datos (nombres, correos, teléfonos con validación integrada)
* Llamadas que deben ramificarse («¿cliente existente?» → rutas distintas)
* Transferencias con reglas (transferencia asistida a ventas solo tras la calificación)

## ¿Cuál deberías elegir?

| Situación                                              | Recomendación                                                                                                                                     |
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| «Responder preguntas sobre X»                          | Prompt de sistema                                                                                                                                 |
| «Recopilar siempre un número de devolución de llamada» | Flow (un nodo `collect` lo valida)                                                                                                                |
| «Enrutar entre soporte y ventas»                       | Flow (un nodo `condition` ramifica)                                                                                                               |
| «Llamar a una API a mitad de conversación»             | Cualquiera de las dos — los flows ofrecen nodos `tool`; los asistentes solo con prompt pueden usar [herramientas MCP](/es/api/tools-and-webhooks) |
| Primer prototipo                                       | Prompt de sistema, y luego pasar a un flow                                                                                                        |

<Note>
  Los nodos `agent` de un flow pueden dejar las instrucciones vacías — se usa entonces como base el prompt del sistema del asistente (Advanced prompt). Cuando un nodo de agente tiene su propio texto, ese texto se **añade** al prompt del sistema, no lo sustituye. Empieza con un prompt y añade estructura de flow sin duplicar toda la persona.
</Note>

## Ajustes que aplican en ambos casos

### Comportamiento de respuesta por canal

El asistente adapta automáticamente la longitud de respuesta, el tono y el formato al canal de entrega: las llamadas de voz se mantienen naturales y concisas, el chat en vivo se mantiene fácil de escanear, los canales de colaboración priorizan las acciones, y el correo se mantiene estructurado. No hace falta ninguna configuración.

Para ajustar un canal, abre **Settings → Channels**, elige el canal, despliega **Advanced** y cambia de **Automatic** a **Manual**. Las instrucciones de Manual se añaden al perfil automático; nunca sustituyen las reglas de seguridad, idioma, uso de herramientas o entrega. Web Widget y WhatsApp exponen sus modos de voz y texto por separado. Si Manual queda vacío, Automatic sigue activo.

Sea cual sea el modo, todo asistente tiene: modo de motor ([pipeline / realtime / half-cascade](/es/assistants/engine-modes)), selección de modelo y voz, [base de conocimientos](/es/assistants/knowledge-base), [ajustes de calidad de conversación](/es/assistants/conversation-quality), opciones de grabación y consentimiento, duración máxima de llamada, tiempo de espera de inactividad, etiquetas opcionales y una URL de webhook para los resultados de la llamada.

**iOS / Android Call Screen Handling** (Settings → Conversation, o el nodo Pre-Call en el generador de Flow) permite que el asistente responda a los servicios de filtrado («¿Quién llama?») con un nombre, una empresa y un motivo, y luego espere a que una persona conteste antes de dar el saludo normal.

## Historial de versiones

Cada guardado toma una instantánea de la configuración previa del asistente. Abre el icono **History** en la cabecera del editor para ver la lista completa, de más reciente a más antigua.

* **Renombrar una versión** — dale una etiqueta corta y memorable en lugar del «Version N» predeterminado.
* **Abrir una versión** — lee un resumen en lenguaje sencillo de lo que contiene: prompt, modelos, voz, herramientas, canales y más.
* **Restaurar una versión** — la configuración actual se guarda primero como instantánea, así que la propia restauración también se puede deshacer.

Las mismas acciones están disponibles como REST y MCP:

| REST                                                        | Herramienta MCP             | Alcance            |
| ----------------------------------------------------------- | --------------------------- | ------------------ |
| `GET /api/v1/assistants/{id}/versions`                      | `list_assistant_versions`   | `assistants:read`  |
| `GET /api/v1/assistants/{id}/versions/{versionId}`          | `get_assistant_version`     | `assistants:read`  |
| `PATCH /api/v1/assistants/{id}/versions/{versionId}`        | `rename_assistant_version`  | `assistants:write` |
| `POST /api/v1/assistants/{id}/versions/{versionId}/restore` | `restore_assistant_version` | `assistants:write` |
| `DELETE /api/v1/assistants/{id}/versions/{versionId}`       | `delete_assistant_version`  | `assistants:write` |

## Enlace de demo público

Activa **Public demo link** en el editor del asistente para obtener una URL compartible que cualquiera puede abrir para hablar con el asistente de inmediato — sin necesidad de iniciar sesión. Las llamadas realizadas a través de él se facturan del saldo de créditos de tu espacio de trabajo exactamente igual que las llamadas de prueba, así que vigila el consumo si lo compartes ampliamente.

Desactivar el interruptor detiene el funcionamiento del enlace. Volver a activarlo recupera exactamente el mismo enlace en lugar de emitir uno nuevo, así que un enlace que ya hayas compartido sigue funcionando tras desactivarlo y volver a activarlo.

<Note>
  El enlace de demo público funciona en el dominio de marca blanca de tu espacio de trabajo cuando hay uno configurado. No existe equivalente en REST ni en MCP — el interruptor del panel es la única forma de activarlo o desactivarlo.
</Note>
