View a markdown version of this page

Esquema do conjunto de dados - Amazon Bedrock AgentCore

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ários:

  • Os cenários predefinidos usam uma sequência fixa de turnos que você cria manualmente. O corredor repete as voltas exatamente como estão escritas.

  • Cenários simulados usam um LLM-backed ator para gerar turnos dinamicamente com base em uma personalidade e meta. Consulte Simulação do usuário para obter detalhes sobre perfis de atores e configuração da 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 nãoturns) são carregados como simulados.

Cenários predefinidos

Um cenário predefinido especifica uma sequência fixa de voltas com entradas conhecidas e saídas opcionais esperadas.

Single-turn exemplo

Cada cenário envia um prompt 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ários turnos por cenário. Os turnos são executados sequencialmente na mesma sessão, mantendo o contexto da conversa. Cada turno pode ter seu próprioexpected_response, enquanto assertions expected_trajectory se aplica 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

scenario_id

Sim

String

Non-empty

Identificador exclusivo para o cenário.

turns

Sim

Lista de objetos

Non-empty lista

Lista de turnos na conversa. Cada turno tem input (obrigatório) e expected_response (opcional).

expected_trajectory

Não

Lista de strings

Sequência esperada de nomes de ferramentas. Usado por avaliadores de trajetória (Builtin.TrajectoryExactOrderMatch,,Builtin.TrajectoryInOrderMatch). Builtin.TrajectoryAnyOrderMatch

assertions

Não

Lista de strings

Afirmações em linguagem natural sobre o comportamento esperado. Usado pelo Builtin.GoalSuccessRate.

metadata

Não

Objeto

Metadados arbitrários de valores-chave para o cenário.

Virar campos

Campo Obrigatório Tipo Restrições Description

input

Sim

Cadeia de caracteres ou objeto

Non-empty

A solicitação enviada ao agente para esse turno. Pode ser uma string simples (por exemplo,"What is my balance?") ou um objeto estruturado (por exemplo,{"role": "user", "content": "What is my balance?"}).

expected_response

Não

String

A resposta esperada do agente para esse turno. Usado pelo Builtin.Correctness. Mapeado posicionalmente para o traçado produzido por esta curva; a curva 0 mapeia para traçar 0, a curva 1 mapeia para traçar 1.

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

scenario_id

Sim

String

Non-empty

Identificador exclusivo para o cenário.

actor_profile

Sim

Objeto

Deve conter context e goal

A identidade e o objetivo do ator, contendo context (obrigatório), goal (obrigatório) e traits (opcional). Consulte Simulação do usuário.

input

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.

scenario_description

Não

String

Metadados opcionais que descrevem o cenário. Útil para organizar e identificar cenários nos resultados.

max_turns

Não

Inteiro

Deve ser ≥ 1

Número máximo de turnos antes que a conversa termine. Padrão: 10.

assertions

Não

Lista de strings

Afirmações em linguagem natural sobre o comportamento esperado. Usado pelo Builtin.GoalSuccessRate.

metadata

Não

Objeto

Metadados arbitrários de valores-chave para o cenário.

nota

Os cenários simulados não oferecem suporte expected_trajectory ou são 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 terrestre

Ambos os executores mapeiam automaticamente os campos do conjunto de dados para os avaliadores que os usam:

Avaliador Campo da verdade fundamental Nível Description

Builtin.Correctness

turns[].expected_response

Traço

Mede a precisão com que a resposta do agente corresponde à resposta esperada.

Builtin.GoalSuccessRate

assertions

Sessão

Valida se o comportamento do agente satisfaz as afirmações da linguagem natural.

Builtin.TrajectoryExactOrderMatch

expected_trajectory

Sessão

Verifica se a sequência real de chamadas da ferramenta corresponde exatamente.

Builtin.TrajectoryInOrderMatch

expected_trajectory

Sessão

Verifica se as ferramentas esperadas aparecem em ordem, permitindo extras entre elas.

Builtin.TrajectoryAnyOrderMatch

expected_trajectory

Sessão

Verifica se todas as ferramentas esperadas estão presentes, independentemente da ordem.

  • Os campos de verdade básica são opcionais. Os avaliadores que não usam a verdade básica (por exemplo,Builtin.Helpfulness,Builtin.Faithfulness) avaliam com base apenas no conteúdo da sessão.

  • Você pode incluir todos os campos de verdade básica em um único conjunto de dados. Cada corredor encaminha os campos relevantes para os avaliadores apropriados.

  • Se nenhum campo de verdade fundamental estiver presente, os avaliadores retornam ao modo livre de verdade fundamental.

Para obter mais detalhes sobre os campos de verdade básica e como eles funcionam com a API Evaluate, consulte Avaliações fundamentais da verdade.

Construção de conjuntos de dados em linha

Em vez de carregar de um arquivo JSON, você pode criar 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()