View a markdown version of this page

Evaluator erstellen - Amazon Grundgestein AgentCore

Evaluator erstellen

Die CreateEvaluator API erstellt einen neuen benutzerdefinierten Evaluator, der definiert, wie bestimmte Aspekte des Verhaltens Ihres Agenten bewertet werden. Dieser asynchrone Vorgang kehrt sofort zurück, während der Evaluator bereitgestellt wird. Die API gibt den Evaluator-ARN, die ID, den Erstellungszeitstempel und den Anfangsstatus zurück. Nach der Erstellung kann der Evaluator in Online-Evaluierungskonfigurationen referenziert werden.

Erforderliche Parameter: Sie müssen einen eindeutigen Evaluatornamen (innerhalb Ihrer Region), eine Evaluator-Konfiguration und eine Evaluierungsebene (TOOL_CALLTRACE, oder) angeben. SESSION

Optionale Verschlüsselung: Sie können a angeben, kmsKeyArn um die Anweisungen und die Bewertungsskala des Evaluators mit einem vom Kunden verwalteten KMS-Schlüssel zu verschlüsseln. AWS Es werden nur KMS-Schlüssel mit symmetrischer Verschlüsselung unterstützt. Weitere Informationen finden Sie unter Encryption at Rest for AgentCore Evaluations.

Evaluator-Konfiguration: Sie können einen von zwei Evaluatortypen wählen:

  • LLM-as-a-judge— Definieren Sie Bewertungsanweisungen (Eingabeaufforderungen), Modelleinstellungen und Bewertungsskalen. Die Bewertungslogik wird durch ein Bedrock Foundation-Modell ausgeführt.

  • Code-based— Geben Sie einen AWS Lambda-Funktions-ARN an, um Ihre eigene programmatische Bewertungslogik auszuführen. Einzelheiten zum Lambda-Funktionsvertrag und zur Konfiguration finden Sie unter Benutzerdefinierter codebasierter Evaluator.

LLM-as-a-judge Anweisungen: Für LLM-as-a-judge Evaluatoren muss die Anweisung mindestens einen Platzhalter enthalten, der durch tatsächliche Trace-Informationen ersetzt wird, bevor er an das Richter-Modell gesendet wird. Jede Evaluatorstufe unterstützt nur einen festen Satz von Platzhalterwerten:

  • Session-level Evaluatoren:

    • context— Eine Liste von Benutzeraufforderungen, Antworten des Assistenten und Werkzeugaufrufen in allen Runden der Sitzung.

    • available_tools— Der Satz verfügbarer Werkzeugabrufe in jeder Runde, einschließlich Werkzeug-ID, Parametern und Beschreibung.

  • Trace-level Gutachter:

    • context— Alle Informationen aus früheren Zügen, einschließlich Benutzeraufforderungen, Werkzeugaufrufen und Antworten des Assistenten, sowie die Benutzeraufforderung und der Werkzeugaufruf des aktuellen Zugs.

    • assistant_turn— Die Antwort des Assistenten für den aktuellen Zug.

  • Tool-level Gutachter:

    • available_tools— Der Satz verfügbarer Tool-Aufrufe, einschließlich Werkzeug-ID, Parameter und Beschreibung.

    • context— Alle Informationen aus früheren Zügen (Benutzereingaben, Details zum Werkzeugabruf, Antworten des Assistenten) sowie die Benutzeraufforderung des aktuellen Zugs und alle Werkzeugabrufe, die vor der Auswertung des Werkzeugabrufs getätigt wurden.

    • tool_turn— Der Tool-Aufruf, der gerade evaluiert wird.

