Cortex Agent-Evaluierungen¶
Cortex Agent-Evaluierungen ermöglichen es Ihnen, das Verhalten und die Leistung Ihres Agenten zu überwachen. Bewerten Sie Ihren Agenten sowohl anhand von Ground Truth- als auch von referenzlosen Evaluierungskennzahlen. Während der Evaluierung wird die Aktivität Ihres Agenten verfolgt und überwacht, sodass Sie sicherstellen können, dass jeder Schritt des Prozesses Ihrem Endziel näher kommt.
Snowflake bietet die folgenden Kennzahlen, anhand derer Ihr Agent bewertet wird:
Antwortkorrektheit – Wie genau die Antwort eines Agenten auf Ihre vorbereitete Abfrage mit der erwarteten Antwort übereinstimmt. Diese Kennzahl ist am nützlichsten, wenn das Datenset, das Ihr Cortex Agent verwendet, statisch ist.
Logische Konsistenz – Misst die Konsistenz zwischen Agentenanweisungen, Planung und Tool-Aufrufen. Diese Kennzahl ist referenzlos, was bedeutet, dass Sie keine Informationen in Ihrem Datenset für die Evaluierung vorbereiten müssen.
Snowflake ermöglicht es Ihnen auch, benutzerdefinierte Evaluierungskennzahlen zu erstellen, die LLM-Judging zur Messung des Kontexts verwenden, der für die Domäne und den Anwendungsfall Ihres Agenten entscheidend ist. Kundenspezifische Kennzahlen verwenden eine LLM-Eingabeaufforderung und Bewertungsmethodik, die an das Evaluierungs-Beurteilungssystem übergeben werden, um eine Punktzahl zu erstellen.
Weitere Details darüber, wie Agentenevaluierungen in Snowflake durchgeführt werden, einschließlich LLM-Judging für referenzlose Evaluierungen, finden Sie im Snowflake-Engineering-Blog Wie ist Ihre Agenten-GPA ? Ein Framework für die Evaluierung der AI-Agentenzuverlässigkeit. Ein Beispiel für das programmgesteuerte Ausführen einer Agentenevaluierung finden Sie in der Anleitung `Erste Schritte mit Cortex Agent-Evaluierungen<https://www.snowflake.com/en/developers/guides/getting-started-with-cortex-agent-evaluations/>`__.
Anforderungen an die Zugriffssteuerung¶
Die Fähigkeit, eine Cortex Agent-Evaluierung durchzuführen, erfordert eine Rolle mit den folgenden Berechtigungen:
Die Rolle DATABASE ROLE SNOWFLAKE.CORTEX_USER
EXECUTE TASK ON ACCOUNT-Berechtigung
USAGE-Berechtigung für die Datenbank, die Ihren Agenten enthält
Die folgenden Berechtigungen für das Schema, das Ihren Agenten enthält:
USAGE
CREATE FILE FORMAT ON SCHEMA
CREATE TASK
EXECUTE TASK
USAGE-Berechtigung für die Datenbank, die Ihre Evaluierungsdaten enthält
Die folgenden Berechtigungen für das Schema, das Ihre Evaluierungsdaten enthält:
USAGE
EXECUTE TASK
Wenn Sie ein Datenset aus einer Eingabetabelle erstellen, CREATE DATASET ON SCHEMA
USAGE- oder OWNERSHIP-Berechtigung für Ihren Agenten
MONITOR- oder OWNERSHIP-Berechtigung für Ihren Agenten
Wenn Sie eine Konfiguration für die Evaluierung eines Agenten verwenden, READ-Berechtigung für den Stagingbereich, der die Konfigurationsdatei enthält.
Wenn der zu bewertende Agent Tools verwendet, benötigt Ihre Rolle auch Zugriff auf alle diese Tools.
Außerdem, wenn Sie mit Evaluierungen in der Snowsight arbeiten, benötigt die Rolle, die Sie zum Ausführen oder Prüfen einer Evaluierung verwenden, die USAGE-Berechtigung für Ihr Standard-Warehouse.
Evaluierungs-Datenset vorbereiten¶
Bevor Sie mit einer Cortex Agent-Evaluierung beginnen, bereiten Sie eine Tabelle vor, die Ihre Evaluierungseingaben enthält. Diese Tabelle wird verwendet, um ein Datenset für die Durchführung Ihrer Evaluierung zu erstellen. Weitere Informationen zu Datensets in Snowflake finden Sie unter Snowflake Datasets.
Cortex Code¶
Damit Cortex Code Sie bei der Erstellung eines Datensets für Ihre Evaluierung unterstützt, verwenden Sie die untergeordnete dataset-curation-Fähigkeit der Cortex Code cortex-agent-Fähigkeit. Weitere Informationen zu Cortex Code-Fähigkeiten finden Sie unter Cortex Code CLI-Fähigkeiten.
Datenset-Format¶
Die Tabelle, die zum Erstellen eines Datensets für die Auswertung verwendet wird, hat eine Eingabeabfragespalte vom Typ VARCHAR, welche Ihre Abfrage darstellt, sowie eine Ausgabespalte vom Typ VARIANT, die eine Beschreibung des erwarteten Verhaltens des Agenten enthält. Diese einzelne Ausgabespalte wird vom LLM-Beurteiler (Judge) als grundlegende Wahrheit verwendet.
Die Werte in der Ausgabespalte haben genau einen Schlüssel: ground_truth_output. Der Wert dieses Schlüssels wird für die Evaluierung der Antwortkorrektheit verwendet. LLM-Judges verwenden die Ground Truth als Grundwahrheit, um die Ausgabe Ihres Agenten zu bewerten, indem sie diese in ihre Eingabeaufforderung aufnehmen.
Tipp
Nutzen Sie die Tatsache, dass die Ground Truth in einer LLM-Eingabeaufforderung enthalten ist, indem Sie natürliche Sprache verwenden, um einen Typ einer Antwort zu beschreiben, zusätzlich zu exakten oder semantischen Antwortübereinstimmungen. Sie könnten zum Beispiel eine Ground Truth von Output is in the following JSON format ... angeben, gefolgt von einer Zeichenfolge, die entweder eine Beschreibung der Struktur oder direkt ein JSON-Beispiel enthält. Wenn Sie eine strengere Untersuchung der Ausgabe auf der Grundlage einer vollständigen kundenspezifischen Eingabeaufforderung benötigen, erstellen Sie eine kundenspezifische Kennzahl.
Um eine JSON-Datenset in eine Snowflake-Tabelle zu übertragen, verwenden Sie die SQL-Funktion PARSE_JSON. Das folgende Beispiel erstellt eine neue Tabelle agent_evaluation_data, die für ein Evaluierungs-Datenset verwendet werden soll, und fügt eine Zeile für die Eingabeabfrage What was the temperature in San Francisco on August 2nd 2019? mit der Ground Truth von``The temperature was 14 degrees Celsius in San Francisco on August 2nd, 2019.`` ein.
Wichtig
Die Funktionen OBJECT_CONSTRUCT und ARRAY_CONSTRUCT geben Nicht-VARIANT-Ergebnisse zurück. Verwenden Sie eine Funktion, die eine VAIRANT aus Ihrer Roheingabe erzeugt, wie PARSE_JSON, oder rufen Sie TO_VARIANT auf, um den Werttyp zu garantieren.
Daten, die Sie über die Spalte ground_truth angeben, die nicht von einer ausgewählten Kennzahl verwendet wird, werden ignoriert. Wenn Sie einen Evaluierungslauf nur mit referenzlosen Kennzahlen ausführen, können Sie die Ausgabespalte leer lassen.
Wenn Sie Ihre erste Evaluierung durchführen, haben Sie die Möglichkeit, ein neues Datenset aus einer bestehenden Tabelle zu erstellen.
Starten einer Agenten-Evaluierung¶
Cortex Code¶
Wenn Sie mit Cortex Code eine Evaluierung ausführen möchten, verwenden Sie die untergeordnete Fähigkeit evaluate-cortex-agent der Cortex Code cortex-agent-Fähigkeit. Weitere Informationen zu Cortex Code-Fähigkeiten finden Sie unter Cortex Code CLI-Fähigkeiten.
Snowsight¶
Bemerkung
Agentenevaluierungen werden mit Ihrer aktuell ausgewählten Rolle in der Snowsight ausgeführt, nicht Ihrer Standardrolle. Vergewissern Sie sich, dass eine Rolle mit den richtigen Berechtigungen aktiv ist, bevor Sie eine Evaluierung starten.
Beginnen Sie Ihre Evaluierung eines Cortex Agent, indem Sie Folgendes tun:
Melden Sie sich bei Snowsight an.
Wählen Sie im Navigationsmenü die Option AI & ML » Agents aus.
Wählen Sie den Agenten aus, für den Sie eine Evaluierung durchführen möchten.
Wählen Sie die Registerkarte Evaluations aus.
Wählen Sie New evaluation run aus.
Das Modalfenster New evaluation run wird geöffnet.
Geben Sie im Feld Name einen Namen für Ihre Evaluierung ein. Dieser Name sollte für den zu bewertenden Agenten eindeutig sein.
Optional: Geben Sie im Feld Description Kommentare zur Evaluierung ein.
Wählen Sie Next aus.
Dies führt zum Modalfenster Select dataset.
Wählen Sie das Datenset aus, das zur Evaluierung Ihres Agenten verwendet wird. Sie können Existing dataset oder Create new dataset auswählen.
So verwenden Sie ein vorhandenes Datenset:
Wählen Sie in der Liste Database and schema die Datenbank und das Schema aus, die Ihr Datenset enthalten.
Wählen Sie aus der Liste Select dataset Ihr Datenset aus.
So erstellen Sie ein neues Datenset:
Wählen Sie in der Liste Source table - Database and schema die Datenbank und das Schema aus, die die Tabelle enthalten, die Sie in ein Datenset importieren möchten.
Wählen Sie aus der Liste Select source table Ihre Quelltabelle aus.
Wählen Sie über die Liste New dataset location - Database and schema die Datenbank und das Schema aus, in denen Ihr neues Datenset gespeichert werden soll.
Geben Sie im Feld Dataset name den Namen Ihres Datensets ein. Dieser Name muss unter den Objekten auf Schemaebene in dem von Ihnen ausgewählten Schema eindeutig sein.
Wählen Sie Next aus.
Dies führt zum Modalfenster Select metrics.
Wählen Sie in der Liste Input query die Spalte Ihres Datensets aus, die die Eingabeabfragen enthält.
Für jede der System metrics setzen Sie den Umschalter für jede Kennzahl, die Sie in Ihre Evaluierung einbeziehen möchten, auf aktiv. Wählen Sie die Spalte Ihres Datensets aus, die die grundlegende Wahrheit (Ground Truth) für Ihre Evaluierung enthält.
(Optional) Um eine kundenspezifische Evaluierung durchzuführen, verwenden Sie den Umschalter Custom metrics.
Wählen Sie die Datenbank und das Schema aus, die den Stagingbereich enthalten, in dem Ihre kundenspezifische Evaluierungskonfiguration gespeichert ist.
Wählen Sie den Stagingbereich aus, in dem Ihre kundenspezifische Evaluierungskonfiguration gespeichert ist.
Wählen Sie die YAML-Konfigurationsdatei für Ihre kundenspezifische Evaluierung aus.
Bemerkung
In der Snowsight werden nur die kundenspezifischen Evaluierungsdefinitionen aus Ihrer YAML-Konfiguration geladen. Der Rest der YAML-Datei muss trotzdem gültig sein. Informationen zur YAML-Spezifikation der Evaluierung finden Sie unter YAML-Spezifikation der Agentenevaluierung.
Setzen Sie den Umschalter für jede kundenspezifische Kennzahl auf aktiv, wenn Sie diese in Ihre Evaluierung aufnehmen möchten. Wählen Sie die Spalte Ihres Datensets aus, die die grundlegende Wahrheit (Ground Truth) für diese Evaluierung enthält.
Wählen Sie Create aus, um die Evaluierung zu erstellen und den Evaluierungsprozess zu starten.
Sie können jederzeit Cancel verwenden, um die Evaluierungserstellung abzubrechen, oder Sie wählen Prev aus, um zum vorherigen Modalfenster zurückzukehren.
SQL¶
Zum Starten oder Abrufen von Informationen zu einer Evaluierung mit SQL verwenden Sie die EXECUTE_AI_EVALUATION-Funktion. Diese Funktion hat die folgenden erforderlichen Argumente:
evaluation_job: Ein Zeichenfolgenwert mit ‚START‘ oder ‚STATUS‘.run_parameters: Ein SQL OBJECT, das den Schlüsselrun_namemit einem Wert mit dem Namen Ihrer Evaluierung enthält.config_file_path:Ein Stagingbereichs-Dateipfad, der auf Ihre YAML-Datei mit der Ausführungskonfiguration verweist. Dieser Pfad kann keine signierte URL sein. Informationen zur YAML-Spezifikation der Evaluierung finden Sie unter YAML-Spezifikation der Agentenevaluierung.
Verwenden Sie den evaluation_job-Wert ‚START‘, um eine Evaluierung zu starten. Im folgenden Beispiel wird eine Ausführung namens run-1 unter Verwendung der Konfiguration der Agenten-Evaluierung von``@eval_db.eval_schema.metrics/agent_evaluation_config.yaml`` gestartet:
Nach dem Start einer Ausführung können Sie den Fortschritt mit dem evaluation_job-Wert ‚STATUS‘ abfragen. Dieser Aufruf gibt eine Tabelle in dem Format zurück, das für AI-Beobachtbarkeitsausführungen verwendet wird. Im folgenden Beispiel wird der Status der mit dem vorherigen Beispiel gestarteten Agentenevaluierung abgefragt:
Tipp
Sie können die EXECUTE_AI_EVALUATION-Funktion von einer Aufgabe aus aufrufen, um regelmäßig eine Evaluierung durchzuführen oder den Status einer solchen zu überprüfen.
Prüfen der Evaluierungsergebnisse¶
Die Evaluierungsergebnisse umfassen Informationen zu den angeforderten Kennzahlen, Details zu den Argumentationssträngen des Agenten sowie Informationen über die LLM-Planungsphase für jede ausgeführte Ablaufverfolgung im Thread.
Cortex Code¶
Cortex Code bietet zwei untergeordnete Fähigkeiten der cortex-agent-Fähigkeit. Verwenden Sie die untergeordnete Fähigkeit investigate-cortex-agent-evals, um Evaluierungen zu prüfen und Probleme in Ihrer Konfiguration oder Ihren Daten zu finden. Verwenden Sie die untergeordnete Fähigkeit optimize-cortex-agent, um die Ergebnisse abgeschlossener Evaluierungen zu nutzen und die Leistung Ihres Agenten zu verbessern.
Snowsight¶
Die Registerkarte Evaluations für einen Agenten in der Snowsight gibt Ihnen einen Überblick über jeden Evaluierungslauf und seine zusammenfassenden Ergebnisse.
So zeigen Sie Evaluierungsergebnisse in Snowsight an:
Melden Sie sich bei Snowsight an.
Wählen Sie im Navigationsmenü die Option AI & ML » Agents aus.
Wählen Sie den Agenten aus, für den Sie eine Evaluierung durchführen möchten.
Wählen Sie die Registerkarte Evaluations aus.
Auflistung der Evaluierungsläufe¶
Die Zusammenfassung der Ausführungsinformationen für jede Ausführung enthält:
RUN NAME– Der Name des Evaluierungslaufs.# OF RECORDS– Die Anzahl der im Rahmen der Ausführung ausgeführten und beantworteten Abfragen.STATUS– Der Status des Evaluierungslaufs, der einer der folgenden ist:– Alle Eingaben wurden ausgewertet und die Ergebnisse sind verfügbar.
Ein Ladesymbol wird angezeigt – Die Ausführung läuft, und es sind noch keine Informationen verfügbar.
– Bei der Ausführung ist an einem bestimmten Punkt ein Fehler aufgetreten. Einige oder alle Kennzahlen sind für die Ausführung möglicherweise nicht verfügbar.
DATASET– Der Name des für die Auswertung verwendeten Datensets.AVG DURATION– Die durchschnittliche Zeitdauer, die für die Ausführung einer Eingabeabfrage benötigt wird.LOGICAL CONSISTENCY– Durchschnitt über alle Eingaben der logischen Konsistenzevaluierung für die Ausführung, falls angefordert.DESCRIPTION– Die Beschreibung des Evaluierungslaufs.CREATED– Die Zeit, zu der die Ausführung erstellt und gestartet wurde.
Jede für diese Ausführung ausgewertete kundenspezifische Kennzahl erhält auch eine eigene Spalte, die durch den Evaluierungskennzahlwert name definiert wird. Weitere Informationen zu kundenspezifischen Kennzahlen finden Sie unter Definieren einer kundenspezifischen Kennzahl.
Überblick über die Ausführung der Evaluierung¶
Wenn Sie eine bestimmte Ausführung in der Snowsight auswählen, wird Ihnen die Ausführungsübersicht angezeigt. Diese Übersicht enthält zusammenfassende Durchschnittswerte für jede während der Ausführung ausgewertete Kennzahl sowie eine Zusammenfassung jeder Eingabeausführung. Die Übersicht für jede Eingabeausführung umfasst:
STATUS– Der Status des Evaluierungslaufs, der einer der folgenden ist:– Alle Eingaben wurden ausgewertet und die Ergebnisse sind verfügbar.
Ein Ladesymbol wird angezeigt – Die Ausführung läuft, und es sind noch keine Informationen verfügbar.
– Bei der Ausführung ist an einem bestimmten Punkt ein Fehler aufgetreten. Einige oder alle Kennzahlen sind für die Ausführung möglicherweise nicht verfügbar.
INPUT– Die für die Evaluierung verwendete Eingabeabfrage.OUTPUT– Die vom Agenten erzeugte Ausgabe.DURATION– Die Zeitdauer, die für die Verarbeitung der Eingabe und das Erstellen der Ausgabe benötigt wird.LOGICAL CONSISTENCY– Die Evaluierung der logischen Konsistenz für die Eingabe, falls angefordert.EVALUATED– Der Zeitpunkt, zu dem die Eingabe verarbeitet wurde.
Jede für diese Ausführung ausgewertete kundenspezifische Kennzahl erhält auch eine eigene Spalte, die durch den Evaluierungskennzahlwert name definiert wird. Weitere Informationen zu kundenspezifischen Kennzahlen finden Sie unter Definieren einer kundenspezifischen Kennzahl.
Datensatzdetails¶
Wenn Sie eine einzelne Eingabe in der Snowsight auswählen, wird die Ansicht Record details angezeigt. Diese Ansicht enthält drei Bereiche: Evaluation results, Thread details und Trace details.
Evaluierungsergebnisse¶
Ihre Evaluierungsergebnisse werden hier im Detail dargestellt. Jede Kennzahl verfügt über eine eigene Darstellung für den Gesamtdurchschnitt über die Eingaben hinweg, die ausgewählt werden kann, um ein Popover mit weiteren Informationen anzuzeigen. Dieses Popover enthält eine Aufschlüsselung der Anzahl der Ausführungen, die mit hoher Genauigkeit (80 % oder mehr Genauigkeit) oder mittlerer Genauigkeit (30 % oder genauer, aber nicht hohe Genauigkeit) durchgeführt wurden oder fehlgeschlagen sind.
Thread-Details¶
Die Informationen, die während der Ausführung jedes Agenten-Threads protokolliert wurden. Dazu gehören standardmäßig die Planung und die Erstellung von Antworten sowie eine Threadablaufverfolgung für jedes Tool, das der Agent während dieses Threads aufgerufen hat.
Ablaufverfolgungsdetails¶
Jeder Ablaufverfolgungsbereich enthält Eingabe-, Verarbeitungs- und Ausgabeinformationen, die für diesen Stage der Agentenausführung relevant sind. Diese Informationen sind die gleichen, die auch von der Agentenüberwachung bereitgestellt werden.
SQL¶
Um die Rohdetails der Evaluierung abzurufen, verwenden Sie die Funktion GET_AI_EVALUATION_DATA (SNOWFLAKE.LOCAL). Diese Funktion hat die folgenden erforderlichen Argumente:
database: Datenbank, die den Agenten enthält.schema: Schema, das den Agenten enthält.agent_name: Der Name des Agenten.agent_type: Die Zeichenfolgenkonstante ‚CORTEX AGENT‘. Dieser Wert unterscheidet nicht zwischen Groß- und Kleinschreibung.run_name: Der Name des abzurufenden Evaluierungslaufs.
Diese Funktion gibt eine Tabelle mit Ereignisdaten zurück, wie in Format der Tabelle mit den Evaluierungsergebnissen beschrieben. Das folgende Beispiel zeigt die vollständigen Evaluierungsdetails für eine Ausführung namens run-1 an, wobei der Agent evaluated_agent heißt, der im Schema eval_db.eval_schema gespeichert ist:
Abfrageablaufverfolgungen für einen einzelnen Datensatz¶
Um auf einen einzelnen Datensatz aus einer Evaluierungsablaufverfolgung zuzugreifen, verwenden Sie die Funktion GET_AI_RECORD_TRACE (SNOWFLAKE.LOCAL). Diese Funktion hat die folgenden erforderlichen Argumente:
database: Datenbank, die den Agenten enthält.schema: Schema, das den Agenten enthält.agent_name: Der Name des Agenten.agent_type: Die Zeichenfolgenkonstante ‚CORTEX AGENT‘. Dieser Wert unterscheidet nicht zwischen Groß- und Kleinschreibung.record_id: Datensatz-ID, nach der gefiltert wird.
Diese Funktion gibt eine Tabelle mit Ereignisdaten zurück, wie in Format der Tabelle mit den Evaluierungsergebnissen beschrieben. Das folgende Beispiel zeigt die Ablaufverfolgung für den Datensatz 9346efc3-5dd6-4038-9b1a-72ca3d3b768c, wobei der Agent evaluated_agent heißt und im Schema eval_db.eval_schema gespeichert ist:
Abfrageevaluierungsfehler und Warnungen für eine Ausführung¶
Um auf Protokolle für Warnungen und Fehler zuzugreifen, die während eines Evaluierungslaufs aufgetreten sind, verwenden Sie die Funktion GET_AI_OBSERVABILITY_LOGS (SNOWFLAKE.LOCAL). Diese Funktion hat die folgenden erforderlichen Argumente:
database: Datenbank, die den Agenten enthält.schema: Schema, das den Agenten enthält.agent_name: Der Name des Agenten.agent_type: Die Zeichenfolgenkonstante ‚CORTEX AGENT‘. Dieser Wert unterscheidet nicht zwischen Groß- und Kleinschreibung.
Diese Funktion gibt eine Tabelle mit Ereignisdaten zurück, wie in Format der Tabelle mit den Evaluierungsergebnissen beschrieben. Im folgenden Beispiel wird auf Fehler und Warnungen für eine Ausführung namens run-1 geprüft, wo der Agent evaluated_agent heißt und im Schema eval_db.eval_schema gespeichert ist:
Bemerkung
Die Felder von record und record_attributes können geändert werden, aber die Felder record:"severity_text" und record_attributes:"snow.ai.observability.run.name" müssen in AI-Beobachtbarkeitsprotokollen garantiert vorhanden sein.
YAML-Spezifikation der Agentenevaluierung¶
Es gibt drei allgemeine Schlüssel, um die YAML-Datei zur Konfiguration einer Agentenevaluierung zu konfigurieren, einschließlich der Definition kundenspezifischer Kennzahlen:
(Optional)
dataset: Eine Definition, wie ein Datenset für die Evaluierung erstellt werden soll. Dieser Wert ist optional, wenn Sie eine YAML-Spezifikation verwenden, um eine Evaluierung in der Snowsight zu starten oder wenn ein vorhandenes Datenset verwendet wird.evaluation: Einstellungen für den zu bewertenden Agenten.metrics: Die während eines Evaluierungslaufs aufgezeichneten Kennzahlen, einschließlich der Definitionen für kundenspezifische Kennzahlen.
Datenset-Definition¶
Der dataset-Wert definiert ein neues Datenset aus bestehenden Tabellendaten, die Spalten für die Eingabeabfrage und die Ground Truth zuordnen. Informationen zu der für Ihre Spalte ground_truth erforderliche Struktur finden Sie unter Datenset-Format. Die Schlüssel für den dataset-Wert sind:
dataset_type: Die Zeichenfolgenkonstante ‚CORTEX AGENT‘. Dieser Wert unterscheidet nicht zwischen Groß- und Kleinschreibung.table_name: Der vollqualifizierte Name der Tabelle, die für den Inhalt des Datasets verwendet werden soll.dataset_name: Der Name des erstellten Datensets.column_mapping: Die Zuordnung der erforderlichen Eingabespaltequery_textund der Ausgabespalteground_truthfür die Evaluierung zu Spalten der Tabelle, aus der das Datenset erstellt werden soll.
Das resultierende Dataset wird in derselben Datenbank und demselben Schema gespeichert wie die Tabelle, aus der es erstellt wurde.
Die folgende Beispiel-Datensetdefinition zeigt ein Datenset mit dem Namen evaluation_input, das aus der Tabelle evals_db.evals_schema.evaluation_data unter Verwendung von user_question als Eingabe und expected_outcome zum Definieren der grundlegenden Wahrheit erstellt wurde:
Agentenkonfiguration¶
Der evaluation-Wert legt die Konfiguration für den Agenten fest, mit der eine Evaluierung durchgeführt werden soll. Die Schlüssel für den evaluation-Wert sind:
agent_params: Ein Wörterbuch, das den Agenten beschreibt, für den die Evaluierung durchgeführt werden soll. Dieser Wert verwendet folgende Schlüssel:agent_name: Der Name des zu bewertenden Agenten.agent_type: Die Zeichenfolgenkonstante ‚CORTEX AGENT‘. Dieser Wert unterscheidet nicht zwischen Groß- und Kleinschreibung.
(Optional)
run_params: Metadaten zur Identifizierung dieses Evaluierungslaufs. Dieser Wert verwendet folgende Schlüssel:(Optional)
label: Das Label für diese Evaluierung.(Optional)
description: Eine detaillierte Beschreibung der Evaluierung.
source_metadata: Ein Wörterbuch, welches das für die Evaluierung verwendete Datenset beschreibt. Dieser Wert verwendet folgende Schlüssel:type: Die Zeichenfolgenkonstante ‚DATASET‘. Dieser Wert unterscheidet nicht zwischen Groß- und Kleinschreibung.dataset_name: Der Name des zu verwendenden Datensets.
Das folgende Beispiel für die Konfiguration eines Agenten führt einen Agenten namens evaluated_agent mit der Bezeichnung Basic evaluation unter Verwendung des Datensets evaluation_input aus:
Auswahl der Kennzahlen¶
Der metrics-Wert ist eine Sequenz von zu bewertenden Kennzahlen, einschließlich Ihrer eigenen kundenspezifischen Kennzahldefinitionen. Die akzeptierten Werte für vordefinierte Kennzahlen sind:
answer_correctness: Messen der Korrektheit der Antwort des Agenten anhand einer Ground Truth-Ausgabe.logical_consistency: Messen der Konsistenz zwischen Agentenanweisungen, Planung und Tool-Aufrufen. Diese Kennzahl ist referenzlos und verwendet kein Datenset.
Definieren einer kundenspezifischen Kennzahl¶
Sie können Ihre eigene kundenspezifische Kennzahl definieren, indem Sie einen Bezeichner, eine Eingabeaufforderung und Wertebereiche angeben. Die von Ihnen angegebene Eingabeaufforderung wird an einen LLM-Judge zusammen mit Ausführungsverfolgungen übergeben, um Ihre kundenspezifische Evaluierung durchzuführen. Kundenspezifische Kennzahlen haben die folgenden erforderlichen Schlüssel-Wert-Paare:
name: Der Name der Metrik.score_ranges: Eine Zuordnung, die Bereiche mit niedriger, mittlerer und hoher Qualitätskennzahl definiert. Diese Zuordnung verwendet folgende Schlüssel:min_score: Der Bewertungsbereich, der zur Identifizierung von Ergebnissen mit geringer Qualität verwendet wird, als Zwei-Element-Sequenz von der inklusiven Untergrenze bis zur ausschließlichen Obergrenze.median_score: Der Bewertungsbereich, der zur Identifizierung von Ergebnissen mittlerer Qualität verwendet wird, als Zwei-Element-Sequenz von der inklusiven Untergrenze bis zur inklusiven Obergrenze.max_score: Der Bewertungsbereich, der zur Identifizierung von Ergebnissen hochwertiger Qualität verwendet wird, als Zwei-Element-Sequenz von der ausschließlichen Untergrenze bis zur inklusiven Obergrenze.
prompt: Die Prompt-Vorlage, die an den LLM-Judge zusammen mit den Ablaufverfolgungsdaten der Agentenausführung übergeben werden soll.Wichtig
Diese Vorlage muss einen Bewertungsmechanismus enthalten, der einen numerischen Wert erzeugt, der in den für
score_rangesangegebenen Bereichen dargestellt wird.
Die Eingabeaufforderung einer kundenspezifischen Kennzahl kann auf die vom Agenten während eines Evaluierungslaufs generierten Ablaufverfolgungsdaten verweisen. Snowflake übergibt die gesamte Ablaufverfolgung als Eingabe an den LLM-Judge, aber Sie können bestimmte Informationen gewichten, indem Sie eine Ersetzungszeichenfolge verwenden, die direkt auf Daten in einer GET_AI_RECORD_TRACEj-Spalte verweist. Die folgenden Ersetzungszeichenfolgen sind verfügbar:
Ersetzungszeichenfolge |
Spalte GET_AI_RECORD_TRACE |
|---|---|
|
INPUT |
|
OUTPUT |
|
GROUND_TRUTH |
|
TOOL |
|
START_TIMESTAMP |
|
DURATION_MS |
|
SPAN_ID |
|
SPAN_TYPE |
|
SPAN_NAME |
|
LLM_MODEL |
|
ERROR |
|
STATUS |
Beispiel für die Konfiguration von Kennzahlen¶
Im folgenden Beispiel wird eine Kennzahlkonfiguration definiert, die Überprüfungen der Korrektheit der Antwort und der logischen Konsistenz ermöglicht, und außerdem eine kundenspezifische relevance-Kennzahl, die einen Wert zwischen 1–10 zurückgibt, je nachdem, wie der Vergleich der Ground Truth mit der Ausgabe des Agenten ausfällt:
Vollständige Beispielkonfiguration¶
Die Kombination aller vorherigen Beispielabschnitte ergibt eine vollständige Konfiguration der Agentenevaluierung:
Hochladen der Konfiguration in einen Stagingbereich¶
Die Konfiguration der Agentenevaluierung muss ein bestimmtes Dateiformat haben, damit Snowflake sie analysieren kann. Der folgende Ausschnitt zeigt die Erstellung der erforderlichen yaml_file_format für das Schema evals_db.evals_schema und erstellt dann den Stagingbereich evaluation_config, um eine Agentenkonfiguration hochzuladen:
Laden Sie Ihre Konfiguration über in einen erstellten Stagingbereich über die Snowsight hoch. Wählen Sie dazu im Navigationsmenü Ingestion » Add Data und dann Load files into a Stage aus. Sie können auch den SQL PUT-Befehl zum Hochladen einer lokalen YAML-Datei verwenden. Das folgende Beispiel zeigt das Kopieren der lokalen Datei /Users/dev/evaluation_config.yaml in den Stagingbereich evals_db.evals_schema.evaluation_config:
Wenn Sie Ihre YAML in einem :doc:` Arbeitsbereich </user-guide/ui-snowsight/workspaces>` erstellt haben, können Sie diese aus Ihrem aktiven Arbeitsbereich in einen Stagingbereich kopieren. Im folgenden Beispiel wird die Datei evaluation_config.yaml von Ihrem Arbeitsbereich in den Stagingbereich evals_db.evals_schema.evaluation_config kopiert:
Tipp
Snowflake empfiehlt, Ihre YAML-Datei unkomprimiert zu verwenden.
Format der Tabelle mit den Evaluierungsergebnissen¶
Funktionen, die Informationen über eine Cortex Agent-Evaluierung zurückgeben, erzeugen alle eine Tabelle mit den folgenden Spalten:
Spalte |
Datentyp |
Beschreibung |
|---|---|---|
RECORD_ID |
VARCHAR |
Der von Snowflake zugewiesene eindeutige Bezeichner für diesen Evaluierungsdatensatz. |
INPUT_ID |
VARCHAR |
Der von Snowflake zugewiesene eindeutige Bezeichner für diese Evaluierungseingabe. |
REQUEST_ID |
VARCHAR |
Der von Snowflake zugewiesene eindeutige Bezeichner für diese Anforderung. |
TIMESTAMP |
TIMESTAMP_TZ |
Die Uhrzeit (in UTC), zu der die Anforderung gestellt wurde. |
DURATION_MS |
INT |
Die Zeit in Millisekunden, die der Agent benötigte, um eine Antwort zurückzugeben. |
INPUT |
VARCHAR |
Die Abfragezeichenfolge, die als Eingabe für diesen Evaluierungsdatensatz verwendet wurde. |
OUTPUT |
VARCHAR |
Die vom Cortex Agent für diesen Evaluierungsdatensatz zurückgegebene Antwort. |
ERROR |
VARCHAR |
Informationen über Fehler, die während der Anforderung aufgetreten sind. |
GROUND_TRUTH |
VARCHAR |
Die Ground Truth-Informationen, die zur Bewertung der Cortex Agent-Ausgabe dieses Datensatzes verwendet wurden. |
METRIC_NAME |
VARCHAR |
Der Name der für diesen Datensatz bewerteten Kennzahl. |
EVAL_AGG_SCORE |
NUMBER |
Die für diesen Datensatz zugewiesene Evaluierungskennzahl. |
METRIC_TYPE |
VARCHAR |
Der Typ der zu bewertenden Kennzahl. Für integrierte Kennzahlen ist der Wert |
METRIC_STATUS |
VARIANT |
Eine Zuordnung mit Informationen über die HTTP-Antwort des Agenten für diesen Datensatz mit den folgenden Schlüsseln:
|
METRIC_CALLS |
ARRAY |
Ein Array von VARIANT-Werten, die Informationen über die berechnete Kennzahl enthalten. Jeder Array-Eintrag enthält die Kriterien der Kennzahl, eine Erklärung der Kennzahl-Bewertung und Metadaten. Die Schlüssel der einzelnen Einträge sind:
|
TOTAL_INPUT_TOKENS |
INT |
Die Gesamtzahl der Token, die zur Verarbeitung der Eingabeabfrage verwendet wurden. |
TOTAL_OUTPUT_TOKENS |
INT |
Die Gesamtzahl der vom Cortex Agent erzeugten Ausgabe-Token. |
LLM_CALL_COUNT |
INT |
Zählt, wie oft LLM aufgerufen wurde, entweder vom Agenten oder einem Evaluierungs-Judge. |
Verfügbarkeit der Modelle¶
Die Evaluierung der Agenten unterstützt derzeit nur die Modelle claude-4-sonnet und claude-3-5-sonnet, mit regionsübergreifender Inferenz. Snowflake wählt automatisch aus diesen Modellen auf der Grundlage Ihrer Kontoeinstellungen aus.
Modell |
Cloudübergreifend (beliebige Region) |
AWS-US |
AWS US Commercial Gov |
AWS-EU |
AWS-APJ |
|---|---|---|---|---|---|
|
✔ |
✔ |
✔ |
✔ |
✔ |
|
✔ |
✔ |
Bekannte Einschränkungen¶
Cortex Agent-Evaluierungen unterliegen den folgenden Beschränkungen:
Antwortzeiten und Durchsatz der Agenten: Die Anzahl der Eingaben, die während einer Evaluierung verarbeitet werden können, wird durch die Antwortzeiten der Agenten und die Menge der Ablaufverfolgungsdetails eingeschränkt. Wenn Sie bei Ihrer Evaluierung Timeouts oder große Verzögerungen feststellen, teilen Sie Ihre Evaluierungsdaten auf. Wenn Sie z. B. Abfragen haben, die garantiert viele verschiedene Tools aufrufen, können Sie Daten durch gemeinsame Toolaufrufe partitionieren. Wenn Sie eine kundenspezifische Evaluierung haben, die zu Timeouts führt, verfeinern oder verkürzen Sie Ihre Eingabeaufforderung. Vielleicht sollten Sie auch in Betracht ziehen, kundenspezifische Evaluierungen aufzuteilen, um sich nur auf ein bestimmtes Element der Ausgabe Ihres Agenten zu konzentrieren.
**Veralten der grundlegenden Wahrheit“: Je nachdem, wie Sie Ihre Abfragen formulieren, können die Ergebnisse im Laufe der Zeit abweichen und zu weniger genauen Evaluierungsergebnissen führen. Insbesondere sollten Sie versuchen, Eingabeabfragen auf bestimmte, absolute Datumsangaben und Zeiten zu beschränken. Beispiel: Bei den beiden Eingabeabfragen
What was our revenue?undWhat was our revenue for the first quarter?kommt es zu einer Abweichung, während die AbfrageWhat was our revenue between January and March of 2025?auf ein bestimmtes Zeitfenster beschränkt ist, auf das in den Evaluierungsdaten konsistent verwiesen werden kann.
Hinweise zu Kosten¶
Agentenevaluierungen führen einen Cortex Agent aus, um Ausgaben für die Evaluierung zu erzeugen, sowie LLM-Judges zur Berechnung der Evaluierungskennzahlen. Ihnen wird jede Ausführung des Agenten mit einer Ground Truth-Abfrage in Rechnung gestellt. Die LLM-Judges der Evaluierung werden von der Funktion AI_COMPLETE ausgeführt, und es fallen Gebühren an, die sich nach dem Modell richten, das Snowflake für die Beurteilung auswählt. Außerdem wird Ihnen Folgendes in Rechnung gestellt:
Warehouse-Gebühren für Aufgaben, die für die Verwaltung von Bewertungsläufen verwendet werden
Warehouse-Gebühren für Abfragen, die zur Berechnung von Bewertungskennzahlen verwendet werden
Speichergebühren für Datensets und Evaluierungsergebnisse
Warehouse-Gebühren für das Abrufen von Evaluierungsergebnissen, die in der Snowsight angezeigt werden
Weitere Informationen zum Schätzen der Kosten finden Sie unter Erläuterungen zu den Gesamtkosten. Die vollständigen Kosteninformationen finden Sie unter Snowflake Service Consumption Table.