View a markdown version of this page

Crea un valutatore - Amazon Bedrock AgentCore

Crea un valutatore

L'CreateEvaluatorAPI crea un nuovo strumento di valutazione personalizzato che definisce come valutare aspetti specifici del comportamento dell'agente. Questa operazione asincrona viene ripristinata immediatamente durante il provisioning del valutatore. L'API restituisce l'ARN, l'ID, il timestamp di creazione e lo stato iniziale del valutatore. Una volta creato, è possibile fare riferimento al valutatore nelle configurazioni di valutazione online.

Parametri richiesti: è necessario specificare un nome di valutazione univoco (all'interno della propria regione), la configurazione del valutatore e il livello di valutazione (TOOL_CALL, o). TRACE SESSION

Crittografia opzionale: puoi specificare kmsKeyArn a per crittografare le istruzioni del valutatore e la scala di valutazione con una chiave KMS gestita dal cliente. AWS Sono supportate solo le chiavi KMS con crittografia simmetrica. Per ulteriori informazioni, consulta Encryption at rest for Evaluations. AgentCore

Configurazione del valutatore: è possibile scegliere uno dei due tipi di valutatore:

  • LLM-as-a-judge— Definire le istruzioni di valutazione (prompt), le impostazioni del modello e le scale di valutazione. La logica di valutazione viene eseguita da un modello di base Bedrock.

  • Code-based— Specificare una AWS funzione Lambda ARN per eseguire la propria logica di valutazione programmatica. Per i dettagli sul contratto e sulla configurazione della funzione Lambda, consulta Valutatore personalizzato basato su codice.

LLM-as-a-judge istruzioni: per LLM-as-a-judge i valutatori, l'istruzione deve includere almeno un segnaposto, che viene sostituito con informazioni di tracciamento effettive prima di essere inviate al modello di giudice. Ogni livello di valutatore supporta solo un insieme fisso di valori segnaposto:

  • Session-level valutatori:

    • context— Un elenco di istruzioni degli utenti, risposte degli assistenti e chiamate agli strumenti in tutti i turni della sessione.

    • available_tools— Il set di chiamate allo strumento disponibili in ogni turno, inclusi l'ID dello strumento, i parametri e la descrizione.

  • Trace-level valutatori:

    • context— Tutte le informazioni relative ai turni precedenti, inclusi i prompt degli utenti, le chiamate agli strumenti e le risposte degli assistenti, oltre al prompt dell'utente e alla chiamata allo strumento del turno corrente.

    • assistant_turn— La risposta dell'assistente per il turno in corso.

  • Tool-level valutatori:

    • available_tools— L'insieme delle chiamate agli strumenti disponibili, inclusi l'ID dello strumento, i parametri e la descrizione.

    • context— Tutte le informazioni relative ai turni precedenti (istruzioni dell'utente, dettagli sulla chiamata allo strumento, risposte dell'assistente) più il prompt dell'utente del turno corrente e tutte le chiamate effettuate prima della valutazione della chiamata allo strumento.

    • tool_turn— La chiamata allo strumento in fase di valutazione.

Segnaposto di verità fondamentale: oltre ai segnaposti standard, i valutatori personalizzati possono fare riferimento ai segnaposti di verità fondamentali che vengono compilati utilizzando quelli forniti al momento della valutazione. evaluationReferenceInputs Ciò consente di creare valutatori che confrontano il comportamento degli agenti con risposte corrette note.

  • Session-level valutatori:

    • actual_tool_trajectory— La sequenza effettiva di nomi degli strumenti che l'agente ha chiamato durante la sessione.

    • expected_tool_trajectory— La sequenza prevista di nomi degli utensili, fornita tramite expectedTrajectory gli input di riferimento di valutazione.

    • assertions— L'elenco delle asserzioni in linguaggio naturale, fornito tramite assertions gli input di riferimento per la valutazione.

  • Trace-level valutatori:

    • expected_response— La risposta prevista dell'agente, fornita tramite gli expectedResponse input di riferimento della valutazione.

Importante

I valutatori personalizzati che utilizzano segnaposto Ground Truth (assertions,expected_response,expected_tool_trajectory) non possono essere utilizzati nelle configurazioni di valutazione online. Le valutazioni online monitorano il traffico di produzione in tempo reale laddove i valori di base non sono disponibili. Il servizio rileva automaticamente i segnaposto fondamentali durante la creazione del valutatore e applica questo vincolo.

Code-based configurazione del valutatore: per i valutatori basati su codice, specifica un ARN della funzione AWS Lambda e un timeout di invocazione opzionale. La funzione Lambda riceve gli intervalli di sessione e l'obiettivo di valutazione come input e deve restituire un risultato conforme allo schema Response. Per il contratto completo della funzione Lambda, le opzioni di configurazione e gli esempi di codice, consulta Custom code-based evaluator.

L'API restituisce l'ARN, l'ID, il timestamp di creazione e lo stato iniziale del valutatore. Una volta creato, è possibile fare riferimento al valutatore nelle configurazioni di valutazione online.

Esempi di codice per AgentCore CLI, AgentCore SDK e AWS SDK

I seguenti esempi di codice mostrano come creare valutatori personalizzati utilizzando diversi approcci di sviluppo. Scegliete il metodo più adatto al vostro ambiente di sviluppo e alle vostre preferenze.

Esempio di configurazione del valutatore personalizzato JSON - 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." } ] } } }

Utilizzando il codice JSON sopra riportato, puoi creare il valutatore personalizzato tramite il client API di tua scelta:

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

    Questo comando aggiunge il valutatore alla configurazione locale. agentcore.json Esegui agentcore deploy per crearlo nel tuo AWS account.

    Nota

    Eseguilo dall'interno di una directory di AgentCore progetto (creata conagentcore create).

Interactive
  1. Inserisci un nome per il tuo valutatore personalizzato.

    Inserimento del nome del valutatore
  2. Seleziona il livello di valutazione: Session, Trace o Tool Call.

    Selezione del livello di valutazione
  3. Scegli il modello di giudice LLM per la valutazione.

    Selezione del modello
  4. Inserisci le istruzioni per la valutazione. Il prompt deve includere almeno un segnaposto: {context} per la cronologia delle conversazioni o {available_tools} per l'elenco degli strumenti.

    Inserimento delle istruzioni di valutazione
  5. Seleziona una scala di valutazione preimpostata o definisci una scala personalizzata.

    Selezione della scala di valutazione
  6. Rivedi la configurazione del valutatore e premi Invio per confermare.

    Rivedi la configurazione del valutatore
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

Esempi di configurazione di un valutatore personalizzato con informazioni di base

Gli esempi seguenti mostrano come creare valutatori personalizzati che utilizzano segnaposti di base per diversi scenari di valutazione.

Esempio
Trajectory compliance evaluator (session-level)
  1. Questo strumento di valutazione utilizza un LLM per confrontare le traiettorie previste ed effettive degli strumenti, permettendo un giudizio differenziato, ad esempio tollerando deviazioni minori come l'utilizzo di strumenti di supporto aggiuntivi. Utilizza expected_tool_trajectory i segnaposto e. actual_tool_trajectory

    Salva quanto segue come: 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 } } } } }

    Crea il valutatore:

    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. Questo valutatore verifica se il comportamento dell'agente soddisfa una serie di affermazioni, restituendo un verdetto categorico. PASS/FAIL/INCONCLUSIVE Utilizza il segnaposto insieme a e. assertions context available_tools

    Salva quanto segue come: 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 } } } } }

    Crea il valutatore:

    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. Questo valutatore confronta la risposta effettiva dell'agente con una risposta prevista, ottenendo una somiglianza semantica. Utilizza il expected_response segnaposto per ricevere la verità fondamentale al momento della valutazione.

    Salva quanto segue come: 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 } } } } }

    Crea il valutatore:

    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

