Procedimientos estructurados
Descripción general
Un procedimiento estructurado es un procedimiento que ejecuta una secuencia fija de pasos. Un procedimiento de formato libre consiste en indicaciones en lenguaje natural que el agente interpreta y adapta a la situación. Un procedimiento estructurado es una lista ordenada de pasos tipados que el agente ejecuta en orden cada vez que se aplica el procedimiento.
Usa un procedimiento estructurado cuando deban realizarse pasos específicos de la misma manera en cada llamada: verificar la identidad de quien llama, escalar un ticket o realizar un pago. Lo redactas como una lista breve de pasos en lenguaje sencillo.
Como cualquier procedimiento, un procedimiento estructurado tiene un activador que describe cuándo se aplica. Cuando una conversación coincide con el activador, el agente ejecuta los pasos del procedimiento en orden y, después, vuelve al resto de la conversación.

Cuándo usar un procedimiento estructurado
Usa un procedimiento estructurado cuando unos pasos específicos deban ejecutarse siempre de la misma forma, pero quieras redactarlos rápidamente como pasos sencillos. Para ver cómo se compara con los procedimientos de formato libre, los workflows y el prompt del sistema, consulta Cuándo usar procedimientos.
Anatomía de un procedimiento estructurado
Un procedimiento estructurado tiene tres partes: un nombre, un activador y una lista ordenada de pasos.
Nombre
Una etiqueta breve que identifica el procedimiento en el panel de control. El nombre nunca se envía al LLM, por lo que no afecta al comportamiento del agente.
Activador
Una descripción en lenguaje sencillo de cuándo debe ejecutar el agente este procedimiento, por ejemplo Cuando el usuario solicite el reembolso de un pedido. El agente compara la intención del usuario con el activador de cada procedimiento y ejecuta el que coincida, por lo que los activadores deben ser concretos y diferenciados. Un activador funciona igual que en cualquier procedimiento; consulta Redactar activadores.
Pasos
El cuerpo del procedimiento es una lista ordenada de pasos tipados. Hay varios tipos de pasos, que puedes combinar para describir la tarea.

