从提示到指标的 AI 智能体评估

作者

Shalini Harkar

Lead AI Advocate

什么是 AI 智能体?

AI 智能体是指一种能够自主代表用户或其他系统执行任务的软件系统,它可以自行制定工作流程,并根据需要使用外部工具。

智能体的能力远不止于简单的语言处理和理解。它们具有决策能力、解决问题能力、与环境互动能力以及为实现目标而采取行动的能力。

AI 智能体现在被纳入各种企业解决方案中,从 IT 自动化和软件工程到对话界面和代码生成实现。在大型语言模型 (LLM) 的驱动下,智能体能够理解复杂指令,将其分解为多个步骤,调用外部资源,并具备认知能力,能够判断何时应使用特定工具或服务来完成任务。

为什么评估智能体很重要?

在创建和部署自主 AI 系统时,智能体评估是一个重要过程,因为它衡量智能体在执行指定任务、做出决策以及与用户或环境互动方面的表现。通过这种方式,我们可以确保智能体在其预期用例中可靠、高效和合乎道德地运行。

对智能体评估的主要原因包括:

  • 功能验证:此步骤有助于验证智能体在特定条件下的行为和动作,以及其在既定约束内完成目标的情况。
  • 设计优化:识别智能体在推理、规划或工具使用方面的不足与低效之处,从而使我们能够迭代优化其架构和流程。
  • 稳健性:评估智能体应对边缘案例、对抗性输入或次优条件的能力,从而提升其容错性和弹性。
  • 性能和资源指标:可以跟踪延迟、吞吐量、令牌消耗、内存等系统指标,以便评估运行时效率并尽量降低运营成本。
  • 用户交互质量:衡量智能体回复的清晰度、帮助性、连贯性和相关性,作为用户满意度或对话效果的指标。
  • 目标完成情况分析:通过使用成功标准或基于具体任务的基准,我们可以评估智能体完成目标的可靠性和准确性。
  • 伦理与安全考量:可以对智能体输出的结果进行评估,以确保其公平性、无偏见性、潜在危害性以及对相关安全程序的遵守情况。

AI 智能体的评估指标

评估 AI 智能体的性能采用多个正式的性能类别指标,包括准确性、响应时间(速度)和资源使用成本。准确性描述了智能体提供正确且相关回应的能力,以及完成其预期功能的能力。响应时间衡量智能体处理输入和产生输出的速度。降低延迟在交互式和实时程序中尤为重要,而成本则衡量智能体消耗的计算资源,如令牌使用量、调用应用程序接口 (API) 次数或系统运行时间。这些指标为提高系统性能和限制运营成本提供了指导。

虽然诸如正确性帮助性连贯性等关键指标属于准确性范畴,响应时间(延迟)则衡量包括吞吐量平均延迟超时延迟在内的指标。成本指标包括令牌使用量计算时间API 调用次数内存消耗

在本教程中,我们将探讨归属于准确性范畴的关键指标:正确性帮助性连贯性

  • 正确性:正确性评估智能体的回复是否在事实和逻辑上与输入的提示或任务相符。这个指标通常是最基本的衡量标准,特别是在医疗保健、法律建议或技术支持等领域。
  • 帮助性:帮助性评估智能体的回复对用户意图的实用性或可操作性。即使回复在事实上是正确的,但如果它没有解决方案或后续步骤,那么可能也无济于事。
  • 连贯性:与信息的流畅度相关,包括逻辑流和叙述流。它在多轮对话以及需要多步骤推理的交互中尤为重要。连贯性指的是智能体从头到尾的回复是否“通顺合理”。

您将开发一个旅行智能体,并通过使用“LLM 作为评判者”来评估其性能。

前提条件

  1. 您需要一个 IBM® Cloud 帐户来创建 watsonx.ai项目。

  2. 您还需要 Python 版本 3.12.7

步骤

第 1 步:设置环境

虽然您可以选择多种工具,本教程将引导您如何设置 IBM 帐户以使用 Jupyter Notebook。

  1. 使用您的 IBM Cloud 帐户登录 watsonx.ai

  2. 创建 watsonx.ai 项目您可以从项目中获取项目 ID。单击管理选项卡。然后从常规页面的详细信息部分复制项目 ID。本教程中您需要使用此 ID。

  3. 创建一个 Jupyter Notebook此步骤将打开一个 Jupyter Notebook 环境,您可以在其中复制本教程中的代码。或者,您也可以将该笔记下载到本地系统,再作为资产上传到您的 watsonx.ai 项目中。欲查看更多 IBM® Granite 教程,请访问 IBM Granite 社区

