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
- Es el arquetipo de usuario que se usará.
- Es una lista de subagentes, a los que se hace referencia por su nombre visible en el formato
{@AGENT: Agent Name}. - Es una instrucción para usar una herramienta específica, a la que se hace referencia por su nombre visible en el formato
{@TOOL: tool_name}. - Referencia a una variable, en la que el nombre de la variable con snake case se incluye entre llaves:
{variable_name}.
Ejemplo de 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, una herramienta o un 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 combinaciones de teclas:
- 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 la tecla 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 insertarlas rápidamente.
Idiomas admitidos
Cuando diseñes instrucciones y mensajes para el agente, usa siempre el inglés para que el agente comprenda con la mayor calidad posible. 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 les indique lo contrario.
Si quieres que tu agente solo hable (o no hable) en ciertos idiomas, debes incluir una instrucción que describa la asistencia. 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.
Instrucciones de reestructuración
Puedes ingresar instrucciones en lenguaje natural, pero es posible que tu agente funcione mejor si las formateas con una estructura XML, lo que puede ayudar al modelo a seguirlas mejor. 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 Restructure instructions que se encuentra sobre el panel de instrucciones para darles formato según la 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 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 |
Esquematiza los flujos de conversación 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>, se encuentra 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. |
Aquí tienes 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 intercalados con pocos intentos
La instrucción con ejemplos limitados 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 intercalados con pocos ejemplos" hacen referencia a la colocación de estos ejemplos directamente dentro de las instrucciones del agente en lugar de en un panel de la IU separado. Este método ayuda al modelo a comprender requisitos complejos, ya que muestra en lugar de solo decir, lo que esencialmente cierra la brecha entre las instrucciones abstractas y la ejecución concreta.
Cuándo usar ejemplos con pocos intentos
Los ejemplos de aprendizaje con pocos datos son una herramienta poderosa para la calibración, pero deben usarse de forma estratégica. Considera agregarlos en las siguientes situaciones:
- Resolución de problemas de calidad: Usa ejemplos principalmente para corregir errores específicos en los que el modelo no comprende las instrucciones de forma 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 captar la sutileza de un proceso de toma de decisiones.
Prácticas recomendadas y advertencias
Si bien son eficaces, los ejemplos de aprendizaje con pocos ejemplos deben seleccionarse con cuidado para evitar que se degrade el rendimiento del agente.
- Úsalos con moderación: Agregar demasiados ejemplos puede hacer que el agente se "sobreajuste", 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.
- Descriptiva, no exhaustiva: No es necesario que enumeres todas las búsquedas posibles de los usuarios. Los ejemplos tienen como objetivo servir de guía para el patrón de razonamiento del modelo, no como una base de datos de búsqueda.
- Comienza con instrucciones: Siempre intenta resolver los problemas de comportamiento con instrucciones claras y descriptivas primero. Solo agrega ejemplos si las instrucciones por sí solas no logran el resultado deseado.
Componentes de un ejemplo con pocos intentos
Un ejemplo estándar de pocos ejemplos 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 búsqueda del usuario final. |
| Modelo | [model] |
Representa la respuesta textual o el proceso de pensamiento del agente. |
| Entrada de la herramienta | tool_code |
Demuestra cómo el agente debe estructurar la entrada o la "llamada" 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 y le enseña al agente cómo interpretar y utilizar esos datos en su respuesta final. |
Los ejemplos de aprendizaje con pocos datos deben tener el siguiente formato:
<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>
Instrucciones para definir mejor
Puedes seleccionar una parte del contenido de tus instrucciones y, luego, aparecerá el botón Refinar. 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.
Cómo dar formato a las respuestas del agente
Puedes indicarle al agente cómo formatear sus respuestas de texto para que sean más fáciles de leer. A continuación, se indican las prácticas recomendadas para dar instrucciones sobre el formato:
Fragmentación y espacios en blanco
- Nunca escribas párrafos densos. Los usuarios no leen, sino que escanean.
- Limita los bloques de texto a un máximo de 1 o 2 oraciones.
- Inserta un salto de línea entre cada idea distinta para crear espacio en blanco.
Negritas estratégicas
- Debes poner en negrita los puntos de datos más importantes para que se destaquen de inmediato.
- Siempre en negrita: Nombres de productos, Precios, Fechas, Números de pedidos y Fechas límite
- Ejemplo: "La camiseta clásica cuesta USD 25.00".
Listas sobre 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.
Todos los agentes de la aplicación heredan las instrucciones globales, y se envían al modelo en 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 recomendadas y no recomendadas" generales, las variables compartidas a nivel global y los perfiles de los clientes.