Referencia de pasos de la API
El content de un procedimiento estructurado es un documento codificado en JSON que contiene un array steps. Cada paso es un objeto identificado por su type.
Preguntar
Un paso Preguntar indica al agente que solicite información y espere hasta que el usuario proporcione una respuesta adecuada.
- Tipo de API:
ask instruction: Cadena obligatoria no vacía.
Indicar
Un paso Indicar instruye al agente para generar un único mensaje con sus propias palabras. A diferencia de Preguntar, no espera una respuesta del usuario antes de continuar.
- Tipo de API:
tell instruction: Cadena obligatoria no vacía.
Decir
Un paso Decir pronuncia el texto proporcionado exactamente tal como está escrito.
- Tipo de API:
say message: Cadena obligatoria no vacía.
Si, else if y else
Un paso Si contiene una o más ramas condicionales ordenadas. Se ejecuta la primera rama que coincide. El array fallback opcional actúa como la rama else.
- Tipo de API:
branch branches: Lista obligatoria no vacía de ramas condicionales.fallback: Lista opcional de pasos else.- Cada rama requiere un
conditiony una listastepsno vacía.
Su comportamiento es como if/else-if/else:
- Las condiciones se evalúan en orden.
- Se ejecuta la primera rama que coincide.
- Si no coincide ninguna condición, se ejecuta
fallback. - Cuando termina una rama, el procedimiento vuelve a unirse a la secuencia principal.
El ejemplo anterior usa una condición en lenguaje natural. Las condiciones también pueden usar expresiones de workflow:
Todas las ramas de un mismo paso Si deben usar el mismo tipo de condición: llm o expression.
Un paso Si puede ser el primer paso del procedimiento. Sin embargo:
- Los pasos Si no pueden anidarse.
- No se pueden colocar dos pasos Si consecutivos.
- Una condición de expresión no puede seguir directamente a un paso Preguntar. Usa una condición de LLM para evaluar la respuesta de texto libre de un usuario.
Herramienta
Un paso Herramienta llama a una herramienta específica.
- Tipo de API:
tool_call tool_id: ID de herramienta obligatorio no vacío.tool_name: Nombre de herramienta obligatorio.instruction: Instrucción opcional que describe cómo llamar a la herramienta.on_failure: Gestor de errores opcional.
Sin on_failure, una llamada de herramienta fallida detiene el procedimiento. Añade on_failure para gestionar errores específicos, volver a intentar la herramienta o continuar con pasos alternativos.
branches: Lista opcional de condiciones ordenadas. Se ejecuta la primera rama que coincide.fallback: Lista obligatoria no vacía de pasos. Se ejecuta cuando no coincide ninguna rama.
Las ramas del gestor de errores pueden contener pasos Preguntar, Indicar, Decir, Subprocedimiento, Herramienta del sistema y Reintentar. No pueden contener pasos Herramienta ni Si. Todas las ramas condicionales de un mismo gestor de errores deben usar el mismo tipo de condición.
Reintentar
Un paso Reintentar vuelve a intentar el paso Herramienta cuyo gestor de errores lo contiene.
- Tipo de API:
retry max_retries: Entero opcional de 1 a 3. El valor predeterminado es 1.- El valor cuenta los reintentos después de la llamada original a la herramienta.
- Reintentar solo es válido dentro de
on_failure. - Reintentar debe ser el paso final de su rama del gestor de errores porque los pasos posteriores serían inalcanzables.
- Si fallan todos los intentos, el procedimiento se detiene.
Subprocedimiento
Un paso Subprocedimiento ejecuta otro procedimiento estructurado. Cuando termina, la ejecución vuelve al paso posterior al paso Subprocedimiento.
- Tipo de API:
sub_procedure procedure_id: ID de procedimiento obligatorio no vacío.- El destino debe existir en el mismo agente.
- El destino debe ser un procedimiento estructurado.
- Un procedimiento no puede invocarse a sí mismo.
Herramienta del sistema
Un paso Herramienta del sistema realiza una acción integrada del sistema.
- Tipo de API:
system_tool system_tool_name: Nombre obligatorio de herramienta del sistema.- Actualmente, solo se admite
end_call. Es posible que se añadan más herramientas del sistema más adelante. - Como
end_calles terminal, debe ser el paso final de la secuencia o rama que lo contiene.
Ejemplo completo de la API
Este ejemplo gestiona la cancelación de un pedido según el estado del envío. Vuelve a intentar una llamada de herramienta fallida, invoca otro procedimiento estructurado y después finaliza la llamada.
Cómo se ejecuta un procedimiento estructurado
Cuando la solicitud del usuario coincide con el activador de un procedimiento durante una conversación, el agente entra en el procedimiento y ejecuta sus pasos en orden, siempre de la misma forma. Mientras está dentro del procedimiento, el agente se centra en esos pasos; cuando llega al final, vuelve al punto en el que se quedó en la conversación.
Si un paso Herramienta falla y no define on_failure, el procedimiento se detiene sin ejecutar los pasos restantes. Cuando se configura on_failure, el procedimiento ejecuta la primera rama de error que coincide o su alternativa obligatoria. Un error gestionado continúa con el siguiente paso del procedimiento, a menos que el gestor seleccionado vuelva a intentar la herramienta, finalice la llamada o invoque otra ruta terminal.
Gestionar un procedimiento estructurado
Crear desde el panel de control
Gestionar mediante la API
Abre tu agente en el panel de control y selecciona Procedimientos. Usa + para crear un procedimiento estructurado. Añade un activador, selecciona un tipo para cada paso y publica los cambios del agente.
Prácticas recomendadas
Cada tipo de paso ya aplica su propio comportamiento, así que rara vez necesitas especificarlo. Escribe la intención de cada paso y deja que el tipo de paso haga el resto. Las indicaciones siguientes cubren los casos que merece la pena hacer bien.
Redactar pasos
Deja que los pasos Ask esperen al usuario
Un paso Ask no avanza hasta que ha formulado tu pregunta y ha recibido una respuesta adecuada. No necesitas un paso de seguimiento para comprobar que se ha recopilado la información; el paso Ask lo garantiza antes de continuar.
Limita los pasos Tool a la llamada a la herramienta
Un paso Tool solo ejecuta la herramienta; el agente no puede hablar ni tomar una decisión durante él. Para hablar con el usuario o ramificar según lo que haya devuelto la herramienta, inclúyelo en un paso independiente antes o después del paso Tool.
Elige Tell para la redacción y Say para palabras exactas
Usa un paso Tell cuando el agente deba redactar el mensaje por sí mismo, y un paso Say cuando la redacción deba ser literal. Ambos envían exactamente un mensaje, así que no hace falta indicar a un paso que envíe un único mensaje.
Componer procedimientos
Las indicaciones generales para componer procedimientos también se aplican a los procedimientos estructurados; consulta Componer procedimientos en la página de procedimientos de formato libre.
Hay un patrón específico para combinar tipos: un procedimiento de formato libre puede hacer referencia a uno estructurado. Mantén la gestión abierta en un procedimiento de formato libre y delega las partes que deben ejecutarse siempre de la misma forma, como la verificación de identidad o la escalación, en un procedimiento estructurado.
Limitaciones
- Los pasos If no se pueden anidar ni colocar uno tras otro.
Compatibilidad con proveedores de modelos
Los procedimientos estructurados fuerzan llamadas a herramientas internas al entrar en un subprocedimiento y al completar un procedimiento. Las principales familias de modelos de OpenAI, Anthropic, Gemini y Grok admiten la selección forzada de herramientas. Otros modelos o proveedores personalizados pueden no garantizarlo, lo que puede hacer que las transiciones a subprocedimientos o la finalización de procedimientos sean menos fiables. Comprueba la compatibilidad con la selección forzada de herramientas cuando uses otro proveedor de modelos.
Consulta Procedimientos para conocer los límites aplicables a todos los procedimientos, incluido el límite de tamaño del contenido y las diferencias entre los procedimientos estructurados y los de formato libre.