第 2 步:设置 watsonx.ai 运行时实例和 API 密钥

  1. 创建一个 watsonx.ai 运行时服务实例(选择适当的区域并选择精简计划,这是一个免费实例)。

  2. 生成应用程序编程接口 (API) 密钥

  3. 将 watsonx.ai 运行时服务实例与您在 watsonx.ai 中创建的项目关联。

第 3 步:安装并导入相关库,并设置您的凭据

本教程需要一些库和模块。请确保导入以下库,如果未安装,可以通过快速的 pip 安装来解决。

请注意,本教程使用 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

为了设置凭据,我们需要您在第 1 步中生成的 WATSONX_APIKEY 和 WATSONX_PROJECT_ID。我们还将设置作为 API 端点的 URL。您的 API 端点可能因您的地理位置而异。

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"

第 4 步:初始化 LLM

在本教程中,我们将使用 Granite 3 -8B Instruct 模型。为了初始化 LLM,我们需要设置模型参数。要了解更多关于这些模型参数的信息,例如最小和最大令牌限制,请参阅文档

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

第 5 步:构建 Travel Explorer 智能体(助手)

让我们构建一个旅行探索助手,帮助用户进行行程规划和旅行调研。

我们将创建一个简单的旅行助手应用程序,通过连接外部旅行 API,在用户查询时检索航班和酒店信息。为了将 AI 智能体集成到动态旅行规划中,我们将编写一个简单的函数用于发起 API 查询,并将其封装为一个工具。

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)

第 6 步:运行评估并获取分数

最后,我们运行一次评估并打印最终的评估得分。为了通过三个不同的标准(正确性、帮助性和连贯性)来评估旅行规划器,我们为评估用的大语言模型 (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)

输出结果同时展示了基于三个评估标准(正确性、帮助性和连贯性)对旅行规划方案的定性与定量评估。

让我们来逐一解析在智能体输出中,每个评分和指标的含义:

  • Correctness 告诉我们回复在事实上的准确性以及逻辑是否合理。在前面的例子中,事实内容是正确的,因此正确性评分为(满分 5 分中的 5 分)。
  • Helpfulness 表示回复对用户需求的帮助程度和相关性,是通过其帮助性来衡量的。在这种情况下,得分为(满分 5 分中的 5 分)意味着该 AI 旅行计划既实用又经过深思熟虑的设计。这个评分表明它对第一次寻找印度冬季最佳旅游地点的人来说非常有帮助。
  • Coherence 表示该规划是否逻辑清晰且易于理解。我们的示例获得了 5 的高连贯性分数。

 

总结

在评估一个智能体是否真正满足用户需求时,连贯性、帮助性和准确性等标准起着核心作用。无论您使用的是 OpenAI、IBM Granite 还是其他“LLM 即服务”模型,都必须依靠结构化评估方法(例如评估数据集、基准、注释和标准答案)来彻底测试最终输出,都至关重要。在聊天机器人或基于 RAG 的客户支持等用例中,像 LangGraph 这样的开源框架非常有价值。它们支持可扩展的自动化、可靠的路由并实现快速的迭代周期。这些科技还使得驱动生成式 AI 系统、调试行为以及优化和配置复杂的工作流变得更加容易。通过仔细定义测试用例并关注计算成本、价格和延迟等可观察性指标,团队可以不断提高系统性能。最终,应用可靠且可重复的评估方法可以增强机器学习系统的严谨性,并随着时间的推移增强其可信度。

相关解决方案
商用 AI 智能体

构建、部署和管理强大的 AI 助手和智能体,运用生成式 AI 实现工作流和流程自动化。

    探索 watsonx Orchestrate
    IBM AI 智能体解决方案

    借助值得信赖的 AI 解决方案,您可以勾勒未来业务发展蓝图。

    深入了解 AI 智能体解决方案
    IBM Consulting AI 服务

    IBM Consulting AI 服务有助于重塑企业利用 AI 实现转型的方式。

    探索人工智能服务
    采取下一步行动

    无论您是选择定制预构建的应用程序和技能,还是使用 AI 开发平台构建和部署定制代理服务,IBM watsonx 平台都能满足您的需求。

    探索 watsonx Orchestrate 深入了解 watsonx.ai