Evaluación de agentes de IA desde instrucciones hasta métricas

Autor

Shalini Harkar

Lead AI Advocate

¿Qué son los agentes de IA?

Un agente de IA se refiere a un sistema de software capaz de llevar a cabo tareas de forma autónoma en nombre de un usuario u otro sistema, mediante el desarrollo de su propio flujo de trabajo y el uso de herramientas externas según sea necesario.

Los agentes van mucho más allá del simple procesamiento y comprensión del lenguaje. Son capaces de tomar decisiones, resolver problemas, interactuar con el entorno y actuar en pos de objetivos.

Los agentes de IA ahora se están incorporando a una variedad de soluciones empresariales, desde automatización de TI e ingeniería de software, hasta interfaces conversacionales e implementación de generación de código. Impulsados por modelos de lenguaje extensos (LLM), pueden comprender instrucciones complejas, descomponerlas en pasos, interactuar con recursos de fuentes externas y tener la capacidad cognitiva de saber cuándo desplegar ciertas herramientas o servicios para ayudar a lograr tareas.

¿Por qué es importante evaluar a los agentes?

La evaluación de agentes es un procedimiento importante al crear y desplegar sistemas autónomos de IA porque mide qué tan bien un agente realiza las tareas asignadas, toma decisiones e interactúa con usuarios o entornos. De esta manera, podemos garantizar que los agentes operen de manera confiable, eficiente y ética en sus casos de uso previstos.

Las razones clave para la evaluación de agentes incluyen:

  • Verificación funcional: este paso ayuda a verificar los comportamientos y acciones del agente en determinadas condiciones, así como el cumplimiento de sus objetivos en restricciones definidas.
  • Optimización del diseño: identifica las deficiencias e ineficiencias en el razonamiento, la planificación o el uso de herramientas del agente, lo que nos permite mejorar iterativamente la arquitectura y el flujo del agente.
  • Robustez: evalúa la capacidad del agente para encontrar casos extremos, entradas adversarias o condiciones subóptimas, lo que puede mejorar la tolerancia a fallas y la resiliencia.
  • Métricas de rendimiento y recursos: la observación de la latencia, el rendimiento, el consumo de token, la memoria y otras métricas del sistema se pueden rastrear para determinar la eficiencia del tiempo de ejecución y minimizar los costos operativos.
  • Calidad de la interacción del usuario: mide la claridad, utilidad, coherencia y relevancia de las respuestas del agente como indicador de la satisfacción del usuario o la eficacia conversacional.
  • Análisis de cumplimiento de objetivos: mediante el uso de criterios de éxito o puntos de referencia específicos basados en tareas, podemos evaluar la confiabilidad y precisión con la que el agente completó sus objetivos.
  • Consideraciones éticas y de seguridad: los resultados del agente pueden evaluarse en cuanto a imparcialidad, sesgo, daño potencial y cumplimiento de cualquier procedimiento de seguridad.

Métricas de evaluación para agentes de IA

La evaluación del rendimiento de un agente de IA utiliza métricas organizadas en varias clases formales de rendimiento: precisión, tiempo de respuesta (velocidad) y costo de los recursos utilizados. La precisión describe qué tan bien el agente da las respuestas correctas y relevantes, así como la capacidad del agente para completar sus funciones previstas. El tiempo de respuesta mide la velocidad que toma el agente para procesar la entrada y producir la salida. Minimizar la latencia es especialmente importante en programas interactivos y en tiempo real, y el costo mide los recursos computacionales que consume el agente, como el uso de token, la llamada a una interfaz de programación de aplicaciones (API) o el tiempo del sistema. Estas métricas proporcionan pautas para mejorar el rendimiento del sistema y limitar los costos operativos.

Mientras que las métricas clave como la corrección, la utilidad y la coherencia se incluyen en la precisión, el tiempo de respuesta (latencia) mide métricas que incluyen el rendimiento, la latencia promedio el retraso del tiempo de espera. Las métricas de costos incluyen el uso de token, el tiempo de cálculo, el recuento de llamadas a la API y el consumo de memoria.

En este tutorial exploraremos las métricas clave de corrección, utilidad y coherencia que se incluyen en la precisión.

  • Corrección: la corrección evalúa si las respuestas del agente son objetivamente precisas y lógicamente verdaderas desde la instrucción o tarea de entrada. Esta métrica suele ser la medida más básica, especialmente para campos como la atención médica, el asesoramiento legal o el soporte técnico.
  • Utilidad: la utilidad evalúa cuán útil o aplicable en la práctica es la respuesta del agente para la intención del usuario. Incluso si una respuesta es objetivamente correcta, podría no ser útil si no aborda una solución o los siguientes pasos.
  • Coherencia: está relacionada con el flujo, tanto lógico como narrativo. Es importante en interacciones de varios turnos y en interacciones en las que el razonamiento se realiza en varios pasos. La coherencia se refiere a si el agente "tiene sentido" de principio a fin.

