借助此功能,您可以评估 AI 智能体。您可以使用Gen AI Evaluation Service来衡量和提升智能体的性能、安全性和质量。
评估类型
| 评估类型 | 使用场景 | 频率 |
|---|---|---|
| 快速评估 | 测试新的智能体逻辑或模型更改。 | 频繁(开发) |
| 测试用例评估 | 针对特定数据集进行回归测试。 | 已安排(CI/CD) |
| 在线监控 | 跟踪生产智能体部署的质量。 | 持续(生产环境) |
评估工作流
您可以使用Google Cloud 控制台 或 Agent Platform SDK 评估智能体。
Google Cloud 控制台
如需为智能体部署运行基本评估,请执行以下操作:
- 在 Google Cloud 控制台中,前往 Agent Platform > Agents 页面。
- 在左侧导航菜单中,选择部署 ,然后选择您的智能体。
- 选择信息中心 标签页,然后选择评估 子部分。
- 点击新建评估 。
- 按照提示定义测试用例并选择指标。
- 点击运行评估 。
如需更详细的指南,请参阅运行离线评估或使用在线监控器进行持续评估。
Agent Platform SDK
智能体改进工作流基于质量飞轮构建,这是一个由评估、分析和优化组成的持续循环。您可以评估智能体的性能,分析结果以识别失败集群,然后优化提示或配置以解决这些问题。此迭代过程有助于您主动检测和解决性能差距。
准备工作
安装 Agent Platform SDK 以及所需的扩展程序:
pip install google-cloud-aiplatform[adk,evaluation]
初始化 Agent Platform SDK 客户端:
import vertexai from vertexai import Client client = Client(project="YOUR_PROJECT_ID", location="YOUR_LOCATION")
其中:
YOUR_PROJECT_ID:您的 Google Cloud 项目 ID。YOUR_LOCATION:您的云区域,例如us-central1。
1. 定义评估用例(用户模拟)
您可以使用用户模拟 功能,根据智能体的说明生成合成的多轮对话方案,而无需手动编写测试用例。
# Generate scenarios from agent info eval_dataset = client.evals.generate_conversation_scenarios( agent_info=my_agent_info, config={ "count": 5, "generation_instruction": "Generate scenarios where a user asks for a refund.", }, )
如需了解详情,请参阅 Agent Platform SDK 参考文档。
2. 运行推理
针对智能体执行评估用例,以捕获跟踪记录 。
# Generate behavior traces using a multi-turn user simulator traces = client.evals.run_inference( agent=my_agent, src=eval_dataset, config={"user_simulator_config": {"max_turn": 5}} )
3. 计算指标 (AutoRaters)
使用多轮 AutoRaters 对捕获的跟踪记录进行评分。这些标注者会分析完整的对话历史记录,以验证说明遵循情况和工具使用情况。
# Evaluate the traces using multi-turn metrics eval_result = client.evals.evaluate( traces=traces, metrics=[ "MULTI_TURN_TASK_SUCCESS", "MULTI_TURN_TOOL_USE_QUALITY" ] )
4. 进行分析(失败集群)
系统会自动将失败的评估分组到损失集群 中,以识别关键智能体问题。
# Identify the top failure patterns in the results loss_clusters = client.evals.generate_loss_clusters(eval_result=eval_result)
5. 优化智能体
最后,使用 Optimizer 服务以编程方式根据失败数据优化智能体的系统说明或工具说明。
# Automatically refine the system prompt to fix identified issues optimize_result = client.optimizer.optimize( targets=["system_prompt"], benchmark=eval_result, tests=eval_dataset )