View a markdown version of this page

Schema del set di dati - Fondamento Amazon AgentCore

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Schema del set di dati

Un set di dati contiene uno o più scenari. Ogni scenario rappresenta una conversazione (sessione) con l'agente. Sia i gestori di set di dati su richiesta che quelli in batch utilizzano lo stesso formato di set di dati.

L' AgentCore SDK supporta due tipi di scenari:

  • Gli scenari predefiniti utilizzano una sequenza fissa di turni creata manualmente. Il corridore ripete le curve esattamente come sono scritte.

  • Gli scenari simulati utilizzano un LLM-backed attore per generare turni dinamicamente in base a un personaggio e a un obiettivo. Vedi Simulazione utente per dettagli sui profili degli attori e sulla configurazione della simulazione.

FileDatasetProviderrileva automaticamente il tipo di scenario dalla struttura JSON: gli scenari con un turns campo vengono caricati come predefinito; gli scenari con un actor_profile campo (e noturns) vengono caricati come simulati.

Scenari predefiniti

Uno scenario predefinito specifica una sequenza fissa di giri con ingressi noti e uscite previste opzionali.

Single-turn esempio

Ogni scenario invia un prompt e verifica la risposta:

{ "scenarios": [ { "scenario_id": "math-question", "turns": [ { "input": "What is 15 + 27?", "expected_response": "15 + 27 = 42" } ], "expected_trajectory": ["calculator"], "assertions": ["Agent used the calculator tool to compute the result"] }, { "scenario_id": "weather-check", "turns": [ { "input": "What's the weather?", "expected_response": "The weather is sunny" } ], "expected_trajectory": ["weather"], "assertions": ["Agent used the weather tool"] } ] }

Multi-turn esempio

Multi-turn gli scenari hanno più turni per scenario. I turni vengono eseguiti in sequenza all'interno della stessa sessione, mantenendo il contesto della conversazione. Ogni turno può avere una durata expected_response diversa assertions e expected_trajectory applicarsi all'intera sessione:

{ "scenarios": [ { "scenario_id": "math-then-weather", "turns": [ { "input": "What is 15 + 27?", "expected_response": "15 + 27 = 42" }, { "input": "What's the weather?", "expected_response": "The weather is sunny" } ], "expected_trajectory": ["calculator", "weather"], "assertions": [ "Agent used the calculator tool for the math question", "Agent used the weather tool when asked about weather" ] } ] }

Campi dello scenario

Campo Richiesto Tipo Vincoli Description

scenario_id

Sì

Stringa

Non-empty

Identificatore univoco per lo scenario.

turns

Sì

Elenco di oggetti

Non-empty elenco

Elenco dei turni della conversazione. Ogni turno ha input (obbligatorio) e expected_response (opzionale).

expected_trajectory

No

Elenco di stringhe

Sequenza prevista dei nomi degli utensili. Utilizzato dai valutatori di traiettoria (Builtin.TrajectoryExactOrderMatch,,). Builtin.TrajectoryInOrderMatch Builtin.TrajectoryAnyOrderMatch

assertions

No

Elenco di stringhe

Asserzioni in linguaggio naturale sul comportamento previsto. Utilizzato da Builtin.GoalSuccessRate.

metadata

No

Oggetto

Metadati chiave-valore arbitrari per lo scenario.

Trasforma i campi

Campo Richiesto Tipo Vincoli Description

input

Sì

Stringa o oggetto

Non-empty

La richiesta inviata all'agente per questo turno. Può essere una stringa semplice (ad esempio"What is my balance?") o un oggetto strutturato (ad esempio{"role": "user", "content": "What is my balance?"}).

expected_response

No

Stringa

La risposta prevista dell'agente per questo turno. Utilizzato da Builtin.Correctness. Mappata posizionalmente sulla traccia prodotta da questo turno; turno 0 mappa per tracciare 0, giro 1 mappe per tracciare 1.

Scenari simulati

Uno scenario simulato definisce un profilo dell'attore e un input iniziale. L'attore genera i turni successivi in modo dinamico:

