Tabla de contenidos

Introducción

Poco más de un año después del lanzamiento de ChatGPT, está claro que la percepción pública de la «IA» ha cambiado radicalmente. En parte se debe a una mayor concienciación general, pero sobre todo a la constatación de que los sistemas basados en IA pueden ser (¿ya lo son?) capaces de alcanzar un nivel de competencia y rendimiento humano. En muchos sentidos, ChatGPT ha servido como prueba de concepto para la IA en su conjunto. El trabajo en esta demostración comenzó hace más de medio siglo y ahora ha aportado pruebas convincentes de que estamos más cerca de una realidad en la que podemos «crear máquinas que realicen funciones que requieren inteligencia cuando las realizan personas», tomando prestada la definición de Ray Kurzweil. No es de extrañar, pues, que los debates y el desarrollo en torno a la ingeniería de agentes de IA se hayan disparado en los últimos meses. Son la encarnación de las aspiraciones a las que siempre ha aspirado la IA.

Para ser claros, el concepto de agentes de IA no es nuevo. C-3PO, de La Guerra de las Galaxias, es la IA encarnada por excelencia, capaz de comprender el lenguaje natural, dialogar y actuar de forma autónoma. En el ámbito académico, el libro de texto de Norvig y Russell sobre IA, Artificial Intelligence: A Modern Approach, de Norvig y Russell, afirma que los agentes inteligentes son el principal tema unificador. Las ideas en torno a los agentes de IA, nacidas en la ciencia o en la ficción, parecen todas un poco más realizables con la llegada de modelos como ChatGPT, Claude y Gemini, ampliamente competentes en diversos dominios del conocimiento y dotados de una gran capacidad de comprensión y de diálogo a nivel humano. Si añadimos nuevas capacidades como la «visión» y la llamada a funciones, el escenario está preparado para la proliferación del desarrollo de agentes de IA.

A medida que avanzamos en el camino hacia el desarrollo de agentes de IA, parece necesario empezar a pasar de la ingeniería de prompts a algo más amplio, como la ingeniería de agentes, y establecer los marcos, metodologías y modelos mentales adecuados para diseñarlos de forma eficaz. En este artículo, me propongo explorar algunas de las ideas y preceptos clave de la ingeniería de agentes en el contexto del LLM.

Exploremos a alto nivel las secciones clave del Marco de Ingeniería de Agentes. Comenzamos con los «Requisitos de las capacidades del agente», en los que pretendemos definir claramente lo que debe hacer el agente y su nivel de competencia. En «Ingeniería y diseño de agentes» evaluamos las tecnologías disponibles y empezamos a pensar en la anatomía y orquestación de nuestros agentes.

Esta articulación inicial del marco pretende ser un modelo mental práctico y es cierto que no es exhaustivo en todos los frentes. Pero creo que es útil empezar por algún sitio y luego perfeccionarlo y mejorarlo con el tiempo.

El marco de ingeniería de agentes

Introducción

¿Cuál es el propósito de construir un agente de IA? ¿Tiene un trabajo o una función? ¿Acciones en apoyo de objetivos? ¿O objetivos en apoyo de acciones? ¿Es mejor un agente con múltiples capacidades que un enjambre de agentes para un trabajo concreto? Lo bueno del lenguaje humano es que es flexible y nos permite ampliar metafóricamente los conceptos en muchas direcciones. El inconveniente de esto es que puede llevar a la ambigüedad. Al articular el marco, intento evitar a propósito las distinciones semánticas entre términos clave, ya que muchos de ellos pueden utilizarse indistintamente. En lugar de ello, nos esforzamos por sacar a la superficie conceptos que se generalicen en su aplicación a la Ingeniería de Agentes de IA en sentido amplio. Como resultado, el marco en esta etapa es más un modelo mental que pretende guiar el proceso de pensamiento en torno a la Ingeniería de Agentes. Las ideas centrales son relativamente sencillas, como se puede ver en el siguiente gráfico:

Ingeniería
  • A los agentes de IA se les asigna(n) Trabajo(s)
  • Los trabajos requieren acciones para completarse
  • Para realizar la(s) acción(es) se requieren Capacidades
  • Las capacidades tienen un nivel de competencia necesario.
  • El nivel de competencia requerido requiere tecnologías y técnicas
  • Las tecnologías y técnicas requieren orquestación+

Requisitos de las capacidades del agente

El trabajo a realizar

El paso inicial en el diseño de un agente de IA es definir claramente lo que el agente debe hacer. ¿Cuáles son los principales trabajos, tareas u objetivos que debe cumplir el agente? Esto puede enmarcarse en un objetivo de alto nivel o desglosarse en tareas específicas. Puede que decida utilizar un enfoque de enjambre multiagente y asignar a cada agente una tarea. El lenguaje y el nivel de detalle pueden variar. Por ejemplo:

  • El trabajo de un bot de chat de comercio electrónico podría consistir en gestionar consultas generales, analizar el comportamiento de los clientes y hacer recomendaciones de productos.
  • El trabajo de un agente de creación de contenidos podría consistir en aportar ideas y redactar artículos o entradas de blog.

