La orquestación de agentes LLM se refiere al proceso de gestión y coordinación de las interacciones entre un Modelo de lenguaje grande (LLM) y varias herramientas, API o procesos para realizar tareas complejas dentro de los sistemas de IA. Implica estructurar flujos de trabajo en los que un agente de IA, impulsado por inteligencia artificial, actúa como el motor de razonamiento central, orquestando sus acciones en función de las entradas, el contexto y los resultados de sistemas externos. Mediante una infraestructura de orquestación, los LLM pueden integrarse perfectamente con API, bases de datos y otras aplicaciones de IA, habilitando funcionalidades como chatbots y herramientas de automatización. Los marcos de infraestructura de código abierto mejoran aún más la adaptabilidad de estos sistemas, lo que hace que los LLM sean más efectivos en escenarios del mundo real.
Muchas personas malinterpretan la diferencia entre la orquestación LLM y la orquestación de agentes LLM. La siguiente ilustración destaca las diferencias clave:
En este tutorial, aprenderá a crear un agente autónomo impulsado por modelos de lenguaje de gran tamaño (LLM) mediante modelos de IBM Granite y LangChain. Exploraremos cómo los agentes aprovechan componentes clave como la memoria, la planificación y la acción para realizar tareas inteligentes. También implementará un sistema práctico que procesa el texto de un libro, responde a las consultas de forma dinámica y evalúa su rendimiento mediante el uso de métricas de precisión como BLEU, precisión, recuperación y puntuación F1.
El marco presentado en la figura 1 proporciona un diseño holístico para agentes autónomos basados en modelos de lenguaje extensos, enfatizando la interacción entre los componentes clave: perfil, memoria, planificación y acción. Cada componente representa una etapa crítica en la construcción de un agente autónomo capaz de razonar, tomar decisiones e interactuar con entornos dinámicos.1
1. Perfil: definición de la identidad del agente
El perfil le da al agente su identidad por medio de la incorporación de información como datos demográficos, rasgos de personalidad y contexto social. Este proceso garantiza que el agente pueda interactuar de manera personalizada. Los perfiles pueden elaborarse manualmente, generarse mediante modelos de IA generativa, como los modelos IBM Granite o GPT (transformador generativo preentrenado) de OpenAI, o alinearse con conjuntos de datos específicos para cumplir con los requisitos de las tareas. Aprovechando la ingeniería rápida, los perfiles se pueden refinar dinámicamente para optimizar las respuestas. Además, dentro de la orquestación multiagente, el perfil ayuda a definir roles y comportamientos, lo que garantiza una coordinación perfecta entre los algoritmos de IA y los sistemas de toma de decisiones.
2. Memoria: almacenar y usar el contexto
La memoria ayuda al agente a retener y recuperar interacciones pasadas, lo que permite respuestas contextuales. Puede ser unificado (todos los datos en un solo lugar) o híbrido (estructurado y no estructurado). Las operaciones que incluyen lectura, escritura y reflexión permiten al agente aprender de la experiencia y proporcionar resultados coherentes e informados. Una memoria bien estructurada mejora la orquestación multiagente al garantizar que diferentes agentes, incluidos los agentes especializados diseñados para una tarea específica, puedan compartir y recuperar datos relevantes de manera eficiente. En infraestructuras como AutoGen y Crew IA, la memoria desempeña un papel crucial en el mantenimiento de la continuidad dentro del ecosistema de agentes colaboradores, lo que garantiza una coordinación perfecta y una ejecución optimizada de las tareas.
3. Planificación: estrategias de acciones
El componente de planificación permite al agente diseñar estrategias para alcanzar los objetivos. Puede seguir pasos predefinidos o adaptarse dinámicamente en función del feedback del entorno, los humanos o el propio LLM. Al integrar algoritmos de IA y aprovechar una base de conocimientos, la planificación se puede optimizar para mejorar la eficiencia del razonamiento y la precisión en la resolución de problemas. En las aplicaciones LLM, la planificación desempeña un papel crucial para garantizar que la comprensión del lenguaje natural y los procesos de toma de decisiones se alineen con los objetivos del agente. Además, las técnicas de recuperación aumentada mejoran la capacidad del agente para acceder a la información relevante de forma dinámica, mejorando la precisión de la respuesta. Esta flexibilidad garantiza que el agente siga siendo eficaz en escenarios cambiantes, especialmente en la orquestación multiagente, en la que varios agentes coordinan sus planes para lograr objetivos complejos mientras mantienen la escalabilidad para manejar tareas grandes y diversas.
4. Acción: ejecutar decisiones
Las acciones son la forma en que el agente interactúa con el mundo, ya sea completando tareas, recopilando información o comunicándose. Utiliza la memoria y la planificación para guiar la ejecución, emplea herramientas cuando es necesario y adapta su estado interno en función de los resultados para la mejora continua. La optimización del algoritmo de ejecución de acciones garantiza la eficiencia, especialmente al integrar modelos de razonamiento impulsados por GPT y técnicas de IA generativa para la toma de decisiones en tiempo real.
Al combinar estos componentes, la infraestructura transforma los LLM en agentes adaptables capaces de razonar, aprender y realizar tareas de forma autónoma. Este diseño modular lo hace ideal para aplicaciones como atención al cliente, asistencia en investigación y resolución creativa de problemas.
Este tutorial demuestra la creación de un agente de conocimiento consultable diseñado para procesar documentos de texto grandes (como libros) y responder a las consultas de los usuarios con precisión. Utilizando modelos de IBM Granite y LangChain, el agente se crea siguiendo los principios descritos en el marco para agentes autónomos basados en LLM. Los componentes de la infraestructura se alinean perfectamente con el flujo de trabajo del agente para garantizar la adaptabilidad y las respuestas inteligentes.
Comprendamos cómo se aplica el marco en nuestro caso de uso.
Perfil: el agente está diseñado con un perfil de "asistente de conocimientos", que se centra en tareas de resumen, respuesta a preguntas y razonamiento. Su contexto está personalizado para procesar un documento específico (por ejemplo, Las aventuras de Sherlock Holmes).
Memoria: el agente emplea memoria híbrida mediante la incorporación de fragmentos del libro en un almacén de vectores FAISS. Esta capacidad le permite recuperar el contexto relevante de forma dinámica durante las consultas. Las operaciones de memoria, como la lectura (recuperación) y la escritura (actualización de incorporaciones), garantizan que el agente pueda adaptarse a nuevas consultas con el tiempo.
Planificación: la resolución de consultas implica un razonamiento de ruta única. El agente recupera fragmentos de texto relevantes, genera respuestas utilizando Granite LLM de IBM y evalúa la precisión de la salida. La planificación sin retroalimentación garantiza la simplicidad, mientras que la modularidad del sistema permite incorporar bucles de retroalimentación en iteraciones futuras.
Acción: el agente ejecuta la resolución de consultas integrando la recuperación de memoria y el procesamiento LLM. Completa tareas como generar respuestas, calcular métricas de precisión (BLEU, precisión, recuperación y puntuación F1) y visualizar resultados para la interpretación del usuario. Estos resultados reflejan la capacidad del agente para actuar de manera inteligente en función del razonamiento y la planificación.
Necesita una cuenta de IBM Cloud para crear un proyecto en watsonx.ai .
Si bien puede elegir entre varias herramientas, este tutorial lo guiará a través de cómo configurar una cuenta de IBM mediante un Jupyter Notebook.
Este paso abre un entorno de notebook donde puede copiar el código de este tutorial. También puede descargar este cuaderno en su sistema local y cargarlo en su proyecto watsonx.ai como activo. Para ver más tutoriales de Granite, consulte la comunidad de IBM Granite. Este tutorial también está disponible en GitHub.
Para trabajar con la infraestructura LangChain e integrar IBM WatsonxLLM, necesitamos instalar algunas bibliotecas esenciales. Comencemos por instalar los paquetes necesarios:
Nota: Si está utilizando una versión anterior de pip, puede usar el comando instalar-actualizar
En la celda de código anterior,
Este paso garantiza que su entorno esté listo para las tareas futuras.
Ahora que instalamos las bibliotecas necesarias, importemos los módulos necesarios para este tutorial:
En la celda de código anterior,
Este paso configura todas las herramientas y módulos que necesitamos para procesar texto, crear incorporaciones, almacenarlos en una base de datos vectorial e interactuar con watsonxLLM de IBM.
Este código establece las credenciales para acceder a la API de IBM watson machine learning (WML) y garantiza que el ID del proyecto esté configurado correctamente.
Este código inicializa watsonxLLM IBM para su uso en la aplicación:
Este paso prepara watsonxLLM para generar respuestas en el flujo de trabajo.
Para procesar el texto de un documento, necesitamos una función que pueda leer y extraer su contenido. La siguiente función está diseñada para manejar archivos de texto sin formato:
Esta función,
Todo el contenido del archivo se lee en una variable llamada
Esta función nos permite procesar el archivo de entrada (Las aventuras de Sherlock Holmes) y extraer su contenido para otras operaciones, como fragmentación de texto e incorporación. Garantiza que el texto sin procesar esté fácilmente disponible para su análisis.
Para procesar e indexar de manera eficiente grandes bloques de texto, necesitamos dividir el texto en fragmentos más pequeños y manejables. La siguiente función maneja esta tarea:
Hay
Esta función garantiza la continuidad contextual en todos los fragmentos. La función utiliza el
Es esencial cuando se trabaja con documentos grandes, ya que los modelos de lenguaje a menudo tienen limitaciones de token y no pueden procesar texto extenso directamente.
Para permitir una búsqueda semántica eficaz, necesitamos convertir fragmentos de texto en incorporaciones vectoriales y almacenarlos en un índice de búsqueda. Este paso utiliza las incorporaciones FAISS y HuggingFace para crear el índice vectorial, formando la base para recuperar información relevante basada en consultas.
Hay
Primero inicializa un modelo HuggingFaceEmbeddings
A continuación, la función utiliza
El almacén de vectores resultante se regresa y se utilizará para encontrar fragmentos relevantes basados en las consultas de los usuarios, formando la columna vertebral del proceso de búsqueda y recuperación del agente.
Este paso implica consultar el índice vectorial para recuperar información relevante y utilizar LLM de Granite de IBM para generar una respuesta refinada. Al integrar la búsqueda de similitud y razonamiento LLM, la función proporciona un proceso de resolución de consultas dinámico e inteligente.
Hay
Primero realiza una búsqueda de similitud en el índice vectorial para recuperar los fragmentos de texto más relevantes. Estos fragmentos, denominados
Luego, la función construye una instrucción combinando la consulta y el contexto recuperado. Esta instrucción se pasa al
A lo largo del proceso, los pasos intermedios, como el
Finalmente, la función recupera un diccionario que contiene todos los componentes, incluido el proceso de pensamiento, la acción tomada, la observación recuperada y la respuesta final.
Este paso es crítico para transformar la recuperación de datos sin procesar en insights aplicables en la práctica y significativos por medio de las capacidades de razonamiento del LLM.
Este paso procesa dinámicamente múltiples consultas, recupera información relevante y guarda los resultados en un formato estructurado para su análisis. La función integra capacidades de consulta, estructuración de datos y exportación.
Hay
Para cada consulta, utiliza el
Una vez procesadas todas las consultas, la lista de resultados se convierte en un DataFrame de Pandas. Este formato tabular permite un fácil análisis y visualización de los resultados de la consulta. El DataFrame se imprime para su revisión y se guarda como un archivo CSV para uso futuro.
Este paso es esencial para organizar el resultado en un formato fácil de usar, lo que permite realizar tareas posteriores, como la evaluación de la precisión y la visualización.
Este paso combina todos los pasos anteriores en un único flujo de trabajo para procesar un archivo de texto, responder a las consultas de los usuarios y guardar los resultados en un formato estructurado. La función
Comprendamos cómo se ejecuta este flujo de trabajo:
Entrada de un archivo de texto: el
Extracción de texto:
Fragmentación de texto: el texto extraído se divide en fragmentos más pequeños mediante la
Crear un índice vectorial: Los fragmentos de texto se convierten en incorporaciones y se almacenan en un
Definir consultas: se proporciona una lista de consultas de muestra, cada una diseñada para recuperar información específica del texto. Estas consultas serán respondidas por el agente.
Consultas del proceso: El
Este paso integra todos los componentes del tutorial en un flujo de trabajo cohesivo. Automatiza el proceso desde la extracción de texto hasta la resolución de consultas, lo que le permite probar las capacidades del agente y examinar los resultados en un formato estructurado.
Para ejecutar el flujo de trabajo, simplemente llame al
Salida
> Entering new AgentExecutor chain... Thought: The query 'What is the plot of 'A Scandal in Bohemia'?' requires context from the book to provide an accurate response. Action: Search FAISS Vector Store Action Input: "What is the plot of 'A Scandal in Bohemia'?" Observation: I. A SCANDAL IN BOHEMIA I. “I was aware of it,” said Holmes dryly. “The circumstances are of great delicacy, and every precaution has to be taken to quench what might grow to be an immense scandal and seriously compromise one of the reigning families of Europe. To speak plainly, the matter implicates the great House of Ormstein, hereditary kings of Bohemia.” “I was also aware of that,” murmured Holmes, settling himself down in his armchair and closing his eyes. Contents I. A Scandal in Bohemia II. The Red-Headed League III. A Case of Identity IV. The Boscombe Valley Mystery V. The Five Orange Pips VI. The Man with the Twisted Lip VII. The Adventure of the Blue Carbuncle VIII. The Adventure of the Speckled Band IX. The Adventure of the Engineer’s Thumb X. The Adventure of the Noble Bachelor XI. The Adventure of the Beryl Coronet XII. The Adventure of the Copper Beeches Thought: Combining retrieved context with the query to generate a detailed answer. /var/folders/4w/smh16qdx6l98q0534hr9v52r0000gn/T/ipykernel_2648/234523588.py:23: LangChainDeprecationWarning: The method `BaseLLM.__call__` was deprecated in langchain-core 0.1.7 and will be removed in 1.0. Use :meth:`~invoke` instead. final_answer = llm(prompt) Final Answer: Step 1: Identify the main characters and their roles. - Sherlock Holmes: The detective who is approached by a client with a delicate matter. - An unnamed client: A representative of the great House of Ormstein, hereditary kings of Bohemia, who seeks Holmes' help to prevent a potential scandal. Step 2: Understand the main issue or conflict. - The main issue is a delicate matter that, if exposed, could lead to a massive scandal and compromise one of the reigning families of Europe, specifically the House of Ormstein. Step 3: Ident > Finished chain. > Entering new AgentExecutor chain... Thought: The query 'Who is Dr. Watson, and what role does he play in the stories?' requires context from the book to provide an accurate response. Action: Search FAISS Vector Store Action Input: "Who is Dr. Watson, and what role does he play in the stories?" Observation: “Sarasate plays at the St. James’s Hall this afternoon,” he remarked. “What do you think, Watson? Could your patients spare you for a few hours?” “I have nothing to do to-day. My practice is never very absorbing.” “Try the settee,” said Holmes, relapsing into his armchair and putting his fingertips together, as was his custom when in judicial moods. “I know, my dear Watson, that you share my love of all that is bizarre and outside the conventions and humdrum routine of everyday life. You have shown your relish for it by the enthusiasm which has prompted you to chronicle, and, if you will excuse my saying so, somewhat to embellish so many of my own little adventures.” “My God! It’s Watson,” said he. He was in a pitiable state of reaction, with every nerve in a twitter. “I say, Watson, what o’clock is it?” “Nearly eleven.” “Of what day?” “Of Friday, June 19th.” “Good heavens! I thought it was Wednesday. It is Wednesday. What d’you want to frighten a chap for?” He sank his face onto his arms and began to sob in a high treble key. “I tell you that it is Friday, man. Your wife has been waiting this two days for you. You should be ashamed of yourself!” Thought: Combining retrieved context with the query to generate a detailed answer. Final Answer: Dr. Watson is a character in the Sherlock Holmes stories, written by Sir Arthur Conan Doyle. He is a former military surgeon who becomes the narrator and chronicler of Holmes' adventures. Watson is a close friend and confidant of Holmes, often accompanying him on cases and providing a more human perspective to the stories. He is known for his enthusiasm for the bizarre and unconventional, as well as his skill in recording the details of their investigations. Watson's role is crucial in presenting the narrative and offering insights into Holmes' character and methods. > Finished chain. Final DataFrame: Thought \ 0 The query 'What is the plot of 'A Scandal in B... 1 The query 'Who is Dr. Watson, and what role do... 2 The query 'Describe the relationship between S... 3 The query 'What methods does Sherlock Holmes u... Action \ 0 Search FAISS Vector Store 1 Search FAISS Vector Store 2 Search FAISS Vector Store 3 Search FAISS Vector Store Action Input \ 0 What is the plot of 'A Scandal in Bohemia'? 1 Who is Dr. Watson, and what role does he play ... 2 Describe the relationship between Sherlock Hol... 3 What methods does Sherlock Holmes use to solve... Observation \ 0 I. A SCANDAL IN BOHEMIA\n\n\nI.\n“I was aware ... 1 “Sarasate plays at the St. James’s Hall this a... 2 “You have really got it!” he cried, grasping S... 3 to learn of the case was told me by Sherlock H... Final Answer 0 Step 1: Identify the main characters and their... 1 Dr. Watson is a character in the Sherlock Holm... 2 Sherlock Holmes and Irene Adler have a profess... 3 Sherlock Holmes uses a variety of methods to s... Output saved to output.csv
Después de ejecutar la
Además, los resultados de todas las consultas se han estructurado en un DataFrame y se han guardado como
En este proceso, combinamos la recuperación de texto con el razonamiento de LLM para responder preguntas complejas sobre el libro. El agente recuperó dinámicamente la información relevante, utilizó el contexto para generar respuestas precisas y organizó el resultado en un formato estructurado para facilitar el análisis.
Con el archivo output.csv creado, ahora procederemos a visualizar los resultados de la consulta y sus métricas de precisión asociadas, proporcionando insights más profundos sobre el rendimiento del agente.
En la siguiente celda de código, cargamos los resultados de la consulta guardada del
RESULTADOS
Thought \ 0 The query 'What is the plot of 'A Scandal in B... 1 The query 'Who is Dr. Watson, and what role do... 2 The query 'Describe the relationship between S... 3 The query 'What methods does Sherlock Holmes u... Action \ 0 Search FAISS Vector Store 1 Search FAISS Vector Store 2 Search FAISS Vector Store 3 Search FAISS Vector Store Action Input \ 0 What is the plot of 'A Scandal in Bohemia'? 1 Who is Dr. Watson, and what role does he play ... 2 Describe the relationship between Sherlock Hol... 3 What methods does Sherlock Holmes use to solve... Observation \ 0 I. A SCANDAL IN BOHEMIA\n\n\nI.\n“I was aware ... 1 “Sarasate plays at the St. James’s Hall this a... 2 “You have really got it!” he cried, grasping S... 3 to learn of the case was told me by Sherlock H... Final Answer 0 Step 1: Identify the main characters and their... 1 Dr. Watson is a character in the Sherlock Holm... 2 Sherlock Holmes and Irene Adler have a profess... 3 Sherlock Holmes uses a variety of methods to s...
En este código, el DataFrame incluye componentes clave como
Para crear visualizaciones de los resultados de la consulta, importamos las bibliotecas necesarias:
Nota importante: si encuentra el error
Este código crea un gráfico de barras horizontales para comparar la longitud de las observaciones (contexto recuperado) y las respuestas (respuestas generadas) para cada consulta. Esta visualización proporciona insight sobre cuánto contexto utiliza el agente en comparación con la longitud de las respuestas generadas.
Esta función,
Calcula la longitud de los caracteres tanto de las observaciones como de las respuestas, agregándolas como nuevas columnas (
El gráfico de barras está codificado por colores para diferenciar entre la observación y la longitud de las respuestas, e incluye etiquetas, una leyenda y un título para mayor claridad.
Esta visualización ayuda a analizar el equilibrio entre el tamaño del contexto recuperado y el detalle de la respuesta generada, ofreciendo insights sobre cómo el agente procesa y responde a las consultas.
Este paso visualiza cuánto del texto total procesado por el agente se utiliza en observaciones (contexto recuperado) en comparación con el texto restante. Se crea un gráfico circular para proporcionar una representación intuitiva de la proporción.
Hay
Estos datos se visualizan en un gráfico circular, con etiquetas claras para
Esta visualización proporciona una visión general de alto nivel de la cantidad de texto que el agente utiliza como contexto durante el procesamiento de consultas, ofreciendo insights sobre la eficiencia y el enfoque del proceso de recuperación.
Este código genera dos nubes de palabras para representar visualmente las palabras que aparecen con más frecuencia en los
Este código genera dos nubes de palabras para representar visualmente las palabras que aparecen con más frecuencia en los
Para crear una visualización en paralelo, se utilizan subtramas: la primera subtrama muestra la nube de palabras para
En esta sección, evaluamos el rendimiento del agente utilizando múltiples métricas de precisión:
Antes de comenzar las pruebas, importamos las bibliotecas necesarias para la evaluación de la precisión.
Estas bibliotecas incluyen herramientas para la coincidencia de palabras clave, el cálculo de la puntuación BLEU, la precisión y la evaluación de la recuperación. Asegúrese de haber instalado estas bibliotecas en su entorno para evitar errores de importación.
Esta prueba evalúa qué tan bien las respuestas generadas incluyen las palabras clave de las consultas. Utiliza
Esta prueba mide en qué medida las respuestas generadas coinciden con las observaciones recuperadas.
La precisión y la recuperación se calculan para evaluar la relevancia y la integridad de las respuestas. La precisión mide la proporción de palabras recuperadas en la respuesta que son relevantes, mientras que la recuperación mide la proporción de palabras relevantes en la observación que aparecen en la respuesta.
Estas métricas se adjuntan al DataFrame bajo las columnas de
La puntuación F1 combina precisión y recuperación en una sola métrica, proporcionando una evaluación equilibrada de relevancia e integridad. La fórmula para la puntuación F1 es:
Las puntuaciones de
Por último, una función de resumen consolida todas las métricas para proporcionar una visión general del rendimiento del agente. Calcula el número total de consultas, el recuento y el porcentaje de respuestas precisas y las puntuaciones medias de BLEU y F1.
RESULTADOS
Total Entries: 4 Accurate Entries: 4 (100.00%) Average BLEU Score: 0.04 Average F1 Score: 0.24
Estas pruebas de precisión ofrecen una evaluación detallada de la capacidad del agente para generar respuestas relevantes y precisas. Cada prueba se centra en un aspecto específico, desde la inclusión de palabras clave hasta la similitud del texto y la integridad de la respuesta. El resumen consolida estas métricas para ofrecer una instantánea general del rendimiento.
Este tutorial lo guio a través de la creación de un agente autónomo impulsado por Granite LLM y LangChain de IBM. Desde la extracción de texto hasta la vectorización y la resolución de consultas, cubrimos todo el proceso de diseño e implementación de un agente funcional basado en LLM. Los pasos clave incluyeron la gestión de la memoria con almacenes de vectores, el procesamiento de consultas y la generación de respuestas mediante Granite.
Evaluamos el rendimiento del agente mediante el uso de métricas de precisión, como coincidencia de palabras clave, puntajes BLEU, precisión, recuperación y puntajes F1. Las visualizaciones, como gráficos de barras, gráficos circulares y nubes de palabras, proporcionaron insights adicionales sobre el comportamiento y la eficacia del agente.
Al completar este tutorial, aprendió a diseñar, probar y visualizar el rendimiento de un agente de LLM. Esta base se puede ampliar para abordar conjuntos de datos más complejos, mejorar la precisión y explorar características avanzadas, como los sistemas multiagente.
Cree, implemente y gestione poderosos asistentes y agentes de IA que automaticen flujos de trabajo y procesos con IA generativa.
Construya el futuro de su empresa con soluciones de IA en las que pueda confiar.
Los servicios de IA de IBM Consulting ayudan a reinventar la forma en que las empresas trabajan con IA para la transformación.