{ "scenarios": [ { "scenario_id": "geography-student", "scenario_description": "A curious student asks geography questions", "actor_profile": { "traits": {"expertise": "novice", "tone": "curious"}, "context": "A student studying world geography who wants to learn about capitals", "goal": "Find out the capital cities of at least two different countries" }, "input": "Hi! I'm studying geography. Can you help me learn about world capitals?", "max_turns": 5, "assertions": [ "Agent provides accurate capital city information", "Agent is helpful and encouraging to the student" ] } ] }

Campi dello scenario

Campo Richiesto Tipo Vincoli Description

scenario_id

Sì

Stringa

Non-empty

Identificatore univoco per lo scenario.

actor_profile

Sì

Oggetto

Deve contenere context e goal

L'identità e l'obiettivo dell'attore, contenenti context (obbligatorio), goal (obbligatorio) e traits (facoltativo). Vedere Simulazione utente.

input

Sì

Stringa o oggetto

Non-empty

Il primo messaggio inviato al tuo agente per iniziare la conversazione. In genere è una stringa semplice, ma può anche essere un oggetto strutturato.

scenario_description

No

Stringa

Metadati opzionali che descrivono lo scenario. Utili per organizzare e identificare gli scenari nei risultati.

max_turns

No

Numero intero

Deve essere ≥ 1

Numero massimo di turni prima che la conversazione si interrompa. Impostazione predefinita: 10

assertions

No

Elenco di stringhe

Asserzioni in linguaggio naturale sul comportamento previsto. Utilizzato da Builtin.GoalSuccessRate.

metadata

No

Oggetto

Metadati chiave-valore arbitrari per lo scenario.

Nota

Gli scenari simulati non sono supportati expected_trajectory né a turno expected_response perché il flusso della conversazione non è noto in anticipo. Usali assertions per garantire la verità concreta con scenari simulati.

Mappatura della verità fondamentale

Entrambi i corridori mappano automaticamente i campi del set di dati ai valutatori che li utilizzano:

Valutatore Campo della verità fondamentale Livello Description

Builtin.Correctness

turns[].expected_response

Traccia

Misura la precisione con cui la risposta dell'agente corrisponde alla risposta prevista.

Builtin.GoalSuccessRate

assertions

Sessione

Verifica se il comportamento dell'agente soddisfa le asserzioni in linguaggio naturale.

Builtin.TrajectoryExactOrderMatch

expected_trajectory

Sessione

Verifica che l'effettiva sequenza di chiamata dello strumento corrisponda esattamente.

Builtin.TrajectoryInOrderMatch

expected_trajectory

Sessione

Verifica che gli strumenti previsti siano visualizzati in ordine, prevedendo l'aggiunta di extra tra di essi.

Builtin.TrajectoryAnyOrderMatch

expected_trajectory

Sessione

Verifica che tutti gli strumenti previsti siano presenti, indipendentemente dall'ordine.

  • I campi Ground Truth sono opzionali. I valutatori che non utilizzano la verità fondamentale (ad esempioBuiltin.Helpfulness,Builtin.Faithfulness) valutano solo in base al contenuto della sessione.

  • Puoi includere tutti i campi di Ground Truth in un unico set di dati. Ogni corridore indirizza i campi pertinenti ai valutatori appropriati.

  • Se non sono presenti campi di Ground Truth, i valutatori tornano alla modalità Ground Truth Free.

Per maggiori dettagli sui campi di Ground Truth e su come funzionano con l'API Evaluate, vedi Ground truth evaluations.

Costruzione di set di dati in linea

Invece di caricare da un file JSON, puoi creare set di dati direttamente in Python:

from bedrock_agentcore.evaluation import Dataset, PredefinedScenario, Turn dataset = Dataset( scenarios=[ PredefinedScenario( scenario_id="math-question", turns=[ Turn( input="What is 15 + 27?", expected_response="15 + 27 = 42", ), ], expected_trajectory=["calculator"], assertions=["Agent used the calculator tool"], ), PredefinedScenario( scenario_id="weather-check", turns=[ Turn(input="What's the weather?"), ], expected_trajectory=["weather"], ), ] )

Oppure carica da un file JSON:

from bedrock_agentcore.evaluation import FileDatasetProvider dataset = FileDatasetProvider("dataset.json").get_dataset()