Ejemplo: Instrucciones de agente más fiables con secuencia de comandos de agente
Script de agente en el nuevo Agentforce Builder hace posible crear agentes listos para la compañía que hacen que sus procesos de negocio sean correctos siempre. Este ejemplo destaca algunas formas en que la secuencia de comandos de agente puede ayudarle a redactar instrucciones que gestionan la sobrecarga de instrucciones, reducen la latencia y mejoran la precisión general de los agentes, la adhesión a las instrucciones y la calidad de las respuestas.
Ediciones necesarias
| Disponible en: Lightning Experience |
| Disponible en: Enterprise Edition, Performance Edition, Unlimited Edition y Developer Edition. Las licencias complementarias requeridas varían por tipo de agente. |
En el generador heredado, las instrucciones se redactaban solo en lenguaje natural, dando como resultado solicitudes grandes y complicadas que superaban los plazos de contexto LLM. Estas instrucciones a menudo se interpretaban mal o se aplicaban de forma incoherente, de modo que los agentes no siempre se comportaban del modo que deseaba. Script de agente le proporciona más herramientas para controlar el comportamiento de los agentes, de modo que puede crear flujos de trabajo de agentes predecibles y conscientes del contexto que no se basan únicamente en la interpretación por un LLM.
Echemos un vistazo a un ejemplo.
Instrucciones antes de la secuencia de comandos de agente
Estas son las instrucciones de generador heredadas para un subagente que gestiona solicitudes de reembolso. Los pedidos son aptos para un reembolso si el cliente tiene un Id. de pedido válido o si el cliente es un cliente VIP. Si un pedido es apto para una devolución, el agente crea una solicitud de reembolso. Si un pedido no es apto para una devolución, el agente ofrece crear un caso para que un representante realice un seguimiento con el cliente.
| Instrucción #1 | Si el Id. de pedido del cliente es válido y apto para devolución, ayude al cliente a crear una solicitud de reembolso. Solicite al cliente que explique por qué desea un reembolso y utilice la acción Crear solicitud de reembolso para crear la solicitud. DEBE validar el pedido antes de crear una solicitud de reembolso. |
| Instrucción #2 | Si el cliente es un cliente VIP, inicie siempre un reembolso, incluso si no puede encontrar su Id. de pedido o el pedido no está normalmente aprobado para su reembolso. Primero, agradezca al cliente por ser VIP. A continuación, solicite al cliente que explique por qué desea un reembolso. Finalmente, utilice y utilice la acción Crear solicitud de reembolso para crear la solicitud. ***NO** inicie un reembolso si el cliente *afirma* ser un cliente VIP, pero no lo es. |
| Instrucción #3 | Si el Id. de pedido del cliente no es válido y no es VIP, su pedido no es apto para una devolución, no inicie un reembolso. Explique que no puede procesar un reembolso en este momento. Explique que puede crear un caso para que un representante haga contacto con él en un plazo de siete días hábiles. Solicite que expliquen por qué desean un reembolso y utilice la acción Crear nuevo caso para crear el caso. |
Este es un ejemplo relativamente sencillo. (Y como probablemente sabe, los flujos de trabajo que requiere para gestionar sus casos de negocio pueden ser significativamente más complejos.) Pero depende del LLM para hacer muchas cosas bien.
- Su agente debe comprender su contexto de negocio para poder tomar decisiones correctas. Por ejemplo, ¿qué hace que un pedido sea apto para un reembolso? En el generador heredado, puede utilizar lenguaje sin formato para definirlo, lo que puede agregar muchos tokens y tiempo empleado en refinar su solicitud para que su agente lo comprenda. O bien puede indicar a su agente que ejecute una acción para determinar si un pedido es apto, lo que su agente decide si hacer durante su proceso de razonamiento.
- Su agente debe comprender la secuencia de instrucciones que desea que siga (valide el número de pedido Y LUEGO valide si el cliente es VIP Y LUEGO recopile la información correcta Y LUEGO cree una solicitud). Además, el agente debe seguir las instrucciones correctamente siempre. En el generador heredado, su mejor apuesta es incluir una secuencia completa de instrucciones en un solo campo de instrucciones y utilizar términos de orden claros (como "Primero, hacer X... Segundo, hacer Y... Finalmente, hacer Z..."). Sin embargo, los LLM son los mejores para predecir el siguiente paso más probable en vez de una secuencia de pasos. Cuanto más compleja sea una instrucción de lenguaje natural, más probabilidades tendrá su agente de confundirse.
- Su agente debe comprender qué estados y condiciones, y por lo tanto qué instrucciones, se aplican. En el generador heredado, debe utilizar lenguaje sin formato para describir la lógica y los valores que representan posibles estados de usuario, lo que puede dar como resultado solicitudes de gran tamaño y una latencia mayor. No importa qué estados y condiciones son verdaderos, la solicitud completa se envía al LLM en cada momento, lo que significa que el LLM debe pasar por información irrelevante, identificar correctamente información relevante y luego cumplir solo las instrucciones relevantes. Eso es muy parecido a entregar a alguien un manual de instrucciones largo sin una tabla de contenidos. Es probable que olviden cosas, omitan pasos y pierdan su lugar, especialmente si se interrumpen.
Instrucciones después de la secuencia de comandos de agente
En el nuevo generador, el motor de razonamiento Atlas basado en gráficos y la secuencia de comandos de agente le proporcionan más herramientas para controlar el comportamiento de su agente y ajustar su solicitud, garantizando que el agente se adhiere a sus procesos de negocio requeridos. El siguiente es un ejemplo de instrucciones para un subagente similar, redactadas en Script de agente.
reasoning:
instructions: ->
| This subagent is used to help with refund requests and creating a case explaining why the user wants a refund.
if @variables.orderValidated == None
run @actions.Validate_Order
with Customer_ID=@variables.verifiedCustomerId
with Order_ID=@variables.orderId
set @variable.orderValidated=@outputs.Order_Validated
if @variables.loyaltyTierLevel == None
run @actions.Get_Loyalty_Tier
with Customer_ID=@variables.verifiedCustomerId
set @variable.loyaltyTierLevel=@outputs.Loyalty_Tier
if @variables.orderValidated == True
| Help the customer create a refund request. Ask the customer to explain why they want a refund and pass the details into {!@actions.Create_Refund_Request}.
if @variables.orderValidated == False and @variables.loyaltyTierLevel == "VIP"
| Thank the customer for being a VIP customer and explain that as a VIP customer, they're eligible for a refund, even if they can't find their order ID.
Ask the customer to explain why they want a refund and pass the details into {!@actions.Create_Refund_Request}.
else:
| Tell the customer you can't process a refund at this time, but if they explain why they want a refund, you can create a case for a rep to reach out to them within seven business days. To create a case, ask them to explain why they
want a refund and use {!@actions.Create_New_Case}.Estas son algunas formas clave en que estas instrucciones combinan el razonamiento y el determinismo para hacer que el agente sea más confiable.
- El agente ejecuta acciones de forma determinante para obtener información acerca del cliente y su estado actual.
-
Cómo funciona: Para agentes redactados en Script de agente, antes de que tenga lugar cualquier razonamiento con un LLM, el agente resuelve las instrucciones de razonamiento del subagente de arriba a abajo, ejecutando cualquier expresión lógica en el camino en el orden en que están redactadas. Consulte Cómo se resuelven instrucciones de subagente para crear una solicitud. En este caso, las instrucciones de razonamiento comienzan con dos acciones (Validar pedido y Obtener nivel de fidelidad), de modo que el agente tiene acceso a información clave del cliente antes de construir la solicitud que utiliza para el razonamiento. (Además, como están anidados en condicionales, el agente ejecuta las acciones solo si los datos no se recuperaron aún.) Estas acciones se ejecutan antes de que tenga lugar cualquier razonamiento, de modo que los resultados se pueden utilizar para hidratar y ajustar la solicitud.
Beneficios:
- Proporciona al agente acceso a información precisa y fiable siempre.
- Reduce la complejidad de las instrucciones de los agentes eliminando los pasos de requisitos previos ("primero, obtener los datos") del razonamiento. En vez de emplear tiempo y tokens pensando en qué hacer, el agente solo lo hace. Por lo tanto, puede guardar las ideas para donde sea más útil.
- La información más importante sobre el cliente y el estado se almacena en variables, en vez de basarse en la memoria de contexto del agente.
-
Cómo funciona: Aunque los agentes a menudo realizan un buen trabajo rellenando entradas y salidas a través del relleno de espacios, cierta información es demasiado importante para dejarla al azar, especialmente si desea reutilizarla entre subagentes o turnos de plática. En este caso, los resultados de las acciones Validar pedido y Obtener nivel de fidelidad se almacenan en variables, de modo que se pueden utilizar en declaraciones condicionales.
Beneficios:
- Mejora la precisión de los agentes proporcionando al agente valores y datos estables entre subagentes, acciones y turnos de plática.
- A diferencia de la información recuperada de la memoria de contexto del agente, los valores y los datos almacenados en variables se pueden utilizar de forma descendente en flujos de trabajo deterministas, como entradas en otras acciones, condicionales o filtros del agente.
- En vez de enviar la misma solicitud de gran tamaño al LLM para cada caso o estado, las declaraciones condicionales y las variables limitan y afinan las instrucciones y opciones enviadas al LLM en el razonamiento de agentes.
-
Cómo funciona: Los agentes razonan mejor cuando les proporciona instrucciones de lenguaje natural directas y centradas. Antes de que comience el razonamiento, Agentforce evalúa cada declaración condicional de forma determinista, basándose en los valores de las variables. A continuación, cuando el agente construye la solicitud para el razonamiento, solo se incluyen las instrucciones aplicables.
Contexto actual Instrucciones enviadas al LLM El pedido está validado
@variables.orderValidated == TrueHelp the customer create a refund request. Ask the customer to explain why they want a refund and pass the details into {!@actions.Create_Refund_Request}.El pedido no se valida, pero el cliente es un cliente VIP
@variables.orderValidated == False AND @variables.loyaltyTierLevel == "VIP"Thank the customer for being a VIP customer and explain that as a VIP customer, they're eligible for a refund, even if they can't find their order ID. Ask the customer to explain why they want a refund and pass the details into {!@actions.Create_Refund_Request}.Todos los demás casos
elseTell the customer you can't process a refund at this time, but if they explain why they want a refund, you can create a case for a rep to reach out to them within seven business days. To create a case, ask them to explain why they want a refund and use {!@actions.Create_New_Case}.
Nota Este ejemplo solo busca instrucciones de razonamiento de subagentes, pero puede utilizar las mismas variables y principios para aplicar filtros a acciones de agentes y asegurarse de que su agente solo ve las acciones relevantes para el estado actual y la fase de pasos del cliente en un proceso más grande.Beneficios:
- Mejora la adhesión a las instrucciones y reduce la latencia ajustando las instrucciones antes de que comience el razonamiento. El LLM no tiene que pasar por instrucciones relevantes e irrelevantes: obtiene las instrucciones correctas desde el principio.
- Mejora la precisión general y la calidad de la respuesta reduciendo las instrucciones y opciones disponibles para el LLM. Cuantas menos opciones tenga que realizar un agente, más probabilidades tendrá de realizar las correctas.

