Avaliação de agentes de IA de prompts a métricas

Autor

Shalini Harkar

Lead AI Advocate

O que são agentes de IA?

Um agente de IA refere-se a um sistema de software capaz de executar tarefas de forma autônoma em nome de um usuário ou outro sistema, criando seu próprio fluxo de trabalho e utilizando ferramentas externas conforme a necessidade.

Os agentes vão muito além do simples processamento e compreensão da linguagem. Elas são capazes de tomar decisões, resolver problemas, interagir com o ambiente e atuar em busca de metas.

Os agentes de IA agora estão sendo incorporados a uma variedade de soluções empresariais, desde automação de TI e engenharia de software, até interfaces de conversação e implementação de geração de código. Impulsionados por grandes modelos de linguagem (LLMs), eles podem compreender direções complexas, decompô-las em etapas, interagir com recursos de fontes externas e ter a capacidade cognitiva de saber quando implementar determinadas ferramentas ou serviços para ajudar a realizar tarefas.

Por que a avaliação dos agentes é importante?

A avaliação de agentes é um procedimento importante na criação e implementação de sistemas autônomos de IA, pois mede a eficiência com que um agente executa as tarefas atribuídas, toma decisões e interage com os usuários ou ambientes. Dessa forma, podemos garantir que os agentes operem de forma confiável, eficiente e ética nos casos de uso pretendidos.

Os principais motivos para a avaliação de agentes incluem:

  • Verificação funcional: essa etapa ajuda a verificar os comportamentos e ações do agente em determinadas condições, bem como a conclusão de seus objetivos em restrições definidas.
  • Otimização do design: identifica as deficiências e ineficiências no raciocínio, no planejamento ou no uso de ferramentas do agente, o que nos permite melhorar a arquitetura e o fluxo do agente de forma iterativa.
  • Robustez: avalia a capacidade do agente de encontrar casos extremos, entradas adversários ou condições abaixo do ideal, o que pode melhorar a tolerância a falhas e a resiliência.
  • Métricas de desempenho e recursos: a observação da latência, da taxa de transferência, do consumo de tokens, da memória e de outras métricas do sistema pode ser rastreada para que possamos determinar as eficiências de tempo de execução e minimizar os custos operacionais.
  • Qualidade da interação do usuário: mede a clareza, utilidade, coerência e relevância das respostas do agente como indicador de satisfação do usuário ou eficácia da conversação.
  • Análise de conclusão de objetivos: utilizando critérios de sucesso ou benchmarks específicos baseados em tarefas, podemos avaliar a confiabilidade e precisão com que o agente atingiu seus objetivos.
  • Considerações éticas e de segurança: as saídas do agente podem ser avaliadas quanto à imparcialidade, ao viés, ao potencial de dano e à adesão a quaisquer procedimentos de segurança.

Métricas de avaliação para agentes de IA

A avaliação do desempenho de um agente de IA usa métricas organizadas em várias classes formais de desempenho: precisão, tempo de resposta (velocidade) e custo dos recursos utilizados. A precisão descreve o quão bem o agente dá as respostas corretas e relevantes, bem como a capacidade do agente de concluir suas funções pretendidas. O tempo de resposta mede a velocidade que o agente leva para processar a entrada e produzir a saída. Minimizar a latência é especialmente importante em programas interativos e em tempo real, e o custo mede os recursos computacionais que o agente consome, como uso de tokens, chamada para uma interface de programação de aplicativos (API) ou tempo do sistema. Essas métricas fornecem diretrizes para melhorar o desempenho do sistema e limitar os custos operacionais.

Enquanto métricas principais, como exatidão, utilidade e coerência, se enquadram em precisão, o tempo de resposta (latência)mede métricas incluindo rendimento ,latência média e atraso de tempo limite. As métricas de custo incluem uso de tokens, tempo de computação , contagem de chamadas de API e consumo de memória.

Neste tutorial, vamos explorar as principais métricas de correção, utilidade e coerência que se enquadram na precisão.

  • Exatidão: a exatidão avalia se as respostas do agente são realmente precisas e logicamente verdadeiras no prompt ou na tarefa de entrada. Essa métrica costuma ser a medida mais básica, principalmente em áreas como saúde, consultoria jurídica ou suporte técnico.
  • Utilidade: a utilidade avalia o quanto a resposta do agente é útil ou praticável para a intenção do usuário. Mesmo que uma resposta esteja factualmente correta, pode não ser útil se não lidar com uma solução ou próximas etapas.
  • Coerência: está relacionado com o fluxo — tanto o fluxo lógico quanto o narrativo. É importante em interações de múltiplas voltas e em interações em que o raciocínio é feito em várias etapas. Coerência se refere ao fato de o agente “fazer sentido” do início ao fim.

Você desenvolverá um agente de viagens e avaliará seu desempenho usando um "LLM como juiz".

Pré-requisitos

  1. Você precisa de uma conta do IBM® Cloud para criar um projeto do watsonx.ai .

  2. Você também precisa do Python versão 3.12.7

Etapas

Etapa 1. Configure seu ambiente

Embora você possa escolher entre várias ferramentas, este tutorial explica como configurar uma conta da IBM para usar um Jupyter Notebook.

  1. Faça login no watsonx.ai usando sua conta do IBM Cloud.

  2. Crie um projeto do watsonx.aiVocê pode obter o ID do projeto a partir  do seu projeto. Clique na guia Gerenciar. Em seguida,copie o ID doprojeto da seção Detalhes da página Geral. Você precisa desse ID para este tutorial.

  3. Crie um Jupyter NotebookEsta etapa abre um ambiente do Jupyter Notebook onde você pode copiar o código deste tutorial. Ou você pode fazer download desse notebook em seu sistema local e carregá-lo como um ativo em seu projeto do watsonx.ai. Para ver mais tutoriais do IBM Granite, confira a Comunidade IBM Granite.

