Solon ReActAgent를 활용한 이커머스 사후 관리(After-Sales) AI 엔진 구축
요약
Solon의 ReActAgent를 활용하여 이커머스 사후 관리(After-Sales)를 자동화하는 AI 엔진 구축 사례를 소개합니다. 주문 조회부터 물류 확인, 보상 실행까지 이어지는 ReAct 루프와 HITL(Human-In-The-Loop) 승인 프로세스를 구현하는 방법을 다룹니다.
핵심 포인트
- Solon ReActAgent의 'Think-Act-Observe-Re-think' 루프 메커니즘 이해
- @ToolMapping 어노테이션을 이용한 비즈니스 도구 정의 방법
- HITLInterceptor를 활용한 민감한 작업(환불 등)에 대한 인간의 승인 단계 구현
- 복잡한 CS 워크플로우를 AI 에이전트로 자동화하여 운영 효율성 증대
모든 코드는 공식 Solon 문서(article/1285, article/1286, article/1329)를 기반으로 합니다.
문제 상황
지난달, 저희 사후 관리(after-sales) 지원 팀은 쏟아지는 티켓(ticket)으로 인해 매우 힘든 상황이었습니다.
매일 수백 건의 "주문 미수령" 불만이 접수되었습니다. 고객 서비스(CS) 담당자들은 매 건마다 주문 시스템, 물류 시스템, 보상 시스템 사이를 번갈아 가며 확인해야 했습니다. 평균 처리 시간은 티켓당 15분이었습니다. 프로모션 기간에는 미처리 티켓이 3,000건 이상 쌓이기도 했습니다.
저는 생각했습니다. 워크플로우는 항상 동일합니다. 주문을 조회하고, 물류를 확인하고, 책임을 결정하고, 보상을 실행하는 과정입니다. 왜 이 흐름을 AI가 처리하게 하지 않을까?
그래서 저는 Solon의 ReActAgent를 사용하여 AI 기반 사후 관리 결정 엔진을 구축했습니다.
Solon의 AI 에이전트(AI Agent)란 무엇인가?
Solon은 v3.8부터 AI 에이전트(AI Agent) 기능을 도입했습니다. 핵심 구성 요소는 ReActAgent입니다. 이는 도구(tool)를 호출할 수 있는 LLM(대규모 언어 모델)이라고 생각하면 됩니다.
단순히 대화만 하는 대신, ReActAgent는 "생각(Think) → 행동(Act) → 관찰(Observe) → 재사고(Re-think)" 루프를 따릅니다:
- 고객 불만 접수
- 생각 (Think): "이 주문을 조회해야겠다"
- 행동 (Act):
get_order(orderId)호출 → 주문 상세 정보 획득 - 관찰 (Observe): 주문에 운송장 번호 track_123이 있음
- 재사고 (Re-think): "운송장 번호를 확인했으니, 물류 상태를 체크하자"
- 행동 (Act):
get_logistic_status(trackNo)호출 - 관찰 (Observe): 상태가 "분실(lost)"임
- 재사고 (Re-think): "주문 금액이 $158로 $100를 초과하므로 환불을 진행해야 함"
- 행동 (Act):
apply_compensation("refund", 158)호출
이 전체 체인은 인간의 개입 없이 실행됩니다.
비즈니스 도구(Business Tools) 정의
Solon에서 도구는 @ToolMapping 어노테이션(annotation)을 사용하여 AbsToolProvider를 확장합니다:
public static class OrderTools extends AbsToolProvider {
@ToolMapping(description = "Query order details by order ID: product name, amount, tracking number")
public String get_order(@Param(description = "Order ID") String orderId) {
...
핵심은 @ToolMapping입니다. 이는 LLM에게 각 도구가 무엇을 하는지, 어떤 파라미터(parameter)가 필요한지를 알려줍니다.
에이전트 조립 및 실행
ChatModel chatModel = LlmUtil.getChatModel();
ReActAgent agent = ReActAgent.of(chatModel)
...
HITL (Human-In-The-Loop) 승인
환불은 금전과 관련되어 있습니다. Solon은 인간의 감독을 위해 HITLInterceptor를 제공합니다:
HITLInterceptor hitl = new HITLInterceptor()
.onSensitiveTool("apply_compensation")
.onTool("apply_compensation", (trace, args) -> {
...
승인 엔드포인트 (Approval Endpoints)
| 엔드포인트 (Endpoint) | 메서드 (Method) | 목적 (Purpose) |
|---|---|---|
/ai/hitl/call | POST | 사용자 쿼리 제출; 인터셉트된 경우 승인 대기 중인 작업을 반환 |
| ... |
HITLTask task = HITL.getPendingTask(session);
if ("approve".equals(action)) {
...
실질적인 영향 (Real-World Impact)
| 지표 (Metric) | 이전 (Before) | 이후 (After) |
|---|---|---|
| 티켓당 소요 시간 (Time per ticket) | ~15분 | <10초 (자동) / ~2분 (HITL) |
| ... |
마치며
Solon의 ReActAgent는 사람과 시스템 사이의 간극을 메워줍니다. 깔끔한 도구 정의, 유연한 주입(injection), 그리고 즉시 사용 가능한(out-of-the-box) HITL 승인 기능을 제공합니다. 문서: article/1285, article/1286, article/1329.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기