Instrucciones

Las instrucciones del agente proporcionan orientación detallada al modelo sobre lo que debe hacer. Estas instrucciones se proporcionan en lenguaje natural.

Escribe instrucciones

Las instrucciones pueden contener cualquiera de los siguientes elementos:

  • Objetivo general
  • Cómo comportarse
  • Personaje que se debe usar
  • Una lista de subagentes, a los que se hace referencia por nombre visible en el formato: {@AGENT: Agent Name}
  • Una instrucción para usar una herramienta específica herramienta, a la que se hace referencia por nombre visible en el formato: {@TOOL: tool_name}.
  • Referencia a una variable, en la que el nombre de la variable que usa snake case se incluye entre llaves: {variable_name}.

Ejemplo para un agente raíz:

CURRENT CUSTOMER: {username}

You are the main Weather Agent coordinating multiple agents.
Your primary responsibility is to provide weather information.
Use {@TOOL: get_weather} ONLY for specific weather requests 
(for example, 'weather in London').

If you know the user's name, always greet them by their name.

You have specialized sub-agents:
  1. Greeting Agent: Handles simple greetings like 'Hi', 'Hello'.
  2. Farewell Agent: Handles simple farewells like 'Bye', 'See you'.

Analyze the user's query. 
If it's a greeting, call {@AGENT: Greeting Agent} 
If it's a farewell, call {@AGENT: Farewell Agent} 
If it's a weather request, handle it yourself using {@TOOL: get_weather} 

For anything else, respond appropriately or state you cannot handle it.

Resaltado de sintaxis

Cuando se hace referencia a una variable, herramienta, o agente en el editor de instrucciones con la sintaxis adecuada—{variable_name}, {@TOOL: tool_name}, o {@AGENT: Agent Name}—se destacará con un "chip" de color, lo que indica que se reconoce la sintaxis.