Etapa 2. Configure uma instância do watsonx.ai Runtime e uma chave de API

  1. Crie uma instância do serviço watsonx.ai Runtime (selecione a região apropriada e escolha o plano Lite, que é uma instância gratuita).

  2. Gere uma  chave de interface de programação de aplicativos (API) .

  3. Associe a instância do serviço do watsonx.ai Runtime ao projeto que você criou no watsonx.ai.

Etapa 3. Instale e importe bibliotecas relevantes e configure suas credenciais

Precisamos de algumas bibliotecas e módulos para este tutorial. Certifique-se de importar os seguintes e, se não estiverem instalados, uma instalação rápida de pip resolve o problema.

Observe que este tutorial foi criado usando o 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 definir nossas credenciais, precisamos do WATSONX_APIKEY e do WATSONX_PROJECT_ID que você gerou na etapa 1. Também definiremos a URL como o endpoint da API. Seu endpoint da API pode variar dependendo de sua localização 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"

Etapa 4. Inicialize seu LLM

Usaremos o modelo Granite 3 -8B Instruct para este tutorial. Para inicializar o LLM, precisamos definir os parâmetros do modelo. Para saber mais sobre esses parâmetros do modelo, como os limites mínimo e máximo de tokens, consulte a documentação.

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})

Etapa 5. Crie um agente explorador de viagens (amigo)

Vamos criar um amigo de exploração de viagens que ajude os usuários no planejamento e na pesquisa de viagens.

Criaremos uma aplicação simples de assistente de viagens que possa recuperar informações de companhias aéreas e hotéis em resposta às consultas dos usuários, conectando-se a uma API de viagens externa. Para integração com agentes de IA para planejamento dinâmico de viagens, teremos uma função simples que faz consultas de API e as envolve em uma ferramenta.

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)

Etapa 6. Execute uma avaliação e receba a pontuação

Por fim, executamos uma avaliação e exibimos a pontuação final da avaliação. Para avaliar o planejador de viagens usando três critérios distintos (correção, utilidade e coerência), um prompt de avaliação estruturado é desenvolvido para um LLM avaliador.

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)

A saída mostra a avaliação qualitativa e quantitativa do planejador de viagens gerada pelo uso de três critérios: exatidão, utilidade e coerência.

Vamos detalhar o que cada pontuação e métrica significa no contexto da saída do agente:

  • Aexatidão nos diz o quão factualmente precisa e lógica a resposta parece. No exemplo anterior, o conteúdo factual está correto; portanto, a pontuação de exatidão é (5 de 5).
  • A utilidade mostra o quão útil e pertinente é a resposta para as necessidades do usuário, medidas por sua utilidade. Uma pontuação de (5 em 5) nesse cenário significa que o plano de viagens de IA é útil e foi cuidadosamente projetado. A pontuação indica que é útil para quem está procurando os melhores lugares para visitar na Índia durante o inverno pela primeira vez.
  • A coerência mostra se o planejador é logicamente organizado e fácil de ler. Nosso exemplo recebeu uma alta pontuação de coerência, de 5.

 

Conclusão

Ao avaliar a capacidade de um agente de realmente atender às necessidades do usuário, critérios como coerência, utilidade e precisão desempenham um papel central. Independentemente de você estar trabalhando com o OpenAI, IBM Granite ou outros modelos de LLM como serviço, é crucial confiar em métodos de avaliação estruturados, como conjuntos de dados, benchmarks, anotações e verdade absoluta, para testar minuciosamente os resultados finais. Em casos de uso prático, como chatbots ou suporte ao cliente baseado em RAG, frameworks de código aberto como LangGraph são inestimáveis. Eles são compatíveis com a automação escalável, roteamento confiável e permitem ciclos de iteração rápidos. Essas tecnologias também facilitam a potencialização de sistemas de IA generativa, a depuração de comportamentos e a otimização e configuração de fluxos de trabalho complexos. Ao definir cuidadosamente os casos de teste e ficar de olho nas métricas de observabilidade, como custo de computação, preço e latência, as equipes podem melhorar consistentemente o desempenho do sistema. Em última análise, aplicar uma abordagem de avaliação confiável e repetível traz rigor aos sistemas de aprendizado de máquina e fortalece sua confiabilidade ao longo do tempo.

Soluções relacionadas
Agentes de IA para empresas

Crie, implemente e gerencie assistentes e agentes de IA potentes que automatizam fluxos de trabalho e processos com a IA generativa.

    Explore o watsonx Orchestrate
    Soluções de agentes de IA da IBM

    Construa o futuro do seu negócio com soluções de IA em que você pode confiar.

    Explore soluções de agentes de IA
    Serviços de IA do IBM® Consulting

    Os serviços de IA da IBM Consulting ajudam a reinventar a forma como as empresas trabalham com IA para gerar transformação.

    Explore os serviços de inteligência artificial
    Dê o próximo passo

    Se você optar por personalizar aplicativos e habilidades criados previamente ou criar e implementar serviços agênticos personalizados usando um estúdio de IA, a plataforma IBM watsonx tem aquilo de que você precisa.

    Explore o watsonx Orchestrate Explore o watsonx.ai