시작하기 전에
에이전트 동작을 시뮬레이션하고 평가하려면 다음을 완료해야 합니다.
- 에이전트 버전 만들기: 시뮬레이션에는 시스템 안내, 도구, 모델 등을 포함한 에이전트 구성의 변경 불가능한 스냅샷이 필요합니다. 에이전트 레지스트리에 에이전트 버전을 하나 이상 만들었는지 확인합니다.
- SDK 초기화: 프로그래매틱 방식으로 시뮬레이션을 실행하려면 Agent Platform SDK를 설치하고 에이전트 평가에 설명된 대로 클라이언트를 초기화합니다.
시뮬레이션을 사용하면 기존 프로덕션 데이터가 없어도 처음부터 포괄적인 평가 모음을 빌드할 수 있습니다. 이 프로세스에서는 LLM을 사용하여 테스트 사례를 자동으로 생성한 다음 사용자로 역할극을 수행하여 에이전트의 다중 턴 대화 로직을 스트레스 테스트합니다.
2단계 시뮬레이션 워크플로
새 에이전트 테스트는 일반적으로 2단계 프로세스를 따릅니다.
시나리오 생성: 에이전트의 안내 및 도구 정의를 기반으로 '테스트 사양' 데이터 세트를 만듭니다.
세션 시뮬레이션: 시뮬레이션된 사용자가 에이전트와 상호작용하여 동작 추적 을 생성하도록 하여 이러한 사양을 실행합니다. 추적 은 모델 입력, 응답, 도구 호출을 포함한 에이전트 동작의 사실적이고 변경 불가능한 기록입니다.
첫 번째 단계에서 시스템은 평가 사례 를 만듭니다. 평가 사례 는 에이전트의 작업을 정의하는 사양입니다. 각 사례는 다음 두 가지 요소로 구성됩니다.
- 시작 프롬프트: 사용자가 에이전트에게 보내는 첫 번째 메시지입니다.
- 대화 계획: 시뮬레이션된 사용자의 목표와 에이전트가 특정 질문을 하는 경우 사용자가 어떻게 반응해야 하는지를 설명하는 숨겨진 '안내'입니다.
2단계에서 시스템은 표준 에이전트 데이터 형식으로 에이전트 동작 목록을 생성합니다.
콘솔에서 시나리오 생성
콘솔에서 Agent Platform > 에이전트 > 평가 페이지로 이동합니다. Google Cloud
새 평가 를 클릭하고 세션 시뮬레이션 을 선택합니다.
생성 안내 를 입력하여 시나리오를 안내합니다 (예: '사용자가 항공편을 예약하려고 하지만 마음을 바꾸는 시나리오 생성').
생성된 표를 검토합니다. 프롬프트를 수정하거나 테스트 사례를 직접 추가할 수 있습니다.
사용자 시뮬레이션 실행
시나리오가 생성되면 사용자 시뮬레이터 가 사용자로 작동하여 대화를 진행합니다.
사용자 시뮬레이션 설정
시뮬레이션을 실행할 때 다음 속성을 구성할 수 있습니다.
- 최대 턴: 다중 턴 에이전트 실행에서 허용되는 최대 호출 수입니다. 이 속성을 사용하면 에이전트와 사용자 시뮬레이터가 끝없는 루프에 빠지는 런오프 대화를 중지할 수 있습니다. (기본값은 5입니다.)
- 모델 이름: 다중 턴 에이전트 실행을 위해 다음 사용자 메시지를 시뮬레이션할 모델 이름입니다.
- 모델 구성: 사용자 메시지를 시뮬레이션할 모델의 구성입니다.
SDK 예시: 프로그래매틱 시뮬레이션
Agent Platform SDK를 사용하여 평가 모음을 부트스트랩할 수도 있습니다.
# 1. Define agent
travel_agent = Agent(
model="gemini-3-flash-preview",
name='travel_agent',
instruction='You are a travel expert, help users to find flights, book flights with flight ID',
tools=[find_flights, book_flight],
)
# 2. Generate scenarios from agent info
travel_agent_info = types.evals.AgentInfo.load_from_agent(agent=travel_agent)
eval_dataset = client.evals.generate_conversation_scenarios(
agent_info=travel_agent_info,
config={
"count": 5,
"generation_instruction": "Generate scenarios where the user tries to book a flight.",
"environment_context": "Today is Monday. I am located in San Francisco. Flights to Paris, New York, Tokyo, Chicago, Sydney, etc are available.",
},
)
# 3. Simulate multi-turn interactions
eval_dataset_with_traces = client.evals.run_inference(
agent=travel_agent,
src=eval_dataset,
config={
"user_simulator_config": {
"max_turn": 5
}
}
)