
AWS에서 AI 에이전트를 평가하는 관리형 서비스로 AgentCore Evaluations 가 있습니다. 하지만 2026년 4월 기준으로 서울 리전(ap-northeast-2)을 지원하지 않아, 서울 리전을 기반으로 운영 중인 프로젝트에서는 그대로 도입하기 어렵습니다.
이럴 때 찾을 수 있는 대안이 있다면 같은 생태계 안의 Strands Evals SDK 일 것입니다. 동일한 SDK 위에서 동작하기 때문에 별도의 인프라 구성 없이 평가 시스템을 자연스럽게 연결할 수 있거든요.
이번 포스팅에서는 Strands Agents SDK를 사용 중이면서 서울 리전에서 에이전트를 평가 할 수 있는 방법에 대해서 알아보겠습니다.
Strands Evals SDK란
한 줄로 요약하면, AI 에이전트가 잘 동작하는지 자동으로 채점해주는 프레임워크입니다.
에이전트를 만들고 나면 "이 에이전트가 실제로 잘 답하고 있는 건지 어떻게 알 수 있을까?"라는 문제가 생깁니다. 수동으로 입력을 던져보고 눈으로 확인하는 방식은 당연히 한계가 있는데, Strands Evals SDK는 그 채점 과정을 코드로 자동화해주는 도구입니다.
핵심 동작 방식: AI가 AI를 채점하는 LLM-as-a-Judge
사람 대신 다른 LLM이 에이전트 응답을 보고 점수를 매깁니다. 기본값은 Amazon Bedrock의 Claude 4이며, 평가 기준(rubric)은 직접 작성해서 넘길 수 있습니다. 결과로는 0.0~1.0 사이의 점수, 통과 여부(pass/fail), 판단 이유 텍스트가 반환됩니다.
설치 및 적용 방법
# terminal
pip install strands-agents-evals
pip install strands-agents strands-agents-tools
기본 구성 요소
세 가지 개념으로 이루어집니다.
- Case — 테스트 케이스 하나. 입력, 기대 출력, 메타데이터를 담습니다
- Experiment — Case들의 묶음. Evaluator와 연결해서 실행합니다
- Evaluator — 실제 채점을 담당하는 클래스
from strands_evals import Case, Experiment
from strands_evals.evaluators import OutputEvaluator
cases = [Case(name="q1", input="프랑스 수도는?", expected_output="파리")]
evaluator = OutputEvaluator(rubric="정확성과 간결함을 기준으로 채점하세요.")
experiment = Experiment(cases=cases, evaluators=[evaluator])
reports = experiment.run_evaluations(my_agent_function)
평가 방식
Strands Evals SDK는 에이전트를 평가하는 방식을 크게 세 가지로 나눕니다. 개발자가 무엇을 평가하고 싶은지에 따라 방식을 선택하고, 그에 맞는 Evaluator를 붙이면됩니다.
Output Evaluation
가장 단순한 방식입니다. 에이전트의 최종 응답 텍스트만 보고 채점합니다. "질문을 던졌을 때 답변이 정확하고 적절한가"를 평가하고 싶을 때 사용합니다. 기대 출력(expected_output)을 미리 정해두거나, rubric 기준만으로도 평가할 수 있습니다.
연결되는 Evaluator: OutputEvaluator
Trajectory Evaluation
에이전트가 어떤 툴을 어떤 순서로 사용했는지 경로(trajectory) 자체를 평가합니다. 최종 응답이 맞더라도 불필요한 툴을 호출했거나 순서가 비효율적이었다면 낮은 점수를 받을 수 있습니다. 툴 기반 에이전트에서 특히 중요한 방식입니다.
연결되는 Evaluator: TrajectoryEvaluator, ToolSelectionEvaluator, ToolParameterEvaluator
Trace-based Evaluation
OpenTelemetry Trace를 기반으로 에이전트의 실행 흐름 전체를 분석해서 평가합니다. 단순히 응답이나 툴 호출 목록만 보는 것이 아니라, 각 단계에서 LLM이 어떤 판단을 했는지, 대화 맥락은 잘 유지됐는지 같은 복합적인 지표를 채점할 수 있습니다.
연결되는 Evaluator: HelpfulnessEvaluator, FaithfulnessEvaluator, GoalSuccessRateEvaluator, InteractionsEvaluator
Eval SOP - 평가 프로세스 자동화
전체적인 평가 프로세스를 처음부터 설계하는 일은 생각보다 손이 많이 갑니다. Eval SOP는 그 설계 과정 자체를 AI가 대신 처리해주는 자동화 도구입니다. 에이전트 코드를 넘겨주면 아래 4단계를 순서대로 진행합니다.
| 단계 | 내용 | 산출물 |
| 1단계 - Planning | 에이전트 구조를 분석해 평가 전략을 수립 | eval-plan.md |
| 2단계 - Data | 다양한 테스트 케이스 자동 생성 | test-cases.jsonl |
| 3단계 - Evaluation | 평가 스크립트 생성 및 실행 | results/ 디렉터리 |
| 4단계 - Reporting | 성능 분석 및 개선 방향 제시 | eval-report.md |
Claude Code를 사용 중이라면 MCP 서버로 연결해서 아래와 같이 바로 실행할 수 있습니다. 평가 설계 경험이 전혀 없어도 명령어 하나로 시작할 수 있다는 점이 가장 큰 장점입니다.
# terminal
pip install strands-agents-sops
# Claude Code에서 사용 시 (MCP)
/my-sops:eval generate an evaluation plan for this agent at ./your-agent
MCP(Model Context Protocol)는 AI 모델이 외부 도구나 서비스를 표준화된 방식으로 호출할 수 있게 해주는 프로토콜입니다. Eval SOP를 MCP 서버로 등록해두면, Claude Code가 대화 흐름 안에서 직접 평가 도구를 호출할 수 있게 됩니다. 별도의 스크립트를 따로 실행하거나 터미널을 전환할 필요 없이, 에이전트 개발과 평가를 같은 컨텍스트에서 이어갈 수 있는 것이 핵심입니다.
현 상황에서 추천하는 이유
서울 리전에서 AgentCore Evaluations를 사용할 수 없는 지금, Strands Evals SDK는 현실적으로 가장 빠르게 평가 시스템을 붙일 수 있는 선택지입니다. pip install 하나로 시작할 수 있고, 기존 에이전트 코드를 그대로 쓸 수 있어서 진입 장벽이 낮습니다.
나중에 AgentCore Evaluations로 전환하게 되더라도 부담이 크지 않습니다. 두 도구가 지원하는 Evaluator 유형이 상당히 겹치고, 평가 철학 자체도 동일하기 때문입니다. 코드 인터페이스는 달라지지만 "무엇을 평가할 것인가"에 대한 설계는 그대로 가져갈 수 있습니다. 테스트 케이스 데이터 역시 AgentCore의 데이터셋 포맷으로 변환해 재사용할 수 있어 시나리오를 처음부터 다시 짤 필요가 없습니다.
마치며
글을 작성하는 현재 기준으로, 서울 리전 제약이 언제 해소될지는 아직 알 수 없습니다. 하지만 그 사이에도 에이전트는 계속 개발되고, 품질에 대한 물음은 계속 생깁니다. Strands Evals SDK는 그 물음에 지금 당장 답할 수 있는 도구라고 생각합니다.
하지만 평가 시스템을 처음 도입하는 입장에서는 어디서부터 시작해야 할지 막막할 수 있는데요(제가 그랬습니다). 이 SDK는 코드 몇 줄로 바로 결과를 확인할 수 있을 만큼 진입 장벽이 낮습니다. 나중에 AgentCore Evaluations로 넘어가더라도 지금 쌓아둔 테스트 케이스와 평가 설계가 그대로 자산이 된다는 점도 도입을 망설일 이유를 하나 줄여줄 것 같고요.
에이전트를 만드는 것만큼 에이전트를 검증하는 일도 중요하다고 생각합니다. 아무리 직접 열심히 테스트를 하더라도, 예외적인 케이스는 분명 존재할 것이기 때문이에요. 완성도 높은 에이전트를 만들고 싶다면, 평가 파이프라인을 개발 초기부터 함께 가져가는 것을 권장합니다.
ref: https://strandsagents.com/docs/user-guide/evals-sdk/quickstart/