As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Esquema do conjunto de dados
Um conjunto de dados contém um ou mais cenários. Cada cenário representa uma conversa (sessão) com o agente. Tanto os executores de conjuntos de dados sob demanda quanto os em lote usam o mesmo formato de conjunto de dados.
O AgentCore SDK oferece suporte a dois tipos de cenário:
-
Cenários predefinidos usam uma sequência fixa de turnos que você cria manualmente. O corredor repete as curvas exatamente como estão escritas.
-
Cenários simulados usam um LLM-backed ator para gerar turnos dinamicamente com base em uma personalidade e uma meta. Consulte Simulação de usuário para obter detalhes sobre perfis de atores e configuração de simulação.
FileDatasetProviderdetecta automaticamente o tipo de cenário a partir da estrutura JSON: cenários com um turns campo são carregados conforme predefinido; cenários com um actor_profile campo (e nenhumturns) são carregados conforme simulado.
Cenários predefinidos
Um cenário predefinido especifica uma sequência fixa de voltas com entradas conhecidas e saídas esperadas opcionais.
Single-turn exemplo
Cada cenário envia uma solicitação e verifica a resposta:
{ "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 exemplo
Multi-turn os cenários têm várias voltas por cenário. Os turnos são executados sequencialmente na mesma sessão, mantendo o contexto da conversa. Cada turno pode ter seu próprio expected_response tempo assertions e expected_trajectory se aplicar a toda a sessão:
{ "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" ] } ] }
Campos de cenário
| Campo | Obrigatório | Tipo | Restrições | Description |
|---|---|---|---|---|
|
|
Sim |
String |
Non-empty |
Identificador exclusivo para o cenário. |
|
|
Sim |
Lista de objetos |
Non-empty lista |
Lista de turnos na conversa. Cada turno tem |
|
|
Não |
Lista de strings |
Sequência esperada de nomes de ferramentas. Usado por avaliadores de trajetória ( |
|
|
|
Não |
Lista de strings |
Afirmações em linguagem natural sobre o comportamento esperado. Usado pelo |
|
|
|
Não |
Objeto |
Metadados arbitrários de valores-chave para o cenário. |
Campos de giro
| Campo | Obrigatório | Tipo | Restrições | Description |
|---|---|---|---|---|
|
|
Sim |
Cadeia de caracteres ou objeto |
Non-empty |
A solicitação enviada ao agente para este turno. Pode ser uma string simples (por exemplo, |
|
|
Não |
String |
A resposta esperada do agente para esse turno. Usado pelo |
Cenários simulados
Um cenário simulado define um perfil de ator e uma entrada inicial. O ator gera turnos subsequentes dinamicamente:
{ "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" ] } ] }
Campos de cenário
| Campo | Obrigatório | Tipo | Restrições | Description |
|---|---|---|---|---|
|
|
Sim |
String |
Non-empty |
Identificador exclusivo para o cenário. |
|
|
Sim |
Objeto |
Deve conter |
A identidade e o objetivo do ator, contendo |
|
|
Sim |
Cadeia de caracteres ou objeto |
Non-empty |
A primeira mensagem enviada ao seu agente para iniciar a conversa. Normalmente, uma string simples, mas também pode ser um objeto estruturado. |
|
|
Não |
String |
Metadados opcionais que descrevem o cenário. Útil para organizar e identificar cenários nos resultados. |
|
|
|
Não |
Inteiro |
Deve ser ≥ 1 |
Número máximo de turnos antes que a conversa termine. Padrão: 10. |
|
|
Não |
Lista de strings |
Afirmações em linguagem natural sobre o comportamento esperado. Usado pelo |
|
|
|
Não |
Objeto |
Metadados arbitrários de valores-chave para o cenário. |
nota
Os cenários simulados não suportam expected_trajectory ou por turno expected_response porque o fluxo da conversa não é conhecido com antecedência. Use assertions para obter a verdade básica com cenários simulados.
Mapeamento da verdade fundamental
Ambos os executores mapeiam automaticamente os campos do conjunto de dados para os avaliadores que os usam:
| Avaliador | Campo de verdade fundamental | Nível | Description |
|---|---|---|---|
|
|
|
Rastrear |
Mede a precisão com que a resposta do agente corresponde à resposta esperada. |
|
|
|
Sessão |
Valida se o comportamento do agente satisfaz as afirmações de linguagem natural. |
|
|
|
Sessão |
Verifica se a sequência real de chamadas da ferramenta corresponde exatamente. |
|
|
|
Sessão |
Verifica se as ferramentas esperadas aparecem em ordem, permitindo extras entre elas. |
|
|
|
Sessão |
Verifica se todas as ferramentas esperadas estão presentes, independentemente do pedido. |
-
Os campos de verdade básicos são opcionais. Os avaliadores que não usam a verdade básica (por exemplo,
Builtin.Helpfulness,Builtin.Faithfulness) avaliam apenas com base no conteúdo da sessão. -
Você pode incluir todos os campos da verdade básica em um único conjunto de dados. Cada corredor encaminha os campos relevantes para os avaliadores apropriados.
-
Se nenhum campo fundamental da verdade estiver presente, os avaliadores retornam ao modo básico livre da verdade.
Para obter mais detalhes sobre os campos da verdade básica e como eles funcionam com a API Evaluate, consulte Avaliações da verdade básica.
Construção de conjunto de dados em linha
Em vez de carregar de um arquivo JSON, você pode construir conjuntos de dados diretamente em 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"], ), ] )
Ou carregue de um arquivo JSON:
from bedrock_agentcore.evaluation import FileDatasetProvider dataset = FileDatasetProvider("dataset.json").get_dataset()