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

Initialize Variables
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
ModificadorUso
mutableEl valor puede cambiar durante la conversación.
linkedEl valor procede de una fuente externa, por ejemplo @MessagingSession.Id.
systemVariables que provee la plataforma, como @system_variables.user_input.

Tipos soportados: string, number, boolean, object, date y list[tipo].

Descripciones que ayudan al agente

Descriptive Variables
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

Store Action Outputs
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.

Let the LLM Set Variable Values
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