Funcionamiento de los agentes y copilotos con los LLM
Tanto los agentes como los copilotos amplían las capacidades de un LLM invocando de forma inteligente la funcionalidad externa, como el envío de un correo electrónico.
- Un agente es una inteligencia artificial que puede responder a preguntas y automatizar procesos para los usuarios. Los agentes pueden determinar qué funciones cumplirán el objetivo de un usuario y, a continuación, llamar a esas funciones en nombre del usuario.
- Un copiloto es un tipo de agente que funciona en paralelo con un usuario. A diferencia de un agente, un copiloto no está totalmente automatizado, sino que se basa en la interacción del usuario. Un copiloto puede ayudar a un usuario a completar una tarea proporcionando sugerencias y recomendaciones.
Por ejemplo, supongamos que va a compilar una aplicación asistente de chat de correo electrónico. Junto con el LLM, también necesitará un complemento para realizar acciones relacionadas con el correo electrónico, así como complementos para buscar, resumir, determinar la intención y similares. Puede usar funciones nativas, complementos predefinidos y sus propios complementos personalizados.
La creación de complementos es solo la mitad de la batalla: todavía tienes que invocar las funciones correctas en el momento adecuado, un proceso que puede ser propenso a errores e ineficaz. Un agente puede controlarlo mejor.
Un agente decide automáticamente qué secuencia de funciones puede usar un LLM para alcanzar un objetivo de usuario. Por ejemplo, supongamos que tiene una aplicación de chat que revisa los nuevos elementos de la bandeja de entrada y determina qué acción requiere cada elemento. Si configura un agente, puede organizar las funciones de complemento necesarias y realizar los pasos automáticamente.
Cada agente tiene tres bloques de creación principales: un rol, complementos y planificadores.
- Los roles determinan la manera en que los agentes responden a los usuarios o realizan acciones.
- Los complementos permiten a los agentes recuperar información del usuario u otros sistemas. Puede usar complementos pregenerados y sus propios complementos personalizados.
- Los planificadores permiten a los agentes planear cómo usar complementos disponibles.
El rol de un agente es su identidad: los complementos y planificadores que usa el agente son herramientas, pero el rol determina cómo usa esas herramientas. Utilice las instrucciones en una solicitud para establecer el rol de un agente.
Por ejemplo, puede usar instrucciones para indicar a un agente que ayuda a las personas a administrar correos electrónicos y a explicar sus decisiones a medida que las toma. La solicitud podría tener un aspecto similar al siguiente:
prompt = $"""
<message role="system">
You are a friendly assistant helping people with emails.
When you decide to perform an action, explain your decision and then perform the action.
</message>
"""
Puede usar complementos para hacer cosas que un LLM no puede hacer solo, como recuperar datos de orígenes de datos externos o completar tareas en el mundo real.
Por ejemplo, un LLM no puede enviar un correo electrónico, por lo que para agregar esa función a una aplicación de chat, tendría que crear un complemento. Para procesar el texto de los correos electrónicos, puede usar complementos principales, como ConversationSummaryPlugin.
Asegúrese de documentar claramente las funciones de los complementos: los planificadores usan esta información para determinar qué funciones están disponibles.
Un planificador puede analizar las funciones disponibles y crear formas alternativas de alcanzar el objetivo.
Llamar a las funciones del complemento no siempre es eficaz. Por ejemplo, supongamos que quiere sumar los números entre 1 y 100. Podría llamar a un complemento matemático, pero el LLM tendría que realizar una llamada independiente para cada número.
Además, la mejor secuencia y combinación de funciones para alcanzar un objetivo depende de los detalles. Por ejemplo, supongamos que va a crear una aplicación auxiliar de chat de correo electrónico, por lo que incluye un complemento para habilitar el envío de correos electrónicos. Sin embargo, algunos correos electrónicos pueden necesitar una acción diferente, como una convocatoria de reunión sin RSVP: no es necesario enviar una respuesta, pero sí agregar un elemento de calendario. Un planificador examina todas las funciones disponibles y presenta formas eficaces de alcanzar los objetivos.
La automatización de procesos tiene muchas ventajas, pero a veces el usuario debe tomar decisiones a lo largo del proceso. El agente no puede automatizar las acciones de usuario. Ahí es donde entran los copilotos.
El agente de la aplicación de chat de correo electrónico podría generar el siguiente plan para enviar un correo electrónico:
- Obtener la dirección de correo electrónico y el nombre del usuario
- Obtener la dirección de correo electrónico del destinatario
- Obtener el tema del correo electrónico
- Generar el asunto y el cuerpo del correo electrónico
- Enviar el correo
Muy útil, pero ¿qué ocurre si el usuario no le gusta el cuerpo del correo electrónico? Un copiloto agrega un paso de interacción del usuario al plan:
- Obtener la dirección de correo electrónico y el nombre del usuario
- Obtener la dirección de correo electrónico del destinatario
- Obtener el tema del correo electrónico
- Generar el asunto y el cuerpo del correo electrónico
- Revisión del correo electrónico con el usuario y realizar ajustes
- Enviar el correo
Para empezar a trabajar con los copilotos, pruebe el Copiloto de chat de Semantic Kernel, una aplicación de referencia para crear una experiencia de chat con un agente de inteligencia artificial.
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: