Nachdem Sie ein generatives KI-Modell erstellt haben, können Sie es verwenden, um einen Agent wie einen Chatbot zu betreiben. Mit dem Gen AI Evaluation Service können Sie die Fähigkeit Ihres Agents messen, Aufgaben und Ziele für Ihren Anwendungsfall zu erledigen.
In diesem Leitfaden erfahren Sie, wie Sie generative KI-Agents mit dem Gen AI Evaluation Service bewerten. Die folgenden Themen werden behandelt:
- Bewertungsmethoden:Hier erfahren Sie mehr über die beiden Hauptansätze für die Agent-Bewertung: endgültige Antwort und Verlauf.
- Unterstützte Agents:Hier finden Sie die Agent-Typen, die Sie auswerten können, einschließlich der Agents, die mit Agent Engine, LangChain oder benutzerdefinierten Funktionen erstellt wurden.
- Bewertungsmesswerte:Hier finden Sie Informationen zu den Messwerten, die zur Bewertung der endgültigen Antwort eines Agenten und seines Verlaufs verfügbar sind.
- Dataset vorbereiten:Hier erfahren Sie, wie Sie Ihre Daten für die Bewertung von endgültigen Antworten und Trajektorien strukturieren.
- Bewertung ausführen:Führen Sie eine Bewertungsaufgabe mit dem Vertex AI SDK aus und passen Sie die Messwerte an Ihre spezifischen Anforderungen an.
- Ergebnisse ansehen und interpretieren:Hier erfahren Sie, wie Sie die Ergebnisse auf Instanzebene und die aggregierten Werte für die Leistung Ihres Kundenservicemitarbeiters verstehen.
- Agent2Agent-Protokoll (A2A):Hier finden Sie eine Übersicht über den offenen A2A-Standard für die Multi-Agent-Kommunikation.
Bewertungsmethoden
Sie können Ihren Agenten mit den folgenden Methoden testen. Mit dem Gen AI Evaluation Service können Sie die Ausführung eines Agents auslösen und Messwerte für beide Bewertungsmethoden in einer Vertex AI SDK-Abfrage abrufen.
Bewertungsmethode | Beschreibung | Anwendungsfall |
---|---|---|
Bewertung der endgültigen Antwort | Bewertet nur die endgültige Ausgabe eines Agents, um festzustellen, ob er sein Ziel erreicht hat. | Wenn das Endergebnis im Vordergrund steht und die Zwischenschritte nicht wichtig sind. |
Bewertung der Entwicklung | Bewertet den gesamten Pfad (Sequenz von Tool-Aufrufen), den der Agent verwendet hat, um die endgültige Antwort zu generieren. | Wenn der Prozess, der Argumentationspfad und die Tool-Nutzung für das Debugging, die Optimierung oder die Einhaltung von Vorschriften entscheidend sind. |
Unterstützte Kundenservicemitarbeiter
Der Gen AI Evaluation Service unterstützt die folgenden Kategorien von Agents:
Unterstützte Kundenservicemitarbeiter | Beschreibung |
---|---|
Mit der Vorlage von Agent Engine erstellter Agent | Agent Engine (LangChain in Vertex AI) ist eine Google Cloud Plattform, auf der Sie Agents bereitstellen und verwalten können. |
LangChain-Agents, die mit der anpassbaren Vorlage von Agent Engine erstellt wurden | LangChain ist eine Open-Source-Plattform. |
Benutzerdefinierte Agent-Funktion | Eine flexible Funktion, die einen Prompt für den Agenten entgegennimmt und eine Antwort und einen Pfad in einem Dictionary zurückgibt. |
Bewertungsmesswerte
Sie können Messwerte für die endgültige Antwort oder die Trajektorbewertung definieren.
Messwerte für die endgültige Antwort
Die Bewertung der endgültigen Antwort folgt demselben Prozess wie die Bewertung der Modellantwort. Weitere Informationen finden Sie unter Evaluierungsmesswerte definieren.
Messwerte für den Verlauf
Die folgenden Messwerte bewerten die Fähigkeit des Modells, dem erwarteten Verlauf zu folgen.
Messwert | Funktion | Verwendung |
---|---|---|
trajectory_exact_match |
Gibt an, ob die vorhergesagte Toolaufrufsequenz mit der Referenzsequenz identisch ist. | Für strenge, nicht flexible Workflows, bei denen die genaue Reihenfolge und die Parameter eingehalten werden müssen. |
trajectory_in_order_match |
Ob alle Aufrufe des Referenztools in der richtigen Reihenfolge vorhanden sind, wobei zusätzliche Aufrufe zulässig sind. | Wenn die Kernsequenz wichtig ist, der Agent aber zusätzliche hilfreiche Schritte ausführen kann. |
trajectory_any_order_match |
Ob alle Aufrufe von Referenztools vorhanden sind, unabhängig von der Reihenfolge oder zusätzlichen Aufrufen. | Wenn eine Reihe von Aufgaben erledigt werden muss, die Ausführungsreihenfolge aber nicht wichtig ist. |
trajectory_precision |
Der Anteil der vorhergesagten Toolaufrufe, die relevant sind (d.h. auch in der Referenz enthalten sind). | Agents bestrafen, die viele irrelevante oder unnötige Tool-Aufrufe ausführen. |
trajectory_recall |
Der Anteil der erforderlichen (Referenz-)Tool-Aufrufe, die der Agent tatsächlich ausgeführt hat. | Damit der Kundenservicemitarbeiter alle erforderlichen Schritte zur Erledigung der Aufgabe ausführt. |
trajectory_single_tool_use |
Gibt an, ob ein bestimmtes einzelnes Tool mindestens einmal im Trajekt verwendet wurde. | Um zu prüfen, ob ein wichtiges Tool (z.B. eine endgültige Bestätigung oder ein Sicherheitscheck) Teil des Prozesses war. |
Für alle Messwerte für die Entwicklung, mit Ausnahme von trajectory_single_tool_use
, sind predicted_trajectory
und reference_trajectory
als Eingabeparameter erforderlich.
Genaue Übereinstimmung
Der Messwert trajectory_exact_match
gibt den Wert 1 zurück, wenn die vorhergesagte Trajektorie mit der Referenz-Trajektorie identisch ist und dieselben Tool-Aufrufe in derselben Reihenfolge enthält. Andernfalls wird 0 zurückgegeben.
In-Order-Abgleich
Der Messwert trajectory_in_order_match
gibt den Wert 1 zurück, wenn der vorhergesagte Pfad alle Tool-Aufrufe aus dem Referenzpfad in derselben Reihenfolge enthält. Zusätzliche Tool-Aufrufe sind zulässig. Andernfalls wird 0 zurückgegeben.
Übereinstimmung in beliebiger Reihenfolge
Der Messwert trajectory_any_order_match
gibt den Wert 1 zurück, wenn der vorhergesagte Pfad alle Tool-Aufrufe aus dem Referenzpfad enthält, unabhängig von ihrer Reihenfolge. Zusätzliche Tool-Aufrufe sind zulässig. Andernfalls wird 0 zurückgegeben.
Precision
Der Messwert trajectory_precision
gibt an, wie viele der Toolaufrufe im vorhergesagten Verlauf gemäß dem Referenzverlauf relevant sind. Der Wert ist ein Gleitkommawert im Bereich [0,1].
Die Genauigkeit wird berechnet, indem die Anzahl der Aktionen im vorhergesagten Pfad, die auch im Referenzpfad enthalten sind, durch die Gesamtzahl der Aktionen im vorhergesagten Pfad geteilt wird.
Recall
Der Messwert trajectory_recall
gibt an, wie viele der wichtigen Tool-Aufrufe aus dem Referenzpfad im vorhergesagten Pfad vorhanden sind. Der Wert ist ein Gleitkommawert im Bereich [0,1].
Der Recall wird berechnet, indem die Anzahl der Aktionen im Referenzpfad, die auch im vorhergesagten Pfad enthalten sind, durch die Gesamtzahl der Aktionen im Referenzpfad geteilt wird.
Verwendung eines einzelnen Tools
Mit dem Messwert trajectory_single_tool_use
wird geprüft, ob ein bestimmtes Tool, das in der Messwertspezifikation angegeben ist, im prognostizierten Verlauf verwendet wird. Die Reihenfolge der Tool-Aufrufe oder die Häufigkeit der Tool-Nutzung werden nicht geprüft. Gibt 1 zurück, wenn das Tool vorhanden ist, und 0, wenn es nicht vorhanden ist.
Standardleistungsmesswerte
Die folgenden Leistungsmesswerte werden den Bewertungsergebnissen standardmäßig hinzugefügt. Sie müssen sie nicht in EvalTask
angeben.
Latenz
Die Zeit, die der Kundenservicemitarbeiter für die Rückgabe einer Antwort benötigt hat, in Sekunden.
Fehler
Ein boolescher Wert, der angibt, ob der Agentaufruf zu einem Fehler geführt hat.
Ausgabewerte
Wert | Beschreibung |
---|---|
1 | Fehler |
0 | Gültige Antwort zurückgegeben |
Bewertungs-Dataset vorbereiten
Das Datenschema für die Bewertung der endgültigen Antwort ähnelt dem für die Bewertung der Modellantwort.
Für die berechnungsbasierte Trajektorienbewertung müssen in Ihrem Dataset die folgenden Informationen enthalten sein:
predicted_trajectory
: Die Liste der Tool-Aufrufe, die vom Agent verwendet wurden, um die endgültige Antwort zu erhalten.reference_trajectory
: Die erwartete Verwendung des Tools durch den Agent, um die Anfrage zu erfüllen. Das ist für den Messwerttrajectory_single_tool_use
nicht erforderlich.
Beispiele für Bewertungs-Datasets
Die folgenden Beispiele zeigen Datasets für die Trajektorienbewertung. reference_trajectory
ist für alle Messwerte außer trajectory_single_tool_use
erforderlich.
reference_trajectory = [
# example 1
[
{
"tool_name": "set_device_info",
"tool_input": {
"device_id": "device_2",
"updates": {
"status": "OFF"
}
}
}
],
# example 2
[
{
"tool_name": "get_user_preferences",
"tool_input": {
"user_id": "user_y"
}
},
{
"tool_name": "set_temperature",
"tool_input": {
"location": "Living Room",
"temperature": 23
}
},
]
]
predicted_trajectory = [
# example 1
[
{
"tool_name": "set_device_info",
"tool_input": {
"device_id": "device_3",
"updates": {
"status": "OFF"
}
}
}
],
# example 2
[
{
"tool_name": "get_user_preferences",
"tool_input": {
"user_id": "user_z"
}
},
{
"tool_name": "set_temperature",
"tool_input": {
"location": "Living Room",
"temperature": 23
}
},
]
]
eval_dataset = pd.DataFrame({
"predicted_trajectory": predicted_trajectory,
"reference_trajectory": reference_trajectory,
})
Bewertungs-Dataset importieren
Sie können Ihr Dataset in den folgenden Formaten importieren:
- In Cloud Storage gespeicherte JSONL- oder CSV-Datei
- BigQuery-Tabelle
- Pandas-DataFrame
Der Bewertungsdienst basierend auf generativer KI bietet öffentliche Beispieldatasets, um zu veranschaulichen, wie Sie Ihre Agents bewerten können. Im folgenden Code wird gezeigt, wie Sie die öffentlichen Datasets aus einem Cloud Storage-Bucket importieren:
# dataset name to be imported
dataset = "on-device" # Alternatives: "customer-support", "content-creation"
# copy the tools and dataset file
!gcloud storage cp gs://cloud-ai-demo-datasets/agent-eval-datasets/{dataset}/tools.py .
!gcloud storage cp gs://cloud-ai-demo-datasets/agent-eval-datasets/{dataset}/eval_dataset.json .
# load the dataset examples
import json
eval_dataset = json.loads(open('eval_dataset.json').read())
# run the tools file
%run -i tools.py
Dabei kann dataset
für eines der folgenden öffentlichen Datasets stehen:
"on-device"
für einen On-Device Home Assistant, der Smart-Home-Geräte steuert. Der Agent hilft bei Anfragen wie „Stelle die Klimaanlage im Schlafzimmer so ein, dass sie zwischen 23:00 Uhr und 8:00 Uhr eingeschaltet und die restliche Zeit ausgeschaltet ist.“"customer-support"
für einen Kundenservicemitarbeiter. Der Kundenservicemitarbeiter kann Ihnen bei Anfragen wie „Kannst du alle ausstehenden Bestellungen stornieren und alle offenen Support-Tickets eskalieren?“ helfen."content-creation"
für einen Marketing Content Creation Agent. Der Agent kann bei Anfragen wie „Plane Kampagne X als einmalige Kampagne auf der Social-Media-Website Y mit einem um 50% reduzierten Budget nur für den 25. Dezember 2024 um.“ helfen.
Bewertung ausführen
Bei der Agent-Bewertung können Sie Messwerte für die Antwortbewertung und Messwerte für die Trajektorbewertung in derselben Aufgabe kombinieren.
single_tool_use_metric = TrajectorySingleToolUse(tool_name='tool_name')
eval_task = EvalTask(
dataset=EVAL_DATASET,
metrics=[
"rouge_l_sum",
"bleu",
custom_trajectory_eval_metric, # custom computation-based metric
"trajectory_exact_match",
"trajectory_precision",
single_tool_use_metric,
response_follows_trajectory_metric # llm-based metric
],
)
eval_result = eval_task.evaluate(
runnable=RUNNABLE,
)
Messwerte anpassen
Sie können einen auf einem Large Language Model basierenden Messwert für die Trajektorbewertung mithilfe einer Vorlagenschnittstelle oder von Grund auf anpassen. Weitere Informationen finden Sie unter Modellbasierte Messwerte. Hier ein Beispiel für eine Vorlage:
response_follows_trajectory_prompt_template = PointwiseMetricPromptTemplate(
criteria={
"Follows trajectory": (
"Evaluate whether the agent's response logically follows from the "
"sequence of actions it took. Consider these sub-points:\n"
" - Does the response reflect the information gathered during the trajectory?\n"
" - Is the response consistent with the goals and constraints of the task?\n"
" - Are there any unexpected or illogical jumps in reasoning?\n"
"Provide specific examples from the trajectory and response to support your evaluation."
)
},
rating_rubric={
"1": "Follows trajectory",
"0": "Does not follow trajectory",
},
input_variables=["prompt", "predicted_trajectory"],
)
response_follows_trajectory_metric = PointwiseMetric(
metric="response_follows_trajectory",
metric_prompt_template=response_follows_trajectory_prompt_template,
)
Sie können auch einen benutzerdefinierten berechnungsbasierten Messwert für die Trajektorien- oder Reaktionsbewertung definieren.
def essential_tools_present(instance, required_tools = ["tool1", "tool2"]):
trajectory = instance["predicted_trajectory"]
tools_present = [tool_used['tool_name'] for tool_used in trajectory]
if len(required_tools) == 0:
return {"essential_tools_present": 1}
score = 0
for tool in required_tools:
if tool in tools_present:
score += 1
return {
"essential_tools_present": score/len(required_tools),
}
custom_trajectory_eval_metric = CustomMetric(name="essential_tools_present", metric_function=essential_tools_present)
Ergebnisse ansehen und interpretieren
Die Bewertungsergebnisse werden in Tabellen für Messwerte für die endgültige Reaktion und für Trajektorienmesswerte angezeigt.
Die Auswertungsergebnisse enthalten die folgenden Informationen:
Messwerte für die endgültige Antwort
Ergebnisse auf Instanzebene
Spalte | Beschreibung |
---|---|
Antwort | Vom Agent generierte endgültige Antwort. |
latency_in_seconds | Zeit, die zum Generieren der Antwort benötigt wurde. |
Fehler | Gibt an, ob eine gültige Antwort generiert wurde. |
Punktzahl | Eine für die in der Messwertspezifikation angegebene Antwort berechnete Punktzahl. |
Erklärung | Die Erklärung für den in der Messwertspezifikation angegebenen Wert. |
Ergebnisse zusammenfassen
Spalte | Beschreibung |
---|---|
Mittel | Durchschnittliche Punktzahl für alle Instanzen. |
Standardabweichung | Standardabweichung aller Punktzahlen. |
Messwerte für den Verlauf
Ergebnisse auf Instanzebene
Spalte | Beschreibung |
---|---|
predicted_trajectory | Reihenfolge der Tool-Aufrufe, gefolgt vom Agent, um die endgültige Antwort zu erhalten. |
reference_trajectory | Reihenfolge der erwarteten Tool-Aufrufe. |
Punktzahl | Ein Wert, der für die in der Messwertspezifikation angegebene vorhergesagte und Referenztrajektorie berechnet wird. |
latency_in_seconds | Zeit, die zum Generieren der Antwort benötigt wurde. |
Fehler | Gibt an, ob eine gültige Antwort generiert wurde. |
Ergebnisse zusammenfassen
Spalte | Beschreibung |
---|---|
Mittel | Durchschnittliche Punktzahl für alle Instanzen. |
Standardabweichung | Standardabweichung aller Punktzahlen. |
Agent2Agent-Protokoll (A2A)
Wenn Sie ein Multi-Agent-System erstellen, sollten Sie sich das A2A-Protokoll ansehen. Das A2A-Protokoll ist ein offener Standard, der eine nahtlose Kommunikation und Zusammenarbeit zwischen KI-Agents ermöglicht, unabhängig von den zugrunde liegenden Frameworks. Es wurde im Juni 2025 von Google Cloud an die Linux Foundation gespendet. Wenn Sie die A2A-SDKs verwenden oder die Beispiele ausprobieren möchten, sehen Sie sich das GitHub-Repository an.
Nächste Schritte
Probieren Sie die folgenden Notebooks zur Agent-Bewertung aus:
- Langraph-Agent bewerten
- CrewAI-Agenten bewerten
- Langchain-Agent mit Agent Engine bewerten
- LangGraph-Agent mit Agent Engine bewerten
- CrewAI-Agent mit der Agent Engine bewerten