Nótese que en ambos casos, etiquetas como trabajos, tareas, objetivos, etc. podrían utilizarse indistintamente en el contexto de lo que se supone que debe hacer el agente.

Las acciones a realizar para llevar a cabo el trabajo

Una vez definidas las tareas a realizar, el siguiente paso es determinar las acciones específicas que el agente debe llevar a cabo en relación con esa tarea. Se pasa de definir simplemente lo que el agente debe conseguir a especificar cómo lo conseguirá mediante acciones concretas. En esta fase también es importante empezar a considerar el nivel adecuado de autonomía del agente. Por ejemplo:

Para un agente de creación de contenidos, las acciones podrían incluir:

  • Llamar a otro agente para obtener información sobre tendencias de contenidos.
  • Generar una lista de ideas de contenidos basada en esas tendencias y en las preferencias del público objetivo.
  • Redactar artículos o entradas de blog.
  • Recibir instrucciones de un usuario humano sobre ediciones y ajustes.

El agente de creación de contenido puede generar y redactar contenido de forma autónoma, con un editor humano brindando la aprobación final. O se puede contratar a un editor agente independiente para realizar una primera revisión antes de que intervenga un editor humano.

Las capacidades necesarias

Ahora que hemos delineado las acciones que nuestros agentes deben tomar para realizar el trabajo, procedemos a articular las capacidades necesarias para permitir esas acciones. Pueden incluir todo, desde diálogo en lenguaje natural, recuperación de información, generación de contenido, análisis de datos, aprendizaje continuo y más. También se pueden expresar en un nivel más técnico, como llamadas API, llamadas a funciones, etc. Por ejemplo, para nuestro agente de creación de contenido, las capacidades deseadas podrían ser:

  • Llamada dinámica de la API del agente de tendencias de contenido.
  • Capacidades de lluvia de ideas y resumen.
  • Tono de generación de contenidos adecuados sobre temas y tendencias actuales.
  • La capacidad de actuar siguiendo instrucciones proporcionadas por humanos para editar contenido.
  • Memoria

En última instancia, es importante centrarse en expresar las capacidades de manera que no limiten las opciones y la eventual selección de con qué tecnologías trabajar. Por ejemplo, aunque todos estamos bastante enamorados de los LLM, los modelos de acción grande (LAM) están evolucionando rápidamente y pueden ser relevantes para habilitar las capacidades deseadas.

Nivel de competencia requerido de las capacidades

Si bien identificar las capacidades necesarias para que un agente realice su trabajo es un paso crucial, es igualmente importante evaluar y definir el nivel de competencia requerido para cada una de estas capacidades. Esto implica establecer puntos de referencia específicos y métricas de rendimiento que deben cumplirse para que el agente y sus capacidades se consideren competentes. Estos puntos de referencia pueden incluir precisión, eficiencia y confiabilidad.

Por ejemplo, para nuestro agente de creación de contenido, los niveles de competencia deseados podrían incluir:

  • Fiabilidad de llamadas a funciones del 75%.
  • Explicabilidad de llamadas a funciones fallidas del 99,99%.
  • Función de llamada del agente de tendencias de contenido que da como resultado temas relevantes al menos el 75% de las veces en el primer intento.
  • Generación de ideas de contenidos que resultan en temas deseables el 75% de las veces.
  • Recuperación de información precisa con una tasa de precisión del 99,99%.
  • Generación de ediciones con una tasa de satisfacción de los comentarios de los usuarios del 90% o superior.
  • Generación de borradores finales con una tasa de satisfacción de los comentarios de los usuarios del 90% o superior.

Ingeniería y diseño de agentes

Mapeo de las competencias requeridas con tecnologías y técnicas

Una vez que se especifican las capacidades necesarias y los niveles de competencia requeridos, el siguiente paso es determinar cómo podemos cumplir con estos requisitos. Esto implica evaluar un arsenal de tecnologías y técnicas disponibles en rápido crecimiento, incluidos LLM, RAG, Guardrails, API especializadas y otros modelos de ML/AI para evaluar si pueden alcanzar los niveles de competencia especificados. En todos los casos, es útil considerar en qué es mejor una determinada tecnología o técnica a alto nivel y las implicaciones de costo/beneficio. Discutiré superficialmente algunos aquí, pero su alcance y escala serán limitados ya que existen innumerables posibilidades.

Amplio conocimiento