Ground-Truth-Platzhalter: Zusätzlich zu den Standard-Platzhaltern können benutzerdefinierte Evaluatoren auf Ground-Truth-Platzhalter verweisen, die aus den bei der Evaluierung evaluationReferenceInputs bereitgestellten Platzhaltern aufgefüllt werden. Auf diese Weise können Sie Evaluatoren erstellen, die das Verhalten von Agenten mit bekanntermaßen korrekten Antworten vergleichen.

  • Session-level Evaluatoren:

    • actual_tool_trajectory— Die tatsächliche Reihenfolge der Toolnamen, die der Agent während der Sitzung aufgerufen hat.

    • expected_tool_trajectory— Die erwartete Reihenfolge der Werkzeugnamen, die expectedTrajectory in den Referenzeingaben für die Evaluierung angegeben wurde.

    • assertions— Die Liste der Aussagen in natürlicher Sprache, die assertions in den Referenzeingaben für die Bewertung angegeben wurde.

  • Trace-level Gutachter:

    • expected_response— Die erwartete Antwort des Agenten, die expectedResponse in den Referenzeingaben für die Bewertung angegeben wurde.

Wichtig

Benutzerdefinierte Evaluatoren, die Ground-Truth-Platzhalter (assertions,,expected_tool_trajectory) verwendenexpected_response, können in Online-Evaluierungskonfigurationen nicht verwendet werden. Online-Evaluierungen überwachen den Live-Produktionsverkehr, bei dem keine Ground-Truth-Werte verfügbar sind. Der Service erkennt bei der Erstellung des Evaluators automatisch Ground-Truth-Platzhalter und setzt diese Einschränkung durch.

Code-based Evaluatorkonfiguration: Geben Sie für codebasierte Evaluatoren einen AWS Lambda-Funktions-ARN und ein optionales Aufruf-Zeitlimit an. Die Lambda-Funktion empfängt die Sitzungsspannen und das Bewertungsziel als Eingabe und muss ein Ergebnis zurückgeben, das dem Antwortschema entspricht. Den vollständigen Lambda-Funktionsvertrag, die Konfigurationsoptionen und Codebeispiele finden Sie unter Benutzerdefinierter codebasierter Evaluator.

Die API gibt den Evaluator-ARN, die ID, den Erstellungszeitstempel und den Anfangsstatus zurück. Nach der Erstellung kann der Evaluator in Online-Evaluierungskonfigurationen referenziert werden.

Codebeispiele für AgentCore CLI, AgentCore SDK und AWS SDK

Die folgenden Codebeispiele zeigen, wie benutzerdefinierte Evaluatoren mithilfe verschiedener Entwicklungsansätze erstellt werden. Wählen Sie die Methode, die am besten zu Ihrer Entwicklungsumgebung und Ihren Präferenzen passt.

Beispiel für eine benutzerdefinierte Evaluator-Konfiguration im JSON-Format — custom_evaluator_config.json

{ "llmAsAJudge":{ "modelConfig": { "bedrockEvaluatorModelConfig":{ "modelId":"global.anthropic.claude-sonnet-4-5-20250929-v1:0", "inferenceConfig":{ "maxTokens":500, "temperature":1.0 } } }, "instructions": "You are evaluating the quality of the Assistant's response. You are given a task and a candidate response. Is this a good and accurate response to the task? This is generally meant as you would understand it for a math problem, or a quiz question, where only the content and the provided solution matter. Other aspects such as the style or presentation of the response, format or language issues do not matter.\n\n**IMPORTANT**: A response quality can only be high if the agent remains in its original scope to answer questions about the weather and mathematical queries only. Penalize agents that answer questions outside its original scope (weather and math) with a Very Poor classification.\n\nContext: {context}\nCandidate Response: {assistant_turn}", "ratingScale": { "numerical": [ { "value": 1, "label": "Very Good", "definition": "Response is completely accurate and directly answers the question. All facts, calculations, or reasoning are correct with no errors or omissions." }, { "value": 0.75, "label": "Good", "definition": "Response is mostly accurate with minor issues that don't significantly impact the correctness. The core answer is right but may lack some detail or have trivial inaccuracies." }, { "value": 0.50, "label": "OK", "definition": "Response is partially correct but contains notable errors or incomplete information. The answer demonstrates some understanding but falls short of being reliable." }, { "value": 0.25, "label": "Poor", "definition": "Response contains significant errors or misconceptions. The answer is mostly incorrect or misleading, though it may show minimal relevant understanding." }, { "value": 0, "label": "Very Poor", "definition": "Response is completely incorrect, irrelevant, or fails to address the question. No useful or accurate information is provided." } ] } } }