Desarrollará un agente de viajes y evaluará su desempeño utilizando un "LLM como juez".

Requisitos previos

  1. Necesita una cuenta de IBM® Cloud para crear un proyecto watsonx.ai .

  2. También necesita la versión 3.12.7 de Python

Pasos

Paso 1. Configure su entorno

Si bien puede elegir entre varias herramientas, este tutorial lo guiará a través de cómo configurar una cuenta de IBM para usar un Jupyter Notebook.

  1. Inicie sesión en watsonx.ai mediante su cuenta de IBM Cloud.

  2. Cree un proyecto watsonx.aiPuede obtener la ID de su proyecto desde dentro de este. Haga clic en la pestaña Manage.  Luego, copie la ID del proyecto en la sección Details de la página General. Necesitará esta ID para este tutorial.

  3. Cree un Jupyter NotebookEste paso abre un entorno de Jupyter Notebook donde puede copiar el código de este tutorial. También puede descargar este notebook en su sistema local y cargarlo en su proyecto watsonx.ai como activo. Para ver más tutoriales de IBM® Granite, consulte la Comunidad de IBM Granite.

Paso 2. Configure una instancia de watsonx.ai® Runtime y una clave de API

  1. Cree una instancia de servicio watsonx.ai® Runtime (seleccione la región adecuada y elija el plan Lite, que es una instancia gratuita).

  2. Genere una  clave de interfaz de programación de aplicaciones (API).

  3. Asocie la instancia del servicio watsonx.ai® Runtime al proyecto que creó en watsonx.ai.

Paso 3. Instale e importe bibliotecas relevantes y configure sus credenciales

Necesitamos algunas bibliotecas y módulos para este tutorial. Asegúrese de importar los siguientes y, si no están instalados, una instalación rápida de pip resuelve el problema.

Tenga en cuenta que este tutorial se creó con Python 3.12.7.

!pip install -q langchain langchain-ibm langchain_experimental langchain-text-splitters langchain_chroma transformers bs4 langchain_huggingface sentence-transformers
import os
import getpass
import requests
import random
import json
from typing import Type
from typing import Dict, List
from langchain_ibm import WatsonxLLM
from langchain_ibm import ChatWatsonx
from ibm_watsonx_ai.metanames import GenTextParamsMetaNames as GenParams
from langchain_ibm import WatsonxEmbeddings
from langchain.vectorstores import Chroma
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
from langchain.agents.agent_types import AgentType
from langchain.prompts import ChatPromptTemplate
from langchain.evaluation import load_evaluator
from langchain.agents import initialize_agent, Tool

Para establecer nuestras credenciales, necesitamos el WATSONX_APIKEY y WATSONX_PROJECT_ID generó en el paso 1. También estableceremos la URL que sirve como endpoint de la API. Su endpoint de API puede diferir según su ubicación geográfica.

WATSONX_APIKEY = getpass.getpass("Please enter your watsonx.ai Runtime API key (hit enter): ")
WATSONX_PROJECT_ID = getpass.getpass("Please enter your project ID (hit enter): ")
URL = "https://us-south.ml.cloud.ibm.com"

Paso 4. Inicialice su LLM

Para este tutorial, usaremos el modelo Granite 3 -8B Instruct. Para inicializar el LLM, necesitamos establecer los parámetros del modelo. Para aprender más sobre estos parámetros del modelo, como los límites mínimo y máximo de tokens, consulte la documentación.

llm = ChatWatsonx(model_id="ibm/granite-3-8b-instruct",
url = URL,
apikey = WATSONX_APIKEY,
project_id = WATSONX_PROJECT_ID,
params = {"decoding_method": "greedy","temperature": 0, "min_new_tokens": 5,
"max_new_tokens": 2000})

Paso 5. Cree un agente explorador de viajes (compañero)

Creemos un compañero explorador de viajes que ayude a los usuarios a planear sus viajes y buscar información.

Crearemos una sencilla aplicación de asistente de viajes que pueda recuperar información de aerolíneas y hoteles en respuesta a las consultas de los usuarios mediante la conexión a una API de viajes externa. Para integrarnos con agentes de IA para la planificación dinámica de viajes, tendremos una función sencilla que realiza consultas API y la envuelve en una herramienta.

def travel_api(query: str) -> str:
# Example of connecting to a real travel API
response = requests.get("https://www.partners.skyscanner.net", params={"query": query})
if response.status_code == 200:
return response.json().get("result", "No results found.")
return "Error contacting travel API."

