View a markdown version of this page

Esquema do conjunto de dados - Base da Amazônia AgentCore

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

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.

Campos de giro

Campo Obrigatório Tipo Restrições Description

input

Sim

Cadeia de caracteres ou objeto

Non-empty

A solicitação enviada ao agente para este 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 este turno; giro 0 mapeia para traçar 0, giro 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 de 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 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

Builtin.Correctness

turns[].expected_response

Rastrear

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 de 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 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()