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 |
|---|---|---|---|---|
|
|
Sì |
Stringa |
Non-empty |
Identificatore univoco per lo scenario. |
|
|
Sì |
Elenco di oggetti |
Non-empty elenco |
Elenco dei turni della conversazione. Ogni turno ha |
|
|
No |
Elenco di stringhe |
Sequenza prevista dei nomi degli utensili. Utilizzato dai valutatori di traiettoria ( |
|
|
|
No |
Elenco di stringhe |
Asserzioni in linguaggio naturale sul comportamento previsto. Utilizzato da |
|
|
|
No |
Oggetto |
Metadati chiave-valore arbitrari per lo scenario. |
Trasforma i campi
| Campo | Richiesto | Tipo | Vincoli | Description |
|---|---|---|---|---|
|
|
Sì |
Stringa o oggetto |
Non-empty |
La richiesta inviata all'agente per questo turno. Può essere una stringa semplice (ad esempio |
|
|
No |
Stringa |
La risposta prevista dell'agente per questo turno. Utilizzato da |
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 |
|---|---|---|---|---|
|
|
Sì |
Stringa |
Non-empty |
Identificatore univoco per lo scenario. |
|
|
Sì |
Oggetto |
Deve contenere |
L'identità e l'obiettivo dell'attore, contenenti |
|
|
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. |
|
|
No |
Stringa |
Metadati opzionali che descrivono lo scenario. Utili per organizzare e identificare gli scenari nei risultati. |
|
|
|
No |
Numero intero |
Deve essere ≥ 1 |
Numero massimo di turni prima che la conversazione si interrompa. Impostazione predefinita: 10 |
|
|
No |
Elenco di stringhe |
Asserzioni in linguaggio naturale sul comportamento previsto. Utilizzato da |
|
|
|
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 |
|---|---|---|---|
|
|
|
Traccia |
Misura la precisione con cui la risposta dell'agente corrisponde alla risposta prevista. |
|
|
|
Sessione |
Verifica se il comportamento dell'agente soddisfa le asserzioni in linguaggio naturale. |
|
|
|
Sessione |
Verifica che l'effettiva sequenza di chiamata dello strumento corrisponda esattamente. |
|
|
|
Sessione |
Verifica che gli strumenti previsti siano visualizzati in ordine, prevedendo l'aggiunta di extra tra di essi. |
|
|
|
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 esempio
Builtin.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()