Console

Puoi creare valutatori personalizzati utilizzando l'interfaccia visiva della AgentCore console Amazon Bedrock. Questo metodo fornisce moduli guidati e procedure di convalida per aiutarti a configurare le impostazioni del valutatore.

Per creare un valutatore personalizzato AgentCore

  1. Apri la AgentCore console Amazon Bedrock.

  2. Nel riquadro di navigazione a sinistra, scegli Valutazione. Scegli uno dei seguenti metodi per creare un valutatore personalizzato:

    • Scegli Crea un valutatore personalizzato nella scheda Come funziona.

    • Scegli Valutatori personalizzati per selezionare la scheda, quindi scegli Crea valutatore personalizzato.

  3. Per Nome del valutatore, inserisci un nome per il valutatore personalizzato.

    1. (Facoltativo) Per la descrizione del valutatore, inserite una descrizione per il valutatore personalizzato.

  4. Per il tipo di valutatore, scegliete una delle seguenti opzioni:

    • LLM-as-a-judge— Utilizza un modello di base per valutare le prestazioni degli agenti. Continuate con i passaggi seguenti per configurare la definizione, il modello e la scala del valutatore.

    • Code-based— Utilizza una funzione AWS Lambda per valutare a livello di codice le prestazioni degli agenti. Per la funzione Lambda ARN, inserisci l'ARN della tua funzione Lambda. Facoltativamente, imposta il timeout Lambda (1—300 secondi, impostazione predefinita 60). Quindi vai alla fase del livello di valutazione.

  5. Per la definizione personalizzata del valutatore, puoi caricare diversi modelli per vari valutatori integrati. Per impostazione predefinita, viene caricato il modello Faithfulness. Modifica il modello in base alle tue esigenze.

    Nota

    Se carichi un altro modello, tutte le modifiche alla definizione del valutatore personalizzato esistente verranno sovrascritte.

  6. Per il modello di valutazione personalizzato, scegli un modello di base supportato scegliendo la barra di ricerca del modello a destra della definizione del valutatore personalizzato. Per ulteriori informazioni sui modelli di base supportati, consulta:

    • Modelli Foundation supportati

      1. (Facoltativo) È possibile impostare i parametri di inferenza per il modello abilitando le sequenze Set temperature, Set top P, Set max. output tokens e Set stop.

  7. Per il tipo di scala Evaluator, scegliete Definisci scala come valori numerici o Definisci scala come valori stringa.

  8. Per le definizioni delle scale Evaluator, puoi avere un totale di 20 definizioni.

  9. Per il livello di valutazione Evaluator, scegliete una delle seguenti opzioni:

    • Sessione: valuta tutte le sessioni di conversazione.

    • Traccia: valuta ogni singola traccia.

    • Richiamo all'utensile: valuta ogni chiamata allo strumento.

  10. Scegli Crea valutatore personalizzato per creare il valutatore personalizzato.