travel_tool = Tool(
name="TravelPlannerTool",
func=travel_api,
description="Connects to a travel API to find flights and hotels for a given city and date"
)
agent = initialize_agent(
tools=[travel_tool],
llm=llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True,
handle_parsing_errors= "Check your output and make sure it conforms! Do not output an action and a final answer at the same time."
)
query = "What are the best places to visit in India during winters?"
response = agent.invoke(query)
print("\n--- Travel Agent Response ---")
print(response)

Paso 6. Realice una evaluación y obtenga la puntuación

Por último, realizamos una evaluación e imprimimos la puntuación final de la evaluación. Con el fin de evaluar al planificador de viajes con tres criterios distintos (corrección, utilidad y coherencia), se desarrolla una instrucción de evaluación estructurada para un evaluador de LLM.

from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain

evaluation_prompt = PromptTemplate(
input_variables=["input", "prediction"],
template="""
You are an evaluation agent.

### User Input:
{input}

### Agent's Response:
{prediction}

Evaluate this response based on:
- Correctness (Is the information factually accurate?)
- Helpfulness (Is it useful and actionable?)
- Coherence (Is it well-written and logically structured?)

Reply in this format:
Correctness: <score>/5 - <reason>
Helpfulness: <score>/5 - <reason>
Coherence: <score>/5 - <reason>
"""
)
eval_input = evaluation_prompt.format(input=query, prediction=response)
evaluation_result = agent.invoke(eval_input)

El resultado muestra una evaluación tanto cualitativa como cuantitativa del planificador de viajes generado mediante el uso de tres criterios: corrección, utilidad y coherencia.

Analicemos lo que significa cada puntuación y métrica en el contexto de la salida del agente:

  • La corrección nos indica qué tan precisa y lógica suena la respuesta desde el punto de vista de los hechos. En el ejemplo anterior, el contenido fáctico es correcto, por lo que la puntuación de corrección es (5 de 5).
  • La utilidad muestra el grado de utilidad y pertinencia de la respuesta a las necesidades del usuario medidas por su utilidad. En este escenario, una puntuación de (5 de 5) significa que el plan de viaje de IA es útil y está cuidadosamente diseñado. La puntuación indica que es útil para alguien que busca los mejores lugares para visitar en la India durante el invierno por primera vez.
  • La coherencia muestra si el planificador está organizado lógicamente y es fácil de leer. Nuestro ejemplo recibió una alta puntuación de coherencia de 5.

 

Conclusión

Al evaluar la capacidad de un agente para satisfacer realmente las necesidades del usuario, los criterios como la coherencia, la utilidad y la precisión desempeñan una función central. Independientemente de si trabaja con OpenAI, IBM Granite u otros modelos de LLM como servicio, es crucial confiar en métodos de evaluación estructurados, como conjuntos de datos de evaluación, puntos de referencia, anotaciones y datos reales, para probar exhaustivamente los resultados finales. En casos de uso práctico, como chatbots o atención al cliente basada en RAG, los marcos de código abierto como LangGraph son invaluables. Admiten automatización escalable, enrutamiento confiable y permiten ciclos de iteración rápidos. Estas tecnologías también facilitan la potencia de los sistemas de IA generativa, la depuración de comportamientos y la optimización y configuración de flujos de trabajo complejos. Al definir cuidadosamente los casos de prueba y vigilar las métricas de observabilidad, como el costo de cálculo, el precio y la latencia, los equipos pueden mejorar constantemente el rendimiento del sistema. En última instancia, la aplicación de un enfoque de evaluación confiable y repetible aporta rigor a los sistemas de machine learning y fortalece su confiabilidad con el tiempo.

Soluciones relacionadas
Agentes de IA para empresas

Cree, implemente y gestione poderosos asistentes y agentes de IA que automaticen flujos de trabajo y procesos con IA generativa.

    Explore watsonx Orchestrate
    Soluciones de agentes de IA de IBM

    Construya el futuro de su empresa con soluciones de IA en las que pueda confiar.

    Explorar las soluciones de agentes de IA
    Servicios de IA de IBM Consulting

    Los servicios de IA de IBM Consulting ayudan a reinventar la forma en que las empresas trabajan con IA para la transformación.

    Explorar los servicios de inteligencia artificial
    Dé el siguiente paso

    Ya sea que elija personalizar aplicaciones y habilidades predefinidas o crear y desplegar servicios agénticos personalizados utilizando un estudio de IA, la plataforma IBM watsonx responde a sus necesidades.

    Explore watsonx Orchestrate Explore watsonx.ai