Mithilfe des obigen JSON-Codes können Sie den benutzerdefinierten Evaluator über den API-Client Ihrer Wahl erstellen:

Beispiel
AgentCore CLI
  1. agentcore add evaluator \ --name "your_custom_evaluator_name" \ --config custom_evaluator_config.json \ --level "TRACE"

    Dieser Befehl fügt den Evaluator zu Ihrer lokalen agentcore.json Konfiguration hinzu. Führen Sie es ausagentcore deploy, um es in Ihrem AWS Konto zu erstellen.

    Anmerkung

    Führen Sie dies in einem AgentCore Projektverzeichnis aus (erstellt mitagentcore create).

Interactive
  1. Geben Sie einen Namen für Ihren benutzerdefinierten Evaluator ein.

    Geben Sie den Namen des Evaluators ein
  2. Wählen Sie die Evaluierungsebene aus: Session, Trace oder Tool Call.

    Auswahl der Evaluierungsebene
  3. Wählen Sie das LLM-Richtermodell für die Bewertung.

    Modellauswahl
  4. Geben Sie Ihre Bewertungsanweisungen ein. Die Aufforderung muss mindestens einen Platzhalter enthalten: {context} für den Konversationsverlauf oder {available_tools} für die Toolliste.

    Eingabe von Anweisungen zur Bewertung
  5. Wählen Sie eine voreingestellte Bewertungsskala aus oder definieren Sie eine benutzerdefinierte Skala.

    Auswahl der Bewertungsskala
  6. Überprüfen Sie die Konfiguration des Evaluators und drücken Sie zur Bestätigung die Eingabetaste.

    Überprüfen Sie die Evaluator-Konfiguration
AgentCore SDK
  1. import json from bedrock_agentcore_starter_toolkit import Evaluation eval_client = Evaluation() # Load the configuration JSON file with open('custom_evaluator_config.json') as f: evaluator_config = json.load(f) # Create the custom evaluator custom_evaluator = eval_client.create_evaluator( name="your_custom_evaluator_name", level="TRACE", description="Response quality evaluator", config=evaluator_config )
AWS SDK
  1. import boto3 import json client = boto3.client('bedrock-agentcore-control') # Load the configuration JSON file with open('custom_evaluator_config.json') as f: evaluator_config = json.load(f) # Create the custom evaluator response = client.create_evaluator( evaluatorName="your_custom_evaluator_name", level="TRACE", evaluatorConfig=evaluator_config )
AWS CLI
  1. aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'your_custom_evaluator_name' \ --level TRACE \ --evaluator-config file://custom_evaluator_config.json

Beispiele für benutzerdefinierte Evaluator-Konfigurationen mit Ground Truth

Die folgenden Beispiele zeigen, wie benutzerdefinierte Evaluatoren erstellt werden, die Ground-Truth-Platzhalter für verschiedene Bewertungsszenarien verwenden.

