Referencia
Variables
Tipos, valores por defecto, variables linked y de sistema, y listas.
Fuente: reference/ascript-ref-variables.md · patterns/ascript-patterns-variables.md
Las variables permiten al agente conservar información entre turnos y entre subagentes. Se usan en condicionales, como entradas de acciones, en filtros available when y para mostrar datos al usuario.
Declaración
variables: # Cadena vacía para texto que se recupera más tarde order_summary: mutable string = "" # False para flags que empiezan en negativo verified: mutable boolean = False # Sin inicializar cuando el valor debe proporcionarse member_email: mutable string
| Modificador | Uso |
|---|---|
| mutable | El valor puede cambiar durante la conversación. |
| linked | El valor procede de una fuente externa, por ejemplo @MessagingSession.Id. |
| system | Variables que provee la plataforma, como @system_variables.user_input. |
Tipos soportados: string, number, boolean, object, date y list[tipo].
Descripciones que ayudan al agente
variables: is_business_hours: mutable boolean = False description: "Whether it is business hours. Used to determine if the agent can escalate to a live representative." loyalty_tier: mutable string description: "The customer's loyalty tier (Standard, Gold, or Platinum VIP). Used for personalized greetings and feature access."
Guardar la salida de una acción
reasoning: instructions: -> run @actions.lookup_current_order with member_email=@variables.member_email set @variables.order_summary=@outputs.order_summary set @variables.order_id=@outputs.order_id | Show the user their order: {!@variables.order_summary}
Slot filling: que el LLM rellene la variable
El token ... indica que el valor lo pone el modelo a partir de lo que dice el usuario.
reasoning: instructions: -> Ask the user for their full name. Then, use {!@actions.capture_user_info} to set the value of the user's first and last name. actions: capture_user_info: @utils.setVariables with first_name = ... with last_name = ... description: "Set the user's name as variables"
Consejos
- Nombra las variables con claridad: order_return_eligible, no flag1.
- En instrucciones de razonamiento, asigna manualmente entradas y salidas: la acción se ejecuta antes de que haya razonamiento.
- En tools, usa variables como entrada con moderación: fijar demasiadas entradas hace que el agente seleccione acciones de forma inconsistente.
- Guarda las salidas en variables solo si las vas a usar en condicionales, como entrada de otra acción o en flujos deterministas.
Temas relacionados