Generative KI-Agents bewerten

Nachdem Sie Ihr generatives KI-Modell erstellt und bewertet haben, können Sie es verwenden, um einen Agenten wie einen Chatbot zu erstellen. Mit dem Gen AI Evaluation Service können Sie die Fähigkeit Ihres KI-Agenten messen, Aufgaben und Ziele für Ihren Anwendungsfall zu erfüllen.

Übersicht

Sie haben die folgenden Möglichkeiten, Ihren Agenten zu bewerten:

  • Bewertung der endgültigen Antwort: Bewerten Sie die endgültige Ausgabe eines KI-Agenten (unabhängig davon, ob der KI-Agent sein Ziel erreicht hat oder nicht).

  • Ablaufbewertung: Bewerten Sie den Pfad (Sequenz von Toolaufrufen), den der Agent genommen hat, um die endgültige Antwort zu erhalten.

Mit dem Gen AI Evaluation Service können Sie die Ausführung eines Agenten auslösen und Messwerte für die Bewertung des Ablaufs und der endgültigen Antwort in einer einzigen Vertex AI SDK-Abfrage abrufen.

Unterstützte KI-Agenten

Der Gen AI Evaluation Service unterstützt die folgenden Kategorien von KI-Agenten:

Unterstützte KI-Agenten Beschreibung
KI-Agent, der mit der Vorlage von Agent Runtime erstellt wurde Die Agent Runtime ist eine Plattform von Cloud de Confiance by S3NS , auf der Sie KI-Agenten bereitstellen und verwalten können.
LangChain-Agenten, die mit der anpassbaren Vorlage von Agent Runtime erstellt wurden LangChain ist eine Open-Source-Plattform.
Benutzerdefinierte Agentenfunktion Die benutzerdefinierte Agentenfunktion ist eine flexible Funktion, die einen Prompt für den Agenten annimmt und eine Antwort und einen Trajektorienverlauf in einem Wörterbuch zurückgibt.

Messwerte für die Bewertung von KI-Agenten definieren

Messwerte für die Bewertung der endgültigen Antwort oder des Ausführungspfads definieren:

Bewertung der endgültigen Antwort

Die Bewertung der endgültigen Antwort erfolgt nach demselben Verfahren wie die Bewertung der Modellantwort. Weitere Informationen finden Sie unter Bewertungsmesswerte definieren.

Bewertung der Vorgehensweise

Mit den folgenden Messwerten können Sie die Fähigkeit des Modells bewerten, dem erwarteten Verlauf zu folgen:

Genaue Übereinstimmung

Wenn die vorhergesagte Trajektorie mit der Referenztrajektorie identisch ist und genau dieselben Toolaufrufe in genau derselben Reihenfolge enthält, gibt der Messwert trajectory_exact_match den Wert 1 zurück, andernfalls 0.

Eingabeparameter für Messwerte

Eingabeparameter Beschreibung
predicted_trajectory Die Liste der Toolaufrufe, die der Agent verwendet hat, um die endgültige Antwort zu erhalten.
reference_trajectory Die erwartete Toolnutzung für den KI-Agenten, um die Anfrage zu beantworten.

Ausgabewerte

Wert Beschreibung
0 Die vorhergesagte Trajektorie stimmt nicht mit der Referenz überein.
1 Die vorhergesagte Trajektorie entspricht der Referenz.

Übereinstimmung in der Reihenfolge

Wenn die vorhergesagte Trajektorie alle Toolaufrufe aus der Referenztrajektorie in derselben Reihenfolge enthält und möglicherweise auch zusätzliche Toolaufrufe hat, gibt der Messwert trajectory_in_order_match den Wert 1 zurück, andernfalls 0.

Eingabeparameter für Messwerte

Eingabeparameter Beschreibung
predicted_trajectory Der vorhergesagte Ablauf, den der Agent verwendet hat, um die endgültige Antwort zu erhalten.
reference_trajectory Die erwartete vorhergesagte Trajektorie für den Agenten, um die Anfrage zu erfüllen.

Ausgabewerte

Wert Beschreibung
0 Die Toolaufrufe in der vorhergesagten Trajektorie stimmen nicht mit der Reihenfolge in der Referenztrajektorie überein.
1 Die vorhergesagte Trajektorie entspricht der Referenz.

Any-order match

Wenn die vorhergesagte Trajektorie alle Toolaufrufe aus der Referenztrajektorie enthält, die Reihenfolge jedoch keine Rolle spielt und zusätzliche Toolaufrufe enthalten sein können, gibt der Messwert trajectory_any_order_match den Wert 1 zurück, andernfalls 0.