Para facilitar la inserción de estas referencias, el editor de instrucciones proporciona dos accesos directos:

  • Si escribes @, se abrirá un menú contextual con tres opciones: Agente, Herramienta o Variable. Puedes navegar por este menú con las teclas de flecha y Tab, o bien haciendo clic. Si seleccionas una opción, se mostrarán más opciones hasta que se complete la referencia, momento en el que se convertirá en un chip.
  • Si escribes {, se abrirá un menú contextual que muestra las variables disponibles para una inserción rápida.

Idiomas admitidos

Cuando diseñes instrucciones y mensajes para el agente, usa siempre inglés para que el agente comprenda mejor la información. Cuando tus agentes interactúan con los usuarios, pueden detectar el idioma de la entrada del usuario final y responder automáticamente en el mismo idioma, a menos que se indique lo contrario.

Si quieres que tu agente solo hable (o no hable) en ciertos idiomas, debes incluir una instrucción que describa la compatibilidad. Por ejemplo, si tu agente solo debe responder en italiano, puedes incluir "solo hablas italiano y ningún otro idioma" en tus instrucciones.

Para obtener la lista de idiomas admitidos, consulta la referencia de idiomas.

Reestructura las instrucciones

Puedes ingresar instrucciones en lenguaje natural, pero es posible que tu agente tenga un mejor rendimiento si les das formato con una estructura XML, lo que puede ayudar al modelo a seguir mejor las instrucciones. Proporcionamos una estructura XML estándar con etiquetas que puedes usar para estructurar tus instrucciones. Una vez que hayas ingresado las instrucciones en lenguaje natural, puedes hacer clic en el botón Reestructurar instrucciones que se encuentra sobre el panel de instrucciones para darles formato con nuestra estructura XML recomendada.

En la siguiente tabla, se describen las etiquetas XML recomendadas y cómo se pueden usar:

Etiqueta Descripción
role Define la función o la responsabilidad principal del agente.
persona Describe la personalidad, el tono y los lineamientos de comportamiento del agente.
primary_goal Dentro de <persona>, especifica el objetivo principal del agente.
constraints Enumera las reglas o limitaciones que debe seguir el agente.
taskflow Describe los flujos conversacionales como una serie de subtareas.
subtask Dentro de <taskflow>, una parte específica del flujo de conversación que contiene uno o más pasos.
step Dentro de <subtask>, un paso individual que incluye un activador y una acción.
trigger Dentro de <step>, la condición o la entrada del usuario que inicia un paso.
action Dentro de <step>, la acción que debe realizar el agente cuando se activa un paso.
examples Contiene ejemplos con pocos intentos para guiar el comportamiento del agente en situaciones específicas.

Este es un ejemplo de las mismas instrucciones con nuestra estructura XML recomendada:

CURRENT CUSTOMER: {username}

<role>The main Weather Agent coordinating multiple agents.</role>

<persona>
    <primary_goal>To provide weather information.</primary_goal>
    How to handle prohibited topics and violations: Respond appropriately or
    state inability to handle the request.
    General guidelines: Follow the constraints and task flow precisely.
</persona>

<constraints>
    1. Use {@TOOL: get_weather} ONLY for specific weather requests 
      (for example, 'weather in London').
    2. If the user's name is known (from the 'CURRENT CUSTOMER' context), always
      greet them by their name.
</constraints>

<taskflow>
    These define the conversational subtasks that you can take. Each subtask
    has a sequence of steps that should be taken in order.
    <subtask name="Initial Greeting">
        <step name="Check for Username and Greet">
            <trigger>Start of conversation or new user interaction.</trigger>
            <action>If a username is provided in the 'CURRENT CUSTOMER' context,
              greet the user by their name. Otherwise, proceed without a 
              personalized greeting.
            </action>
        </step>
    </subtask>
    <subtask name="Query Analysis and Routing">
        <step name="Analyze User Query">
            <trigger>User provides a query.</trigger>
            <action>Determine the intent of the user's query 
              (greeting, farewell, weather request, or other).
            </action>
        </step>
        <step name="Handle Greeting">
            <trigger>User query is identified as a simple greeting
              (e.g., 'Hi', 'Hello').
            </trigger>
            <action>Call {@AGENT: Greeting Agent}.</action>
        </step>
        <step name="Handle Farewell">
            <trigger>User query is identified as a simple farewell
              (e.g., 'Bye', 'See you').
            </trigger>
            <action>Call {@AGENT: Farewell Agent}.</action>
        </step>
        <step name="Handle Weather Request">
            <trigger>User query is identified as a specific weather request
              (e.g., 'weather in London').
            </trigger>
            <action>Use {@TOOL: get_weather} to retrieve weather information and
              provide it to the user.
            </action>
        </step>
        <step name="Handle Other Queries">
            <trigger>User query does not fall into greeting, farewell, or
              specific weather request categories.
            </trigger>
            <action>Respond appropriately to the query or state that the request
              cannot be handled.
            </action>
        </step>
    </subtask>
</taskflow>
<examples>
</examples>

Ejemplos con pocos intentos intercalados

La instrucción con pocos intentos es una técnica en la que se proporciona a un modelo de lenguaje grande (LLM) un pequeño conjunto de ejemplos para guiar su comportamiento, tono o lógica. En el contexto de los agentes, los "ejemplos con pocos intentos intercalados" se refieren a colocar estos ejemplos directamente en las instrucciones del agente en lugar de en un panel de IU independiente. Este método ayuda al modelo a comprender requisitos complejos mostrándolos en lugar de solo explicarlos, lo que, en esencia, cierra la brecha entre las instrucciones abstractas y la ejecución concreta.

Cuándo usar ejemplos con pocos intentos

Los ejemplos con pocos intentos son una herramienta poderosa para la calibración, pero se deben usar de forma estratégica. Considera agregarlos en las siguientes situaciones:

  • Resolución de problemas de calidad: Usa ejemplos principalmente para corregir fallas específicas en las que el modelo no comprende las instrucciones de manera constante.
  • Formato complejo: Cuando el agente necesita generar datos en un formato muy específico y no estándar.
  • Lógica matizada: Cuando las instrucciones "si-entonces" no son suficientes para capturar la sutileza de un proceso de toma de decisiones.

Prácticas recomendadas y advertencias

Si bien son eficaces, los ejemplos con pocos intentos deben seleccionarse con cuidado para evitar que se degrade el rendimiento del agente.

  • Usa con moderación: Si agregas demasiados ejemplos, el agente puede "sobreajustarse", lo que significa que puede seguir los ejemplos de forma rígida y perder su capacidad de generalizar a consultas de usuarios nuevas y no vistas.
  • Descriptivo, no exhaustivo: No es necesario enumerar todas las consultas posibles de los usuarios. Los ejemplos deben servir como guía para el patrón de razonamiento del modelo, no como una base de datos de búsqueda.
  • Comienza con instrucciones: Primero, intenta resolver los problemas de comportamiento con instrucciones claras y descriptivas. Solo agrega pocos intentos si las instrucciones por sí solas no logran el resultado deseado.

Componentes de un ejemplo con pocos intentos

Un ejemplo estándar con pocos intentos para agentes consta de cuatro componentes distintos que simulan un turno de conversación.

Componente Etiqueta o sintaxis Descripción
Usuario [user] Representa la entrada o la consulta del usuario final.
Modelo [model] Representa la respuesta textual o el proceso de pensamiento del agente.
Entrada de la herramienta tool_code Muestra cómo el agente debe estructurar la entrada o "llamar" a una herramienta o función externa (p.ej., argumentos o sintaxis específicos).
Resultado de la herramienta tool_outputs Simula los datos que devuelve la herramienta, lo que le enseña al agente a interpretar y utilizar esos datos en su respuesta final.

Se debe usar el siguiente formato para los ejemplos con pocos intentos:

<examples>
  EXAMPLE 1:
  Begin example
  [user]
  What's the weather in London?
  [model]
  ```tool_code
  get_weather(location="London")
  ```
  ```tool_outputs
  {"temperature": "15 C", "condition": "Cloudy"}
  ```
  [model]
  The weather in London is 15 C and Cloudy.
  End example
</examples>

Define mejor las instrucciones

Puedes seleccionar una parte del contenido de tus instrucciones y, luego, aparecerá un botón Definir mejor. Puedes hacer clic en este botón para usar la IA y mejorar el contenido seleccionado. En el campo Requisitos , ingresa información sobre cómo deseas mejorar el contenido seleccionado.

Da formato a las respuestas del agente

Puedes indicarle al agente cómo dar formato a sus respuestas textuales para que sean más fáciles de leer. A continuación, se proporcionan las prácticas recomendadas para las instrucciones de formato:

Fragmentación y espacios en blanco

  • Nunca escribas párrafos densos. Los usuarios escanean, no leen.
  • Limita los bloques de texto a 1 o 2 oraciones como máximo.
  • Inserta un salto de línea entre cada idea distinta para crear espacios en blanco.

Uso estratégico de negrita

  • Debes poner en negrita los puntos de datos más importantes para que se destaquen de inmediato.
  • Siempre pon en negrita: nombres de productos, precios, fechas, números de pedido y fechas límite.
  • Ejemplo: "La camiseta clásica cuesta USD 25.00."

Listas en lugar de texto

  • Si mencionas más de dos elementos o pasos, conviértelos automáticamente en una lista con viñetas o numerada.
  • Usa viñetas estándar (-) para las opciones y listas numeradas (1.) para las instrucciones.

Instrucciones globales

Además de definir instrucciones específicas del agente, puedes definir instrucciones globales en la configuración avanzada de la aplicación del agente.

Cada agente de la aplicación del agente hereda las instrucciones globales, y estas se envían al modelo para cada turno de conversación, además de las instrucciones específicas del agente.

Las instrucciones globales son adecuadas para la información genérica que todos los agentes deben conocer. Por ejemplo, el tono de la marca, las "acciones permitidas y no permitidas" generales, las variables compartidas de forma global y los perfiles de clientes.