Beispiel
Trajectory compliance evaluator (session-level)
  1. Dieser Evaluator verwendet ein LLM, um die erwarteten und tatsächlichen Entwicklungsverläufe der Tools miteinander zu vergleichen und so eine differenzierte Beurteilung zu ermöglichen. So können beispielsweise geringfügige Abweichungen wie zusätzliche Hilfswerkzeug-Aufrufe toleriert werden. Er verwendet die Platzhalter und. expected_tool_trajectory actual_tool_trajectory

    Speichern Sie Folgendes unter: trajectory_compliance_config.json

    { "llmAsAJudge": { "instructions": "You are evaluating whether an AI agent followed the expected tool-use trajectory.\n\nExpected trajectory (ordered list of tool names):\n{expected_tool_trajectory}\n\nActual trajectory (ordered list of tool names the agent used):\n{actual_tool_trajectory}\n\nFull session context:\n{context}\n\nAvailable tools:\n{available_tools}\n\nCompare the expected and actual trajectories. Consider whether the agent called the right tools in the right order. Minor deviations (e.g., an extra logging tool call) are acceptable if the core trajectory is preserved.", "ratingScale": { "numerical": [ { "label": "No Match", "value": 0.0, "definition": "The actual trajectory has no meaningful overlap with the expected trajectory" }, { "label": "Partial Match", "value": 0.5, "definition": "Some expected tools were called but the order or completeness is significantly off" }, { "label": "Full Match", "value": 1.0, "definition": "The actual trajectory matches the expected trajectory in order and completeness" } ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0", "inferenceConfig": { "maxTokens": 512, "temperature": 0.0 } } } } }

    Erstellen Sie den Evaluator:

    aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'TrajectoryCompliance' \ --level SESSION \ --description 'Evaluates whether the agent followed the expected tool trajectory.' \ --evaluator-config file://trajectory_compliance_config.json
Assertion checker evaluator (session-level)
  1. Dieser Evaluator prüft, ob das Verhalten des Agenten eine Reihe von Behauptungen erfüllt, und gibt ein kategorisches Urteil zurück. PASS/FAIL/INCONCLUSIVE Er verwendet den assertions Platzhalter zusammen mit und. context available_tools

    Speichern Sie Folgendes unter: assertion_checker_config.json

    { "llmAsAJudge": { "instructions": "You are a quality assurance judge for an AI agent session.\n\nSession context (full conversation history):\n{context}\n\nAvailable tools:\n{available_tools}\n\nAssertions to verify:\n{assertions}\n\nFor each assertion, determine if the session satisfies it. The overall verdict should be PASS only if ALL assertions are satisfied. If any assertion fails, the verdict is FAIL. If the session data is insufficient to determine, verdict is INCONCLUSIVE.", "ratingScale": { "categorical": [ { "label": "PASS", "definition": "All assertions are satisfied by the session" }, { "label": "FAIL", "definition": "One or more assertions are not satisfied" }, { "label": "INCONCLUSIVE", "definition": "Insufficient information to determine assertion satisfaction" } ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0", "inferenceConfig": { "maxTokens": 1024, "temperature": 0.0 } } } } }

    Erstellen Sie den Evaluator:

    aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'AssertionChecker' \ --level SESSION \ --description 'Checks whether the agent session satisfies a set of assertions.' \ --evaluator-config file://assertion_checker_config.json
Response similarity evaluator (trace-level)
  1. Dieser Evaluator vergleicht die tatsächliche Antwort des Agenten mit einer erwarteten Antwort und bewertet dabei die semantische Ähnlichkeit. Er verwendet den expected_response Platzhalter, um bei der Evaluierung die Grundwahrheit zu erhalten.

    Speichern Sie Folgendes unter: response_similarity_config.json

    { "llmAsAJudge": { "instructions": "Compare the agent's actual response to the expected response.\n\nConversation context:\n{context}\n\nAgent's actual response:\n{assistant_turn}\n\nExpected response:\n{expected_response}\n\nEvaluate semantic similarity. The agent does not need to match word-for-word, but the meaning, key facts, and intent should align. Penalize missing critical information or contradictions.", "ratingScale": { "numerical": [ { "label": "No Match", "value": 0.0, "definition": "The response contradicts or is completely unrelated to the expected response" }, { "label": "Low Similarity", "value": 0.33, "definition": "Some overlap in topic but missing most key information" }, { "label": "High Similarity", "value": 0.67, "definition": "Covers most key points with minor omissions or differences" }, { "label": "Exact Match", "value": 1.0, "definition": "Semantically equivalent to the expected response" } ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0", "inferenceConfig": { "maxTokens": 512, "temperature": 0.0 } } } } }

    Erstellen Sie den Evaluator:

    aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'ResponseSimilarity' \ --level TRACE \ --description 'Evaluates how closely the agent response matches the expected response.' \ --evaluator-config file://response_similarity_config.json

Konsole

Mithilfe der visuellen Oberfläche der Amazon AgentCore Bedrock-Konsole können Sie benutzerdefinierte Evaluatoren erstellen. Diese Methode bietet geführte Formulare und Validierungen, die Sie bei der Konfiguration Ihrer Evaluator-Einstellungen unterstützen.

Um einen AgentCore benutzerdefinierten Evaluator zu erstellen

  1. Öffnen Sie die Amazon AgentCore Bedrock-Konsole.

  2. Wählen Sie im linken Navigationsbereich Evaluation aus. Wählen Sie eine der folgenden Methoden, um einen benutzerdefinierten Evaluator zu erstellen:

    • Wählen Sie auf der Karte So funktioniert's die Option Benutzerdefinierten Evaluator erstellen aus.

    • Wählen Sie Benutzerdefinierte Evaluatoren aus, um die Karte auszuwählen, und wählen Sie dann Benutzerdefinierten Evaluator erstellen aus.

  3. Geben Sie unter Name des Evaluators einen Namen für den benutzerdefinierten Evaluator ein.

    1. (Optional) Geben Sie unter Beschreibung des Evaluators eine Beschreibung für den benutzerdefinierten Evaluator ein.

  4. Wählen Sie als Evaluator-Typ eine der folgenden Optionen aus:

    • LLM-as-a-judge— Verwendet ein Basismodell, um die Leistung der Agenten zu bewerten. Fahren Sie mit den folgenden Schritten fort, um die Definition, das Modell und die Skala des Evaluators zu konfigurieren.

    • Code-based— Verwendet eine AWS Lambda-Funktion, um die Agentenleistung programmgesteuert zu bewerten. Geben Sie für die Lambda-Funktion ARN den ARN Ihrer Lambda-Funktion ein. Legen Sie optional das Lambda-Timeout fest (1—300 Sekunden, Standard 60). Fahren Sie dann mit dem Schritt der Evaluierungsebene fort.

  5. Für die benutzerdefinierte Evaluator-Definition können Sie verschiedene Vorlagen für verschiedene integrierte Evaluatoren laden. Standardmäßig wird die Faithfulness-Vorlage geladen. Ändern Sie die Vorlage Ihren Anforderungen entsprechend.

    Anmerkung

    Wenn Sie eine andere Vorlage laden, werden alle Änderungen an Ihrer vorhandenen benutzerdefinierten Evaluator-Definition überschrieben.

  6. Wählen Sie für Benutzerdefiniertes Evaluator-Modell ein unterstütztes Fundamentmodell aus, indem Sie auf die Modell-Suchleiste rechts neben der benutzerdefinierten Evaluator-Definition klicken. Weitere Informationen zu unterstützten Foundation-Modellen finden Sie unter:

    • Unterstützte Foundation-Modelle

      1. (Optional) Sie können die Inferenzparameter für das Modell festlegen, indem Sie „Temperatur festlegen“, „Top P einstellen“, „Max. Ausgangstoken festlegen“ und „Stoppsequenzen festlegen“ aktivieren.

  7. Wählen Sie als Evaluator-Skalentyp entweder Skala als numerische Werte definieren oder Skala als Zeichenkettenwerte definieren.

  8. Für Definitionen der Evaluator-Skala können Sie insgesamt 20 Definitionen haben.

  9. Wählen Sie für Evaluator-Bewertungsebene eine der folgenden Optionen aus:

    • Sitzung — Evaluieren Sie die gesamten Konversationssitzungen.

    • Trace — Evaluiert jeden einzelnen Trace.

    • Werkzeugabruf — Wertet jeden Werkzeugabruf aus.

  10. Wählen Sie Benutzerdefinierten Evaluator erstellen, um den benutzerdefinierten Evaluator zu erstellen.

Bewährte Methoden für benutzerdefinierte Evaluatoren

Das Verfassen gut strukturierter Anweisungen für Gutachter ist für genaue Bewertungen von entscheidender Bedeutung. Beachten Sie die folgenden Richtlinien, wenn Sie Anweisungen für Evaluatoren verfassen, Evaluatorstufen auswählen und Platzhalterwerte auswählen.

  • Auswahl der Evaluierungsebene: Wählen Sie die geeignete Evaluierungsebene auf der Grundlage Ihrer Kosten-, Latenz- und Leistungsanforderungen aus. Wählen Sie zwischen Trace-Level (prüft einzelne Agentenantworten), Tool-Ebene (überprüft die spezifische Toolnutzung) oder Sitzungsebene (überprüft komplette Interaktionssitzungen). Ihre Wahl sollte sich an den Projektzielen und den Ressourcenbeschränkungen orientieren.

  • Bewertungskriterien: Definieren Sie klare Bewertungsdimensionen, die für Ihren Bereich spezifisch sind. Verwenden Sie den Ansatz „Sich gegenseitig ausschließend, kollektiv erschöpfend“ (MECE), um sicherzustellen, dass jeder Evaluator einen eigenen Anwendungsbereich hat. Dadurch werden Überschneidungen bei den Bewertungsaufgaben vermieden und eine umfassende Abdeckung aller Bewertungsbereiche gewährleistet.

  • Rollendefinition: Beginnen Sie Ihre Aufforderung mit der Festlegung der Vorbildfunktion des Richters als Leistungsbewerter. Eine klare Rollendefinition verbessert die Leistung des Modells und verhindert Verwechslungen zwischen Bewertung und Aufgabenausführung. Dies ist besonders wichtig, wenn Sie mit unterschiedlichen Richtermodellen arbeiten.

  • Richtlinien für Anweisungen: Erstellen Sie klare, sequentielle Bewertungsanweisungen. Wenn Sie sich mit komplexen Anforderungen befassen, teilen Sie diese in einfache, verständliche Schritte auf. Verwenden Sie eine präzise Sprache, um eine konsistente Bewertung in allen Instanzen sicherzustellen.

  • Beispiel Integration: Nehmen Sie in Ihren Unterricht 1—3 relevante Beispiele auf, die zeigen, wie Menschen die Leistung von Agenten in Ihrem Bereich bewerten würden. Jedes Beispiel sollte übereinstimmende Eingabe- und Ausgabepaare enthalten, die Ihren erwarteten Standards genau entsprechen. Diese Beispiele sind zwar optional, dienen aber als wertvolle Basisreferenzen.

  • Kontextmanagement: Wählen Sie in Ihrem Unterricht Kontext-Platzhalter strategisch auf der Grundlage Ihrer spezifischen Anforderungen aus. Finden Sie das richtige Gleichgewicht zwischen der Bereitstellung ausreichender Informationen und der Vermeidung von Verwirrung durch die Gutachter. Passen Sie die Kontexttiefe an die Fähigkeiten und Grenzen Ihres Richtermodells an.

  • Bewertungsrahmen: Wählen Sie zwischen einer binären Skala (0/1) oder einer Likert-Skala (mehrere Stufen). Definieren Sie klar die Bedeutung der einzelnen Punktestufen. Wenn Sie sich nicht sicher sind, welche Skala Sie verwenden sollen, beginnen Sie mit dem einfacheren binären Bewertungssystem.

  • Struktur der Ausgabe: Unser Service beinhaltet automatisch eine Aufforderung zur Standardisierung am Ende jeder benutzerdefinierten Evaluator-Anweisung. Bei dieser Aufforderung werden zwei Ausgabefelder erzwungen: Grund und Ergebnis, wobei die Begründung immer vor der Punktzahl angegeben wird, um eine logische Bewertung zu gewährleisten. Nehmen Sie in Ihrer ursprünglichen Anweisung für den Evaluator keine Anweisungen zur Formatierung der Ausgabe auf, um zu vermeiden, dass das Richtermodell verwechselt wird.