Eingabeparameter für Messwerte

Eingabeparameter Beschreibung
predicted_trajectory Die Liste der Toolaufrufe, die der Agent verwendet hat, um die endgültige Antwort zu erhalten.
reference_trajectory Die erwartete Toolnutzung für den KI-Agenten, um die Anfrage zu beantworten.

Ausgabewerte

Wert Beschreibung
0 Die vorhergesagte Trajektorie enthält nicht alle Toolaufrufe in der Referenztrajektorie.
1 Die vorhergesagte Trajektorie entspricht der Referenz.

Precision

Der Messwert trajectory_precision gibt an, wie viele der Toolaufrufe im vorhergesagten Verlauf gemäß dem Referenzverlauf tatsächlich relevant oder korrekt sind.

Die Precision wird so berechnet: Zählen Sie, wie viele Aktionen in der vorhergesagten Trajektorie auch in der Referenztrajektorie vorkommen. Teilen Sie diese Anzahl durch die Gesamtzahl der Aktionen in der vorhergesagten Trajektorie.

Eingabeparameter für Messwerte

Eingabeparameter Beschreibung
predicted_trajectory Die Liste der Toolaufrufe, die der Agent verwendet hat, um die endgültige Antwort zu erhalten.
reference_trajectory Die erwartete Toolnutzung für den KI-Agenten, um die Anfrage zu beantworten.

Ausgabewerte

Wert Beschreibung
Eine Gleitkommazahl im Bereich [0,1] Je höher der Wert, desto genauer ist die vorhergesagte Trajektorie.

Recall

Der Messwert trajectory_recall gibt an, wie viele der wichtigen Toolaufrufe aus der Referenztrajektorie tatsächlich in der vorhergesagten Trajektorie erfasst werden.

Der Recall wird so berechnet: Zählen Sie, wie viele Aktionen in der Referenztrajektorie auch in der vorhergesagten Trajektorie vorkommen. Teilen Sie diese Anzahl durch die Gesamtzahl der Aktionen in der Referenztrajektorie.

Eingabeparameter für Messwerte

Eingabeparameter Beschreibung
predicted_trajectory Die Liste der Toolaufrufe, die der Agent verwendet hat, um die endgültige Antwort zu erhalten.
reference_trajectory Die erwartete Toolnutzung für den KI-Agenten, um die Anfrage zu beantworten.

Ausgabewerte

Wert Beschreibung
Eine Gleitkommazahl im Bereich [0,1] Je höher der Wert, desto besser ist der Recall der vorhergesagten Trajektorie.

Nutzung eines einzelnen Tools

Mit dem Messwert trajectory_single_tool_use wird geprüft, ob ein bestimmtes Tool, das in der Messwertspezifikation angegeben ist, in der vorhergesagten Trajektorie verwendet wird. Die Reihenfolge der Toolaufrufe oder die Häufigkeit der Toolnutzung wird nicht geprüft, sondern nur, ob das Tool vorhanden ist oder nicht.

Eingabeparameter für Messwerte

Eingabeparameter Beschreibung
predicted_trajectory Die Liste der Toolaufrufe, die der Agent verwendet hat, um die endgültige Antwort zu erhalten.

Ausgabewerte

Wert Beschreibung
0 Das Tool ist nicht vorhanden.
1 Das Tool ist vorhanden.

Außerdem werden den Bewertungsergebnissen standardmäßig die folgenden beiden Messwerte für die Agentenleistung hinzugefügt. Sie müssen sie nicht in EvalTask angeben.

latency

Zeit, die der KI-Agent für die Rückgabe einer Antwort benötigt.

Wert Beschreibung
Eine Gleitkommazahl Berechnet in Sekunden.

failure

Ein boolescher Wert, der angibt, ob der Agentenaufruf zu einem Fehler geführt hat oder erfolgreich war.

Ausgabewerte

Wert Beschreibung
1 Fehler
0 Gültige Antwort zurückgegeben

Dataset für die Agentenbewertung vorbereiten

Bereiten Sie Ihr Dataset für die Bewertung der endgültigen Antwort oder der Vorgehensweise vor.

Das Datenschema für die Bewertung der endgültigen Antwort ähnelt dem der Bewertung der Modellantwort.

Für die rechenbasierte Trajektorienbewertung müssen in Ihrem Dataset die folgenden Informationen enthalten sein:

Eingabetyp Inhalt des Eingabefelds
predicted_trajectory Die Liste der Toolaufrufe, die von den Agenten verwendet wurden, um die endgültige Antwort zu erhalten.
reference_trajectory (nicht erforderlich für trajectory_single_tool_use metric) Die erwartete Toolnutzung für den KI-Agenten, um die Anfrage zu beantworten.

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 Gen AI Evaluation Service bietet öffentliche Beispiel-Datasets, um zu zeigen, wie Sie Ihre Agenten bewerten können. Der folgende Code zeigt, 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 ist dataset eines der folgenden öffentlichen Datasets:

  • "on-device" für einen On-Device Home Assistant, der Smart-Home-Geräte steuert. Der Agent hilft bei Anfragen wie „Plane die Klimaanlage im Schlafzimmer so, dass sie zwischen 23:00 Uhr und 8:00 Uhr eingeschaltet ist und den Rest der Zeit ausgeschaltet ist.“

  • "customer-support" für einen Kundensupport-Agenten. Der KI-Agent hilft bei Anfragen wie „Kannst du alle ausstehenden Bestellungen stornieren und alle offenen Support-Tickets eskalieren?“

  • "content-creation" für einen Agenten zur Erstellung von Marketinginhalten. Der Agent hilft bei Anfragen wie „Kampagne X als einmalige Kampagne auf der Social-Media-Website Y mit einem um 50% reduzierten Budget nur am 25. Dezember 2024 neu planen“.

Bewertung von KI-Agenten ausführen

Führen Sie eine Bewertung für die Trajektorie oder die endgültige Antwort aus:

Für die Agentenbewertung können Sie Messwerte für die Antwortbewertung und Messwerte für die Trajektorienbewertung kombinieren, wie im folgenden Code gezeigt:

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

Messwertanpassung

Sie können einen auf einem Large Language Model basierenden Messwert für die Trajektorienbewertung mithilfe einer Vorlage oder von Grund auf neu anpassen. Weitere Informationen finden Sie unter Bewertungsmesswerte definieren. Hier ein Beispiel:

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 rechenbasierten Messwert für die Bewertung der Vorgehensweise oder der Antwort 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

Bei der Bewertung des Ausführungspfads oder der endgültigen Antwort werden die Bewertungsergebnisse so angezeigt:

Tabellen für Messwerte zur Agentenbewertung

Die Bewertungsergebnisse enthalten die folgenden Informationen:

Messwerte für die endgültige Antwort

Ergebnisse auf Instanzebene

Spalte Beschreibung
Antwort Die endgültige Antwort, die vom KI-Agenten generiert wurde.
latency_in_seconds Zeit, die zum Generieren der Antwort benötigt wurde.
Fehler Gibt an, ob eine gültige Antwort generiert wurde oder nicht.
Punktzahl Ein Wert, der für die in der Messwertspezifikation angegebene Antwort berechnet wird.
Erklärung Die Erläuterung für die in der Messwertspezifikation angegebene Punktzahl.

Zusammengefasste Ergebnisse

Spalte Beschreibung
Mittel Durchschnittliche Punktzahl für alle Instanzen.
Standardabweichung Standardabweichung aller Punktzahlen.

Messwerte für die Entwicklung

Ergebnisse auf Instanzebene

Spalte Beschreibung
predicted_trajectory Abfolge von Toolaufrufen, die der Agent ausführt, um die endgültige Antwort zu erhalten.
reference_trajectory Abfolge der erwarteten Toolaufrufe.
Punktzahl Ein Wert, der für die vorhergesagte und die Referenzvorgehensweise berechnet wird, die in der Messwertspezifikation angegeben sind.
latency_in_seconds Zeit, die zum Generieren der Antwort benötigt wurde.
Fehler Gibt an, ob eine gültige Antwort generiert wurde oder nicht.

Zusammengefasste Ergebnisse

Spalte Beschreibung
Mittel Durchschnittliche Punktzahl für alle Instanzen.
Standardabweichung Standardabweichung aller Punktzahlen.

Agent2Agent-Protokoll (A2A)

Wenn Sie ein Multi-Agenten-System erstellen, empfehlen wir Ihnen dringend, sich das A2A-Protokoll anzusehen. Das A2A-Protokoll ist ein offener Standard, der eine nahtlose Kommunikation und Zusammenarbeit zwischen KI-Agenten ermöglicht, unabhängig von ihren zugrunde liegenden Frameworks. Es wurde im Juni 2025 von Cloud de Confiance by S3NS an die Linux Foundation gespendet. Wenn Sie die A2A SDKs verwenden oder die Beispiele ausprobieren möchten, rufen Sie das GitHub-Repository auf.

Nächste Schritte

Probieren Sie die folgenden Notebooks zur Agentenbewertung aus: