View a markdown version of this page

평가자 생성 - Amazon Bedrock AgentCore

평가자 생성

CreateEvaluator API는 에이전트 동작의 특정 측면을 평가하는 방법을 정의하는 새 사용자 지정 평가자를 생성합니다. 이 비동기 작업은 평가자를 프로비저닝하는 동안 즉시 반환됩니다. API는 평가자 ARN, ID, 생성 타임스탬프 및 초기 상태를 반환합니다. 생성되면 온라인 평가 구성에서 평가자를 참조할 수 있습니다.

필수 파라미터: 고유한 평가자 이름(해당 리전 내), 평가자 구성 및 평가 수준(, TOOL_CALL TRACE 또는 SESSION )을 지정해야 합니다.

선택적 암호화:를 지정kmsKeyArn하여 고객 관리형 AWS KMS 키로 평가자의 지침 및 등급 조정을 암호화할 수 있습니다. 대칭 암호화 KMS 키만 지원됩니다. 자세한 내용은 AgentCore 평가에 대한 저장 데이터 암호화를 참조하세요.

평가자 구성: 다음 두 가지 평가자 유형 중 하나를 선택할 수 있습니다.

  • LLM-as-a-judge - 평가 지침(프롬프트), 모델 설정 및 등급 조정을 정의합니다. 평가 로직은 Bedrock 파운데이션 모델에 의해 실행됩니다.

  • 코드 기반 - 자체 프로그래밍 방식 평가 로직을 실행할 AWS Lambda 함수 ARN을 지정합니다. Lambda 함수 계약 및 구성에 대한 자세한 내용은 사용자 지정 코드 기반 평가자를 참조하세요.

LLM-as-a-judge 지침: LLM-as-a-judge 평가자의 경우, 명령에는 판사 모델로 전송되기 전에 실제 트레이스 정보로 대체되는 자리 표시자가 하나 이상 포함되어야 합니다. 각 평가자 수준은 고정된 자리 표시자 값 집합만 지원합니다.

  • 세션 수준 평가자:

    • context - 세션의 모든 차례에 걸친 사용자 프롬프트, 어시스턴트 응답 및 도구 호출 목록입니다.

    • available_tools - 도구 ID, 파라미터 및 설명을 포함하여 각 턴에서 사용 가능한 도구 호출 세트입니다.

  • 트레이스 수준 평가자:

    • context - 사용자 프롬프트, 도구 호출, 어시스턴트 응답, 현재 턴의 사용자 프롬프트 및 도구 호출을 포함하여 이전 턴의 모든 정보입니다.

    • assistant_turn - 현재 턴에 대한 어시스턴트 응답입니다.

  • 도구 수준 평가자:

    • available_tools - 도구 ID, 파라미터 및 설명을 포함하여 사용 가능한 도구 호출 세트입니다.

    • context - 이전 턴의 모든 정보(사용자 프롬프트, 도구 호출 세부 정보, 어시스턴트 응답)와 현재 턴의 사용자 프롬프트 및 도구 호출이 평가되기 전에 수행된 모든 도구 호출.

    • tool_turn - 평가 중인 도구 호출입니다.

실측 정보 자리 표시자: 사용자 지정 평가자는 표준 자리 표시자 외에도 평가 시 evaluationReferenceInputs 제공된에서 채워진 실측 정보 자리 표시자를 참조할 수 있습니다. 이를 통해 에이전트 동작을 알려진 올바른 답변과 비교하는 평가자를 구축할 수 있습니다.

  • 세션 수준 평가자:

    • actual_tool_trajectory - 세션 중에 에이전트가 호출한 실제 도구 이름 시퀀스입니다.

    • expected_tool_trajectory - 평가 참조 입력expectedTrajectory에서를 통해 제공되는 예상 도구 이름 시퀀스입니다.

    • assertions - 평가 참조 입력assertions에서를 통해 제공되는 자연어 어설션 목록입니다.

  • 트레이스 수준 평가자:

    • expected_response - 평가 참조 입력expectedResponse에서를 통해 제공되는 예상 에이전트 응답입니다.

중요

실제 자리 표시자(assertions, , expected_response expected_tool_trajectory)를 사용하는 사용자 지정 평가자는 온라인 평가 구성에서 사용할 수 없습니다. 온라인 평가는 실측 정보를 사용할 수 없는 라이브 프로덕션 트래픽을 모니터링합니다. 이 서비스는 평가자 생성 중에 실제 자리 표시자를 자동으로 감지하고이 제약 조건을 적용합니다.

코드 기반 평가자 구성: 코드 기반 평가자의 경우 AWS Lambda 함수 ARN과 선택적 호출 제한 시간을 지정합니다. Lambda 함수는 세션 범위 및 평가 대상을 입력으로 수신하며 응답 스키마에 부합하는 결과를 반환해야 합니다. 전체 Lambda 함수 계약, 구성 옵션 및 코드 샘플은 사용자 지정 코드 기반 평가자를 참조하세요.

API는 평가자 ARN, ID, 생성 타임스탬프 및 초기 상태를 반환합니다. 생성되면 온라인 평가 구성에서 평가자를 참조할 수 있습니다.

AgentCore CLI, AgentCore SDK 및 AWS SDK용 코드 샘플

다음 코드 샘플은 다양한 개발 접근 방식을 사용하여 사용자 지정 평가자를 생성하는 방법을 보여줍니다. 개발 환경 및 기본 설정에 가장 적합한 방법을 선택합니다.

사용자 지정 평가자 구성 샘플 JSON - custom_evaluator_config.json

{ "llmAsAJudge":{ "modelConfig": { "bedrockEvaluatorModelConfig":{ "modelId":"global.anthropic.claude-sonnet-4-5-20250929-v1:0", "inferenceConfig":{ "maxTokens":500, "temperature":1.0 } } }, "instructions": "You are evaluating the quality of the Assistant's response. You are given a task and a candidate response. Is this a good and accurate response to the task? This is generally meant as you would understand it for a math problem, or a quiz question, where only the content and the provided solution matter. Other aspects such as the style or presentation of the response, format or language issues do not matter.\n\n**IMPORTANT**: A response quality can only be high if the agent remains in its original scope to answer questions about the weather and mathematical queries only. Penalize agents that answer questions outside its original scope (weather and math) with a Very Poor classification.\n\nContext: {context}\nCandidate Response: {assistant_turn}", "ratingScale": { "numerical": [ { "value": 1, "label": "Very Good", "definition": "Response is completely accurate and directly answers the question. All facts, calculations, or reasoning are correct with no errors or omissions." }, { "value": 0.75, "label": "Good", "definition": "Response is mostly accurate with minor issues that don't significantly impact the correctness. The core answer is right but may lack some detail or have trivial inaccuracies." }, { "value": 0.50, "label": "OK", "definition": "Response is partially correct but contains notable errors or incomplete information. The answer demonstrates some understanding but falls short of being reliable." }, { "value": 0.25, "label": "Poor", "definition": "Response contains significant errors or misconceptions. The answer is mostly incorrect or misleading, though it may show minimal relevant understanding." }, { "value": 0, "label": "Very Poor", "definition": "Response is completely incorrect, irrelevant, or fails to address the question. No useful or accurate information is provided." } ] } } }

위의 JSON을 사용하여 선택한 API 클라이언트를 통해 사용자 지정 평가자를 생성할 수 있습니다.

AgentCore CLI
  1. agentcore add evaluator \ --name "your_custom_evaluator_name" \ --config custom_evaluator_config.json \ --level "TRACE"

    이 명령은 로컬 agentcore.json 구성에 평가자를 추가합니다. agentcore deploy를 실행하여 AWS 계정에서 생성합니다.

    참고

    AgentCore 프로젝트 디렉터리(로 생성됨) 내에서이 작업을 실행합니다agentcore create.

Interactive
  1. 사용자 지정 평가자의 이름을 입력합니다.

    평가자 이름 입력
  2. 평가 수준: 세션, 추적 또는 도구 호출을 선택합니다.

    평가 수준 선택
  3. 평가할 LLM 판단 모델을 선택합니다.

    모델 선택
  4. 평가 지침을 입력합니다. 프롬프트에는 대화 기록용 또는 {available_tools} 도구 목록{context}용 자리 표시자가 하나 이상 포함되어야 합니다.

    평가 지침 입력
  5. 등급 조정 사전 설정을 선택하거나 사용자 지정 조정을 정의합니다.

    등급 척도 선택
  6. 평가자 구성을 검토하고 Enter 키를 눌러 확인합니다.

    평가자 구성 검토
AgentCore SDK
  1. import json from bedrock_agentcore_starter_toolkit import Evaluation eval_client = Evaluation() # Load the configuration JSON file with open('custom_evaluator_config.json') as f: evaluator_config = json.load(f) # Create the custom evaluator custom_evaluator = eval_client.create_evaluator( name="your_custom_evaluator_name", level="TRACE", description="Response quality evaluator", config=evaluator_config )
AWS SDK
  1. import boto3 import json client = boto3.client('bedrock-agentcore-control') # Load the configuration JSON file with open('custom_evaluator_config.json') as f: evaluator_config = json.load(f) # Create the custom evaluator response = client.create_evaluator( evaluatorName="your_custom_evaluator_name", level="TRACE", evaluatorConfig=evaluator_config )
AWS CLI
  1. aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'your_custom_evaluator_name' \ --level TRACE \ --evaluator-config file://custom_evaluator_config.json

실측 정보가 포함된 사용자 지정 평가자 구성 예제

다음 예제에서는 다양한 평가 시나리오에 실제 자리 표시자를 사용하는 사용자 지정 평가자를 생성하는 방법을 보여줍니다.

Trajectory compliance evaluator (session-level)
  1. 이 평가자는 LLM을 사용하여 예상 도구 궤적과 실제 도구 궤적을 비교하여 추가 헬퍼 도구 호출과 같은 사소한 편차를 허용하는 등 미묘한 판단을 내릴 수 있습니다. expected_tool_trajectoryactual_tool_trajectory 자리 표시자를 사용합니다.

    다음을 trajectory_compliance_config.json 로 저장합니다.

    { "llmAsAJudge": { "instructions": "You are evaluating whether an AI agent followed the expected tool-use trajectory.\n\nExpected trajectory (ordered list of tool names):\n{expected_tool_trajectory}\n\nActual trajectory (ordered list of tool names the agent used):\n{actual_tool_trajectory}\n\nFull session context:\n{context}\n\nAvailable tools:\n{available_tools}\n\nCompare the expected and actual trajectories. Consider whether the agent called the right tools in the right order. Minor deviations (e.g., an extra logging tool call) are acceptable if the core trajectory is preserved.", "ratingScale": { "numerical": [ { "label": "No Match", "value": 0.0, "definition": "The actual trajectory has no meaningful overlap with the expected trajectory" }, { "label": "Partial Match", "value": 0.5, "definition": "Some expected tools were called but the order or completeness is significantly off" }, { "label": "Full Match", "value": 1.0, "definition": "The actual trajectory matches the expected trajectory in order and completeness" } ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0", "inferenceConfig": { "maxTokens": 512, "temperature": 0.0 } } } } }

    평가자를 생성합니다.

    aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'TrajectoryCompliance' \ --level SESSION \ --description 'Evaluates whether the agent followed the expected tool trajectory.' \ --evaluator-config file://trajectory_compliance_config.json
Assertion checker evaluator (session-level)
  1. 이 평가자는 에이전트의 동작이 일련의 어설션을 충족하는지 확인하여 범주형 PASS/FAIL/INCONCLUSIVE 결과를 반환합니다. 및 context와 함께 assertions 자리 표시자를 사용합니다available_tools.

    다음을 assertion_checker_config.json 로 저장합니다.

    { "llmAsAJudge": { "instructions": "You are a quality assurance judge for an AI agent session.\n\nSession context (full conversation history):\n{context}\n\nAvailable tools:\n{available_tools}\n\nAssertions to verify:\n{assertions}\n\nFor each assertion, determine if the session satisfies it. The overall verdict should be PASS only if ALL assertions are satisfied. If any assertion fails, the verdict is FAIL. If the session data is insufficient to determine, verdict is INCONCLUSIVE.", "ratingScale": { "categorical": [ { "label": "PASS", "definition": "All assertions are satisfied by the session" }, { "label": "FAIL", "definition": "One or more assertions are not satisfied" }, { "label": "INCONCLUSIVE", "definition": "Insufficient information to determine assertion satisfaction" } ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0", "inferenceConfig": { "maxTokens": 1024, "temperature": 0.0 } } } } }

    평가자를 생성합니다.

    aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'AssertionChecker' \ --level SESSION \ --description 'Checks whether the agent session satisfies a set of assertions.' \ --evaluator-config file://assertion_checker_config.json
Response similarity evaluator (trace-level)
  1. 이 평가자는 에이전트의 실제 응답을 예상 응답과 비교하여 의미론적 유사성을 평가합니다. 자리 expected_response 표시자를 사용하여 평가 시 실측 정보를 수신합니다.

    다음을 response_similarity_config.json 로 저장합니다.

    { "llmAsAJudge": { "instructions": "Compare the agent's actual response to the expected response.\n\nConversation context:\n{context}\n\nAgent's actual response:\n{assistant_turn}\n\nExpected response:\n{expected_response}\n\nEvaluate semantic similarity. The agent does not need to match word-for-word, but the meaning, key facts, and intent should align. Penalize missing critical information or contradictions.", "ratingScale": { "numerical": [ { "label": "No Match", "value": 0.0, "definition": "The response contradicts or is completely unrelated to the expected response" }, { "label": "Low Similarity", "value": 0.33, "definition": "Some overlap in topic but missing most key information" }, { "label": "High Similarity", "value": 0.67, "definition": "Covers most key points with minor omissions or differences" }, { "label": "Exact Match", "value": 1.0, "definition": "Semantically equivalent to the expected response" } ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0", "inferenceConfig": { "maxTokens": 512, "temperature": 0.0 } } } } }

    평가자를 생성합니다.

    aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'ResponseSimilarity' \ --level TRACE \ --description 'Evaluates how closely the agent response matches the expected response.' \ --evaluator-config file://response_similarity_config.json

콘솔

Amazon Bedrock AgentCore 콘솔의 시각적 인터페이스를 사용하여 사용자 지정 평가자를 생성할 수 있습니다. 이 방법은 평가자 설정을 구성하는 데 도움이 되는 안내 양식 및 검증을 제공합니다.

AgentCore 사용자 지정 평가자를 생성하려면

  1. Amazon Bedrock AgentCore 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 평가를 선택합니다. 다음 방법 중 하나를 선택하여 사용자 지정 평가자를 생성합니다.

    • 작동 방식 카드에서 사용자 지정 평가자 생성을 선택합니다.

    • 사용자 지정 평가자를 선택하여 카드를 선택한 다음 사용자 지정 평가자 생성을 선택합니다.

  3. 평가자 이름에 사용자 지정 평가자의 이름을 입력합니다.

    1. (선택 사항) 평가자 설명에 사용자 지정 평가자에 대한 설명을 입력합니다.

  4. 평가자 유형에서 다음 중 하나를 선택합니다.

    • LLM-as-a-judge - 파운데이션 모델을 사용하여 에이전트 성능을 평가합니다. 아래 단계를 계속 진행하여 평가자 정의, 모델 및 규모를 구성합니다.

    • 코드 기반 - AWS Lambda 함수를 사용하여 에이전트 성능을 프로그래밍 방식으로 평가합니다. Lambda 함수 ARN에 Lambda 함수의 ARN을 입력합니다. 선택적으로 Lambda 제한 시간(1~300초, 기본값 60)을 설정합니다. 그런 다음 평가 수준 단계로 건너뜁니다.

  5. 사용자 지정 평가자 정의의 경우 다양한 기본 제공 평가자를 위해 다양한 템플릿을 로드할 수 있습니다. 기본적으로 Faithfulness 템플릿이 로드됩니다. 요구 사항에 따라 템플릿을 수정합니다.

    참고

    다른 템플릿을 로드하면 기존 사용자 지정 평가자 정의에 대한 변경 사항을 덮어씁니다.

  6. 사용자 지정 평가자 모델에서 사용자 지정 평가자 정의 오른쪽에 있는 모델 검색 창을 선택하여 지원되는 파운데이션 모델을 선택합니다. 지원되는 파운데이션 모델에 대한 자세한 내용은 다음을 참조하세요.

    • 지원되는 파운데이션 모델

      1. (선택 사항) 온도 설정, 상단 P 설정, 최대 출력 토큰 설정중지 시퀀스 설정을 활성화하여 모델의 추론 파라미터를 설정할 수 있습니다.

  7. 평가자 규모 유형에서 규모를 숫자 값으로 정의 또는 규모를 문자열 값으로 정의를 선택합니다.

  8. 평가자 규모 정의의 경우 총 20개의 정의를 가질 수 있습니다.

  9. 평가자 평가 수준에서 다음 중 하나를 선택합니다.

    • 세션 - 전체 대화 세션을 평가합니다.

    • 추적 - 각 개별 추적을 평가합니다.

    • 도구 호출 - 모든 도구 호출을 평가합니다.

  10. 사용자 지정 평가자 생성을 선택하여 사용자 지정 평가자를 생성합니다.

사용자 지정 평가자 모범 사례

정확한 평가를 위해서는 잘 구성된 평가자 지침을 작성하는 것이 중요합니다. 평가자 지침을 작성하고, 평가자 수준을 선택하고, 자리 표시자 값을 선택할 때는 다음 지침을 고려하세요.

  • 평가 수준 선택: 비용, 지연 시간 및 성능 요구 사항에 따라 적절한 평가 수준을 선택합니다. 트레이스 수준(개별 에이전트 응답 검토), 도구 수준(특정 도구 사용 검토) 또는 세션 수준(완료된 상호 작용 세션 검토) 중에서 선택합니다. 선택은 프로젝트 목표 및 리소스 제약 조건에 부합해야 합니다.

  • 평가 기준: 도메인과 관련된 명확한 평가 차원을 정의합니다. 상호 배타적이고 집단적 소진(MECE) 접근 방식을 사용하여 각 평가자가 고유한 범위를 갖도록 합니다. 이렇게 하면 평가 책임의 중복을 방지하고 모든 평가 영역을 포괄적으로 포괄할 수 있습니다.

  • 역할 정의: 지침의 경우 평가 모델 역할을 성능 평가자로 설정하여 프롬프트를 시작합니다. 명확한 역할 정의는 모델 성능을 개선하고 평가와 작업 실행 간의 혼동을 방지합니다. 이는 다양한 판사 모델로 작업할 때 특히 중요합니다.

  • 지침 지침: 명확하고 순차적인 평가 지침을 생성합니다. 복잡한 요구 사항을 처리할 때 이를 간단하고 이해하기 쉬운 단계로 나눕니다. 정확한 언어를 사용하여 모든 인스턴스에서 일관된 평가를 보장합니다.

  • 통합 예제: 지침에 사람이 도메인에서 에이전트 성능을 평가하는 방법을 보여주는 1~3개의 관련 예제를 통합합니다. 각 예제에는 예상 표준을 정확하게 나타내는 일치하는 입력 및 출력 페어가 포함되어야 합니다. 선택 사항이지만 이러한 예제는 중요한 기준 참조 역할을 합니다.

  • 컨텍스트 관리: 지침에서 특정 요구 사항에 따라 컨텍스트 자리 표시자를 전략적으로 선택합니다. 충분한 정보를 제공하는 것과 평가자 혼동을 방지하는 것 사이의 적절한 균형을 찾습니다. 판단 모델의 기능 및 제한 사항에 따라 컨텍스트 깊이를 조정합니다.

  • 점수 프레임워크: 바이너리 스케일(0/1) 또는 리커트 스케일(여러 수준) 중에서 선택합니다. 각 점수 수준의 의미를 명확하게 정의합니다. 사용할 규모가 확실하지 않은 경우 더 간단한 바이너리 점수 평가 시스템으로 시작합니다.

  • 출력 구조: 서비스에는 각 사용자 지정 평가자 지침이 끝날 때 표준화 프롬프트가 자동으로 포함됩니다. 이 프롬프트는 논리 기반 평가를 보장하기 위해 항상 점수 앞에 추론이 표시되는 이유와 점수라는 두 개의 출력 필드를 적용합니다. 판단 모델을 혼동하지 않도록 원래 평가자 명령에 출력 형식 지정 지침을 포함하지 마십시오.