View a markdown version of this page

데이터 세트 스키마 - Amazon Bedrock AgentCore

데이터 세트 스키마

데이터 세트에는 하나 이상의 시나리오가 포함됩니다. 각 시나리오는 에이전트와의 대화(세션)를 나타냅니다. 온디맨드 데이터 세트 실행기와 배치 데이터 세트 실행기 모두 동일한 데이터 세트 형식을 사용합니다.

AgentCore SDK는 두 가지 시나리오 유형을 지원합니다.

  • 미리 정의된 시나리오는 사용자가 직접 작성한 고정된 회전 시퀀스를 사용합니다. 러너는 턴을 쓴 그대로 재생합니다.

  • 시뮬레이션된 시나리오는 LLM 지원 액터를 사용하여 페르소나와 목표에 따라 동적으로 회전을 생성합니다. 액터 프로파일 및 시뮬레이션 구성에 대한 자세한 내용은 사용자 시뮬레이션을 참조하세요.

FileDatasetProvider는 JSON 구조에서 시나리오 유형을 자동 감지합니다. turns 필드가 있는 시나리오는 사전 정의된 대로 로드되고 actor_profile 필드가 있는 시나리오( 및 없음turns)는 시뮬레이션된 대로 로드됩니다.

미리 정의된 시나리오

사전 정의된 시나리오는 알려진 입력 및 선택적 예상 출력이 있는 고정 회전 시퀀스를 지정합니다.

단일 회전 예제

각 시나리오는 하나의 프롬프트를 전송하고 응답을 확인합니다.

{ "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"] } ] }

멀티턴 예제

다중 회전 시나리오에는 시나리오당 여러 회전이 있습니다. 동일한 세션 내에서 순차적으로 실행하여 대화 컨텍스트를 유지합니다. 각 턴에는 고유한가 있을 수 있지만 expected_response및는 전체 세션에 assertions expected_trajectory 적용됩니다.

{ "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" ] } ] }

시나리오 필드

Field 필수 유형 제약 조건 설명

scenario_id

문자열

비어 있지 않음

시나리오의 고유 식별자입니다.

turns

객체 목록

비어 있지 않은 목록

대화의 회전 목록입니다. 각 턴에는 input (필수) 및 expected_response (선택 사항)가 있습니다.

expected_trajectory

아니요

문자열 목록

도구 이름의 예상 시퀀스입니다. 궤적 평가자(Builtin.TrajectoryExactOrderMatch, Builtin.TrajectoryInOrderMatch, Builtin.TrajectoryAnyOrderMatch)가 사용합니다.

assertions

아니요

문자열 목록

예상 동작에 대한 자연어 어설션입니다. Builtin.GoalSuccessRate에서 사용됩니다.

metadata

아니요

객체

시나리오에 대한 임의의 키-값 메타데이터입니다.

필드 턴

Field 필수 유형 제약 조건 설명

input

문자열 또는 객체

비어 있지 않음

이 턴을 위해 에이전트에게 전송된 프롬프트입니다. 일반 문자열(예: "What is my balance?") 또는 구조화된 객체(예: )일 수 있습니다{"role": "user", "content": "What is my balance?"}.

expected_response

아니요

문자열

이 턴에 대한 예상 에이전트 응답입니다. Builtin.Correctness에서 사용됩니다. 이 턴에서 생성된 트레이스에 위치 매핑됨. 0개 맵을 트레이스 0으로, 1개 맵을 트레이스 1로 바꿉니다.

시뮬레이션된 시나리오

시뮬레이션된 시나리오는 액터 프로파일과 초기 입력을 정의합니다. 액터는 후속 회전을 동적으로 생성합니다.

{ "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" ] } ] }

시나리오 필드

Field 필수 유형 제약 조건 설명

scenario_id

문자열

비어 있지 않음

시나리오의 고유 식별자입니다.

actor_profile

객체

context 및를 포함해야 합니다. goal

(필수), context (필수) 및 goal (선택 사항)를 포함하는 액터의 자격 증명 및 목표traits입니다. 사용자 시뮬레이션을 참조하세요.

input

문자열 또는 객체

비어 있지 않음

대화를 시작하기 위해 에이전트에게 전송된 첫 번째 메시지입니다. 일반적으로 일반 문자열이지만 구조화된 객체일 수도 있습니다.

scenario_description

아니요

문자열

시나리오를 설명하는 선택적 메타데이터입니다. 결과에서 시나리오를 구성하고 식별하는 데 유용합니다.

max_turns

아니요

Integer

≥ 1이어야 합니다.

대화가 중지되기 전 최대 회전 수입니다. 기본값: 10.

assertions

아니요

문자열 목록

예상 동작에 대한 자연어 어설션입니다. Builtin.GoalSuccessRate에서 사용됩니다.

metadata

아니요

객체

시나리오에 대한 임의의 키-값 메타데이터입니다.

참고

시뮬레이션된 시나리오는 대화 흐름을 미리 알 수 없기 expected_response 때문에 expected_trajectory 또는 턴당을 지원하지 않습니다. 시뮬레이션된 시나리오에서 실측 정보에 assertions를 사용합니다.

실측 정보 매핑

두 러너 모두 데이터세트 필드를 사용하는 평가자에게 자동으로 매핑합니다.

평가자 실측 정보 필드 수준 설명

Builtin.Correctness

turns[].expected_response

추적

에이전트의 응답이 예상 응답과 얼마나 정확하게 일치하는지 측정합니다.

Builtin.GoalSuccessRate

assertions

세션

에이전트의 동작이 자연어 어설션을 충족하는지 확인합니다.

Builtin.TrajectoryExactOrderMatch

expected_trajectory

세션

실제 도구 호출 시퀀스가 정확히 일치하는지 확인합니다.

Builtin.TrajectoryInOrderMatch

expected_trajectory

세션

예상 도구가 순서대로 나타나는지 확인하여 이들 간에 추가 항목을 허용합니다.

Builtin.TrajectoryAnyOrderMatch

expected_trajectory

세션

순서에 관계없이 모든 예상 도구가 있는지 확인합니다.

  • 실측 정보 필드는 선택 사항입니다. 실측 정보를 사용하지 않는 평가자(예: , Builtin.HelpfulnessBuiltin.Faithfulness)는 세션 콘텐츠만을 기반으로 평가합니다.

  • 모든 실측 정보 필드를 단일 데이터 세트에 포함할 수 있습니다. 각 실행기는 관련 필드를 적절한 평가자에게 라우팅합니다.

  • 실측 필드가 없는 경우 평가자는 실측 모드로 돌아갑니다.

실측 정보 필드와 평가 API의 작동 방식에 대한 자세한 내용은 실측 정보 평가를 참조하세요.

인라인 데이터 세트 구성

JSON 파일에서 로드하는 대신 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"], ), ] )

또는 JSON 파일에서 로드합니다.

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