El conocimiento amplio se refiere a la comprensión general y la información sobre una amplia gama de temas y dominios. Este tipo de conocimiento es esencial para crear agentes de IA que puedan entablar un diálogo eficaz, comprender el contexto y proporcionar respuestas relevantes en diversos temas.

  • LLM: si las capacidades de su agente requieren un amplio conocimiento, la buena noticia es que el desarrollo de LLM continúa sin cesar. Desde modelos de código abierto como LlaMA3 hasta los últimos modelos propietarios de OpenAI, Anthropic y Google, no faltan opciones de tecnologías que brindan coherencia de alta densidad en una extensión tan vasta de lenguaje y conocimiento humanos.
  • Ingeniería prompt: esta área de desarrollo dinámica y muy activa se centra esencialmente en cómo activar los dominios de conocimiento contextualmente apropiados que son modelados por los LLM. Debido a las cualidades caleidoscópicas del lenguaje, el dominio de este arte puede tener un impacto dramático en los niveles de dominio de las capacidades de nuestro Agente.

Competencia en conocimientos específicos

El conocimiento específico implica una comprensión más profunda de dominios o temas particulares. Este tipo de conocimiento es necesario para tareas que requieren experiencia detallada y familiaridad con contenido especializado. ¿Qué tecnologías/técnicas podríamos considerar para alcanzar nuestros objetivos de competencia?

  • Generación aumentada de recuperación (RAG): RAG combina las capacidades generativas de los LLM con sistemas de recuperación de información para incorporar información de fuentes externas. Esto podría ser información precisa o conocimiento específico (por ejemplo, una descripción de un método único) que el LLM puede «comprender» en contexto debido a su amplio conocimiento.
  • Ajuste fino del modelo: los LLM de ajuste fino en conjuntos de datos específicos del contexto adaptan los modelos para generar respuestas más contextualmente relevantes en entornos particulares. Aunque no es tan popular como RAG, a medida que la ingeniería de agentes continúa ganando terreno, es posible que descubramos que los requisitos de competencia nos llevan hacia esta técnica con más frecuencia.

Información precisa

La información precisa se refiere a puntos de datos específicos y muy precisos que son críticos para tareas que requieren respuestas exactas.

  • Llamada de funciones (también conocida como uso de herramientas): todos desconfiamos del agente de IA que alucina con respecto a hechos específicos que son indiscutibles. Si el nivel requerido de competencia lo exige, podríamos recurrir a llamadas a funciones para recuperar la información específica. Por ejemplo, un agente de comercio electrónico podría utilizar una API de precios para proporcionar los precios más recientes de los productos o una API del mercado de valores para brindar actualizaciones en tiempo real sobre los valores de las acciones.
  • Guardrails: los Guardrails pueden ayudar a garantizar que el agente proporcione información precisa y exacta en sus respuestas. Esto puede implicar restricciones basadas en reglas, diseño conversacional dirigido y preprocesamiento de intenciones.

Anatomía y orquestación del agente

Ahora que tenemos una idea clara de cuál es el trabajo del Agente, las capacidades y niveles de competencia requeridos y las tecnologías disponibles para habilitarlos, cambiamos nuestro enfoque a la anatomía y orquestación del agente, ya sea en una configuración en solitario o en algún tipo de enjambre. o ecosistema. ¿Deberían registrarse las capacidades para un agente o cada capacidad debería asignarse a un agente único que opere dentro de un enjambre? ¿Cómo desarrollamos capacidades y agentes que puedan reutilizarse con el mínimo esfuerzo? Este tema por sí solo involucra varios artículos, por lo que no profundizaremos más en él aquí. En algunos aspectos, aquí es donde “la goma se encuentra con el camino” y nos encontramos entrelazando múltiples tecnologías y técnicas para dar vida a nuestros Agentes.

Conclusión

El viaje de la ingeniería de prompts a la ingeniería de agentes apenas comienza y hay mucho que aprender y perfeccionar a lo largo del camino. Este primer intento de crear un marco de ingeniería de agentes propone un enfoque práctico para diseñar agentes de IA al delinear un modelo mental de alto nivel que puede servir como un punto de partida útil en esa evolución. Los modelos y técnicas disponibles para crear Agentes seguirán proliferando, creando una clara necesidad de marcos que se generalicen lejos de cualquier tecnología o clase de tecnologías específica. Al definir claramente lo que un agente debe hacer, delinear las acciones necesarias para realizar estas tareas y especificar las capacidades y niveles de competencia necesarios, establecemos una base sólida y flexible para nuestros esfuerzos de diseño e ingeniería. Además, proporciona una estructura para que nuestros agentes y sus capacidades mejoren y evolucionen con el tiempo.

Gracias por leer y espero que el marco de ingeniería de agentes le resulte útil en tus esfuerzos orientados a los agentes. Estad atentos a futuras mejoras del marco y elaboraciones sobre los diversos temas mencionados. Si deseas hablar más sobre el marco u otros temas sobre los que he escrito, no dudes en conectar conmigo en LinkedIn.

A menos que se indique lo contrario, todas las imágenes de este artículo son del autor.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *