ShopSimulator: 쇼핑 어시스턴트를 위한 RL 기반 LLM 에이전트 평가 및 탐색 환경
ShopSimulator: Evaluating and Exploring RL-Driven LLM Agent for Shopping Assistants
TL;DR Highlight
GPT-5도 성공률 32%에 불과한 중국어 쇼핑 시뮬레이터로 LLM 에이전트의 실전 쇼핑 능력을 평가하고, SFT+RL 조합으로 성능을 최대 40%p 개선했다.
Who Should Read
이커머스 플랫폼에서 LLM 기반 쇼핑 어시스턴트나 추천 에이전트를 구축하는 ML 엔지니어. 개인화 정보와 멀티턴 대화를 함께 처리하는 에이전트 설계를 고민하는 개발자에게도 유용하다.
Core Mechanics
- GPT-5조차 전체 성공률 32%, 최고 모델도 40% 미만 — 현 LLM은 아직 신뢰할 만한 쇼핑 어시스턴트 수준이 아님
- 가장 큰 실패 원인은 색상·사이즈 같은 세부 속성/옵션 매칭 실패 (카테고리·가격은 잘 맞히지만 fine-grained 요구사항에서 탈락)
- 개인화 정보 활용 오류가 양극단: 무시(55.8%)하거나 과잉해석(35.7%)하는 두 패턴이 지배적 — 적당한 균형을 잡는 게 핵심 난제
- SFT(성공 궤적 모방) + RL(GRPO 알고리즘으로 보상 최적화) 조합이 단독 RL보다 전 시나리오에서 우수 — SFT가 task 흐름 priors를 제공하고 RL이 선호도 세부 조정
- 곱셈형 엄격 보상(Strict Reward)이 덧셈형 완화 보상(Loose Reward)보다 일관되게 우수 — 가장 약한 조건에 집중하는 병목 효과
- 멀티턴+개인화 시나리오는 학습 후에도 성공률 ~35% 수준 정체 — 개인화 이해, 의도 명료화, 환경 액션을 동시에 장기간 유지하는 것이 현 LLM의 천장
Evidence
- Qwen3-8B에 SFT+RL w. Rstrict 적용 시 Single-Turn 성공률 14.13% → 38.89% (+24.76%p)
- Single-Turn & Personalization에서 SFT+RL 성공률 17.24% → 57.33% (+40.09%p) — 네 시나리오 중 최대 개선폭
- BuyNow 액션 오류 분석: 45.63%가 '상세 확인 없이 구매', 31.31%가 '사용자 거절 후 구매' — 에이전트의 경솔한 결정이 주요 실패 원인
- Qwen3-8B의 멀티턴 strict 점수가 싱글턴 대비 47%, 성공률 50% 하락 (Qwen3-235B는 각 13%, 14% 하락) — 소형 모델일수록 멀티턴에서 급격히 성능 저하
How to Apply
- 쇼핑 에이전트 시스템 프롬프트 설계 시 논문 Figure 7의 구조를 참고 — 정보 수집 → 환경 상호작용 → 구매 확인 단계별 명시적 규칙과 응답 포맷(Thought/Action_type/Action_content)을 강제하면 에이전트 일관성이 올라감
- 개인화 정보를 LLM에 넣을 때 '장기 선호도(브랜드, 스타일)'와 '현재 요청(색상, 사이즈)'을 별도 섹션으로 분리해 전달 — 뭉쳐서 넣으면 과잉해석 오류 급증
- RL 학습 시 보상 함수를 additive 대신 multiplicative(곱셈형)으로 설계 — 모든 조건 중 하나라도 미달이면 전체 점수가 크게 낮아지도록 해야 약한 차원(속성, 옵션)이 집중 개선됨
Code Example
# ShopSimulator 스타일 에이전트 시스템 프롬프트 구조 (Figure 7 기반)
SYSTEM_PROMPT = """
당신은 지능형 쇼핑 어시스턴트입니다.
## 응답 형식 (반드시 준수)
Thought: 다음 행동을 결정하는 이유
Action_type: ask_shopper | interact_with_env
Action_content: 구체적 내용
## 액션 규칙
- interact_with_env인 경우:
- search[키워드] : 상품 검색
- click[값] : 버튼/상품 클릭
- click[buy now] : 즉시 구매
- ask_shopper인 경우:
- 오픈형 질문으로 미확인 정보 수집
## 의사결정 로직
1. 정보 부족 → ask_shopper
2. 액션 가능 → interact_with_env
3. 구매 전 반드시 사용자 최종 확인
4. 사용자가 거절하면 절대 구매 실행 금지
"""
# 개인화 정보 레이어 분리 예시
def build_personalized_prompt(user_profile, current_request):
return f"""
{SYSTEM_PROMPT}
## 사용자 장기 선호도 (참고용)
- 선호 브랜드: {user_profile['brand_preferences']}
- 선호 기능: {user_profile['feature_preferences']}
- 사이즈: {user_profile['size']}
- 가격대: {user_profile['price_range']}
## 현재 요청 (우선 적용)
{current_request}
주의: 장기 선호도는 힌트로만 활용하고, 현재 요청과 충돌 시 현재 요청을 우선합니다.
"""Terminology
Related Resources
Original Abstract (Expand)
Large language model (LLM)-based agents are increasingly deployed in e-commerce shopping. To perform thorough, user-tailored product searches, agents should interpret personal preferences, engage in multi-turn dialogues, and ultimately retrieve and discriminate among highly similar products. However, existing research has yet to provide a unified simulation environment that consistently captures all of these aspects, and always focuses solely on evaluation benchmarks without training support. In this paper, we introduce ShopSimulator, a large-scale and challenging Chinese shopping environment. Leveraging ShopSimulator, we evaluate LLMs across diverse scenarios, finding that even the best-performing models achieve less than 40% full-success rate. Error analysis reveals that agents struggle with deep search and product selection in long trajectories, fail to balance the use of personalization cues, and to effectively engage with users. Further training exploration provides practical guidance for overcoming these weaknesses, with the combination of supervised fine-tuning (SFT) and reinforcement learning (RL) yielding significant performance improvements. Code and data will be released at https://github.com/ShopAgent-Team/ShopSimulator.