Evaluación de agente 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, desarrollando su propio flujo de trabajo y utilizando herramientas externas según sea necesario.

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

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

¿Por qué es importante evaluar a los agentes?

La evaluación de agentes es un procedimiento importante a la hora de crear e implementar sistemas de IA autónomos, ya que mide lo bien que 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 ciertas condiciones, así como la finalización 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 hacer frente a casos extremos, entradas adversas o condiciones subóptimas, lo que puede mejorar la tolerancia a fallos 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 realizar para determinar las eficiencias del tiempo de ejecución y minimizar los costos operativos.
  • Calidad de la interacción con el usuario: mide la claridad, la utilidad, la coherencia y la relevancia de las respuestas del agente como indicador de la satisfacción del usuario o la eficacia conversacional.
  • Análisis de consecución de objetivos: mediante el uso de criterios de éxito o puntos de referencia específicos basados en tareas, podemos evaluar con qué fiabilidad y precisión 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 adherencia a 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 coste de los recursos utilizados. La precisión describe la capacidad del agente para dar respuestas correctas y relevantes, así como su capacidad para completar las funciones previstas. El tiempo de respuesta mide la velocidad que tarda el agente en procesar la entrada y generar la salida. Minimizar la latencia es especialmente importante en los programas interactivos y en tiempo real, y el coste mide los recursos 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 directrices para mejorar el rendimiento del sistema y limitar los costes 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 como el rendimiento, la latencia media y el retraso del tiempo de espera. Las métricas de costes incluyen el uso de tokens , 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 la tarea. Esta métrica suele ser la medida más básica, especialmente para campos como la asistencia sanitaria, el asesoramiento jurídico o el soporte técnico.
  • Utilidad: la utilidad evalúa en qué medida la respuesta del agente es útil o práctica para la intención del usuario. Aunque una respuesta sea correcta desde el punto de vista factual, puede que no resulte útil si no ofrece una solución o indica los pasos a seguir.
  • Coherencia: está relacionada con el flujo, tanto lógico como narrativo. Es importante en interacciones multiturn y en interacciones en las que el razonamiento se lleva a cabo 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 rendimiento 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

Aunque puede elegir entre varias herramientas, este tutorial le muestra cómo configurar una cuenta de IBM para utilizar un Jupyter Notebook.

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

  2. Cree un proyecto watsonx.aiPuede obtener el ID de su proyecto desde su proyecto.Haga clic en la pestaña Administrar. A continuación, copie el ID del proyecto de la sección Detalles de la página General. Necesita este 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 cuaderno 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 de tiempo de ejecución y una clave de API

  1. Cree una instancia de servicio de 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 ha creado en watsonx.ai.

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

Necesitamos unas pocas 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 el WATSONX_PROJECT_ID que generó en el paso 1. También estableceremos la URL que sirve como endpoint de la API. El endpoint de su API puede variar en función de 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

Utilizaremos el modelo Granite 3 -8B Instruct para este tutorial. Para inicializar el LLM, necesitamos establecer los parámetros del modelo. Para obtener más información 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 de explorador de viajes (compañero)

Creemos un compañero de exploración de viajes que ayude a los usuarios a planificar sus viajes y a buscar información sobre ellos.

Crearemos una sencilla aplicación de asistencia para viajes que pueda recuperar información sobre aerolíneas y hoteles en respuesta a las consultas de los usuarios conectándose a una API de viajes externa. Para integrarnos con agentes de IA para la planificación dinámica de viajes, dispondremos de una función sencilla que realiza consultas API y la incorporaremos a 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 el planificador de viajes utilizando tres criterios distintos (corrección, utilidad y coherencia), se ha desarrollado una guía de evaluación estructurada para un evaluador 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 cualitativa y cuantitativa del planificador de viajes generado mediante tres criterios: corrección, utilidad y coherencia.

Analicemos lo que significa cada puntuación y métricas en el contexto del resultado del agente:

  • La corrección nos dice lo precisa y lógica que parece la respuesta. En el ejemplo anterior, el contenido fáctico es correcto, por lo que la puntuación de corrección es (5 sobre 5).
  • La utilidad muestra cuán útil y pertinente es la respuesta a las necesidades del usuario medida por su utilidad. Una puntuación de (5 sobre 5) en este escenario significa que el plan de viaje de la 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

A la hora de evaluar la capacidad de un agente para satisfacer realmente las necesidades de los usuarios, criterios como la coherencia, la utilidad y la precisión desempeñan un papel fundamental. 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, referencias, anotaciones y datos sobre el terreno, para probar exhaustivamente los resultados finales. En casos de uso como chatbot o atención al cliente basada en RAG, los marcos de código abierto como LangGraph son invaluables. Admiten una automatización escalable, un enrutamiento fiable 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 coste 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 fiable y repetible aporta rigor a los sistemas de machine learning y refuerza su fiabilidad con el tiempo.

Soluciones relacionadas
Agentes de IA para empresas

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

    Explore watsonx Orchestrate
    Soluciones de agente de IA de IBM

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

    Explore las soluciones de los agentes de IA
    Servicios de IA de IBM Consulting

    Los servicios de IA de IBM Consulting ayudan a reinventar la forma de trabajar de las empresas usando IA para la transformación.

    Explore los servicios de inteligencia artificial
    Dé el siguiente paso

    Tanto si opta por personalizar las aplicaciones y habilidades prediseñadas como si prefiere crear e implementar servicios agentivos personalizados mediante un estudio de IA, la plataforma IBM watsonx le ofrece todo lo que necesita.

    Explore watsonx Orchestrate Explore watsonx.ai