Procedure consigliate per la valutazione personalizzata

Scrivere istruzioni ben strutturate per i valutatori è fondamentale per valutazioni accurate. Considerate le seguenti linee guida quando scrivete le istruzioni per la valutazione, selezionate i livelli per i valutatori e scegliete i valori segnaposto.

  • Selezione del livello di valutazione: selezionate il livello di valutazione appropriato in base ai vostri requisiti di costo, latenza e prestazioni. Scegli tra livello di traccia (esamina le risposte dei singoli agenti), livello di strumento (esamina l'utilizzo specifico dello strumento) o livello di sessione (esamina le sessioni di interazione complete). La tua scelta deve essere in linea con gli obiettivi del progetto e i limiti di risorse.

  • Criteri di valutazione: definisci dimensioni di valutazione chiare specifiche per il tuo dominio. Utilizzate l'approccio Mutually Exclusive, Collectively Exhaustive (MECE) per garantire che ogni valutatore abbia un ambito distinto. Ciò impedisce la sovrapposizione delle responsabilità di valutazione e garantisce una copertura completa di tutte le aree di valutazione.

  • Definizione del ruolo: Per quanto riguarda le istruzioni, iniziate la procedura stabilendo il ruolo modello del giudice come valutatore delle prestazioni. Una chiara definizione dei ruoli migliora le prestazioni del modello e previene la confusione tra valutazione ed esecuzione delle attività. Ciò è particolarmente importante quando si lavora con diversi modelli di arbitri.

  • Linee guida per le istruzioni: crea istruzioni di valutazione chiare e sequenziali. Quando hai a che fare con requisiti complessi, suddividili in passaggi semplici e comprensibili. Utilizza un linguaggio preciso per garantire una valutazione coerente in tutte le istanze.

  • Esempio di integrazione: nelle istruzioni, includi 1-3 esempi pertinenti che mostrino come gli umani valuterebbero le prestazioni degli agenti nel tuo dominio. Ogni esempio dovrebbe includere coppie di input e output corrispondenti che rappresentino accuratamente gli standard previsti. Sebbene facoltativi, questi esempi fungono da preziosi riferimenti di base.

  • Gestione del contesto: nelle tue istruzioni, scegli i segnaposti contestuali in modo strategico in base ai tuoi requisiti specifici. Trovate il giusto equilibrio tra fornire informazioni sufficienti ed evitare di confondere i valutatori. Adatta la profondità del contesto in base alle capacità e ai limiti del tuo modello di arbitro.

  • Scoring Framework: scegli tra una scala binaria (0/1) o una scala Likert (più livelli). Definisci chiaramente il significato di ogni livello di punteggio. In caso di dubbi sulla scala da utilizzare, inizia con il sistema di punteggio binario più semplice.

  • Struttura di output: il nostro servizio include automaticamente un prompt di standardizzazione alla fine di ogni istruzione di valutazione personalizzata. Questa richiesta impone due campi di output: reason e score, con il ragionamento sempre presentato prima del punteggio per garantire una valutazione basata sulla logica. Non includete istruzioni per la formattazione dell'output nelle istruzioni di valutazione originali per evitare di confondere il modello del giudice.