열무 챗봇 구조 변경 기획서
라이프스타일 발견 챗봇 + 매물 검색 챗봇의 이중 구조로 전환하여, 사용자 니즈 파악 → 매물 추천의 자연스러운 여정을 설계합니다. GROQ 제거 후 GPT 웹서치 ON/OFF 비교 테스트 포함.
배경
왜 지금 이 변경이 필요한가
현재 단일 열무 챗봇의 구조적 한계와 글로벌 프롭테크 트렌드 사이의 간극
역할 혼재 문제
현재 단일 에이전트가 라이프스타일 파악 + 매물 검색을 동시에 담당 → 프롬프트 복잡도 증가, 맥락 전환 혼란
GROQ 의존 리스크
openai/gpt-oss-120b via Groq API — 서드파티 라우팅, 모델 변경 불투명, GPT 직접 호출 대비 기능 제약
전환율 개선 기회
글로벌 데이터: 라이프스타일 퀄리파이 챗봇 도입 시 qualified lead 3~5배, 고객 전환율 15~25% 상승
Feature 1
1 챗봇 2개 분리 구조
단일 에이전트를 목적 기반 2-에이전트로 분리 — 각자 최적화된 시스템 프롬프트와 툴셋 보유
A. 라이프스타일 챗봇
신규자연스러운 대화로 사용자 니즈 발굴
- 일상 대화 + 라이프스타일 질문 (반려동물, 출퇴근, 취향)
- 페르소나 누적 — 예산·위치·방수 외 소프트 조건 파악
- 매물 검색 툴 없음 — 오직 프로파일링
- 충분한 데이터 수집 시 "매물 확인하기" 버튼 활성화
- 이동 시 수집된 전체 컨텍스트 번들로 B봇에 전달
보유 툴셋
get_user_profile
update_user_profile
get_thread_history
resolve_place
시스템 프롬프트: 매물 언급 최소화, "어떤 동네가 잘 맞을까요?" 같은 탐색형 대화 유도
B. 매물 검색 챗봇
기존 유지기존 열무 구조 그대로 — 검색 전담
- Dense+BM25+RRF+BGE+MMR 풀 파이프라인 유지
- A봇에서 전달받은 컨텍스트 번들로 초기 검색 파라미터 사전 설정
- 기존 7개 툴 전체 유지 (
search_listings포함) - W1 강제 검색, 0건 CTA 로직 그대로
- 매물 카드·퀵버튼·SSE 스트리밍 유지
보유 툴셋
search_listings
get_market_stats
resolve_place
lookup_facility
update_user_profile
get_user_profile
get_thread_history
기존 agent.py 로직 최대 재사용 — 변경 최소화 전략
Feature 2
2 핸드오프 플로우 & 컨텍스트 전달
A→B 전환 시 사용자가 같은 내용을 반복하지 않도록 — "제로 중복 원칙"
컨텍스트 전달 방식 3가지 비교
권장 설계: Redis 세션의 filters_patch (예산·위치·방수·입주시기) + situation 라벨을 구조화된 번들로 전달. 소프트 조건(반려동물, 채광 등)은 추가 필드로 update_user_profile에 저장하도록 A봇 프롬프트 보강. B봇 초기 turn에 "OOO님이 말씀하신 조건(강남 출퇴근, 반려견 있음, 예산 60만원)으로 매물을 찾아볼게요" 확인 메시지 출력.
버튼 활성화 조건
| 조건 | 측정 방법 | 임계값 |
|---|---|---|
| 필수 슬롯 충족 | filters_patch에 budget OR location 존재 | 둘 중 하나 이상 |
| 대화 최소 턴수 | user 발화 횟수 | ≥ 3턴 |
| 라이프스타일 데이터 | situation 라벨 개수 | ≥ 1개 |
| 최종 버튼 노출 | 위 3개 AND | 모두 충족 시 |
Feature 3
3 LLM 변경 — GROQ 제거 + GPT 직접 연동
현재 Groq 경유 구조를 GPT-4o direct로 전환 + 웹서치 ON/OFF 두 모드 비교
현재 구조: openai/gpt-oss-120b via Groq API (adapters/llm/groq/) — OpenAI 직접 연결 아님. GROQ 자체 모델 라우팅 레이어 경유 중.
GPT 웹서치 INSTANT 모드
모드 A- GPT-4o +
web_search_previewtool - 실시간 시세·뉴스·개발 호재 반영
- 최신 정보 필요한 질문에 강점
- 추가 레이턴시 0.5~2s 예상
- 토큰 비용 증가 (서치 결과 컨텍스트)
GPT 웹서치 OFF 일반 모드
모드 B- GPT-4o standard (no web search)
- 내부 DB + Kakao POI API 전용
- 결정론적 응답, hallucinate 차단 용이
- 레이턴시 현재 수준 유지
- 비용 예측 가능
모델/어댑터 변경 사항
| 항목 | 현재(GROQ) | 변경 후(GPT) | 영향 |
|---|---|---|---|
| 메인 에이전트 LLM | openai/gpt-oss-120b via Groq |
gpt-4o direct |
어댑터 교체 |
| Function calling | Groq parallel tools | OpenAI parallel tools | API 호환 확인 필요 |
| temperature | 1.0 고정 | 0.7 권장 (조정 가능) | 설정 변경 |
| 웹서치 툴 | 없음 | web_search_preview (옵션) |
신규 툴 |
| 임베딩 | OpenRouter → text-embedding-3-large | 유지 | 변경 없음 |
| Reranker | OpenRouter → Cohere | 유지 | 변경 없음 |
Test Results
4 시나리오 비교 테스트 (예상 결과)
기존 backend/tests/integration/chat_assistant/scenarios.py 시나리오셋 기반 — 웹서치 ON vs OFF 비교
아래 데이터는 GPT 전환 후 실제 실행 전 예상값입니다. 실제 테스트 실행 후 수치를 업데이트해야 합니다.
종합 성능 비교
| 지표 | 현재 (GROQ) | GPT 웹서치 OFF | GPT 웹서치 ON | 비고 |
|---|---|---|---|---|
| 평균 응답 시간 | ~2.1s | ~1.8s | ~3.2s | TTFT 기준 |
| LLM judge 정확도 | 82% | 85% 예상 | 88% 예상 | 최신 정보 반영 |
| Hallucination 빈도 | 낮음 | 낮음 | 주의 (서치 결과 오독) | 내부 DB 우선 설계 필요 |
| 입력 토큰 비용 | 기준 | +15% 예상 | +60~80% 예상 | 서치 결과 컨텍스트 |
| 최신 시세 정확도 | 내부 DB 의존 | 내부 DB 의존 | 실시간 반영 | 핵심 차별점 |
시나리오별 상세 비교
S1 강남 출퇴근 1인 직장인 — 라이프스타일 파악 라이프스타일 봇
🌐 웹서치 ON
"강남역 도보 10분 이내, 현재 월세 시세는 평균 115만원(2025년 11월 기준)입니다. 최근 역세권 수요 증가로 6개월 전보다 8% 상승했어요."
💬 웹서치 OFF
"강남 출퇴근이시군요. 어떤 교통수단을 이용하세요? 지하철역 근처를 선호하시는지, 아니면 버스도 괜찮으신가요?"
S2 반려견 있는 신혼부부 — 특수 조건 수집 라이프스타일 봇
🌐 웹서치 ON
"반려견 동반 가능 아파트는 서울 기준 전체의 약 42%가 허용 정책을 두고 있으며, 최근 펫프렌들리 단지 공급이 늘고 있습니다(KB부동산 2025)."
💬 웹서치 OFF
"강아지 종류가 어떻게 되세요? 소형견인지, 중형견 이상인지에 따라 입주 가능한 단지가 달라질 수 있어서요."
S3 마포구 원룸 검색 — 매물 검색 핵심 시나리오 매물 검색 봇
🌐 웹서치 ON
"마포구 원룸 현재 시세: 홍대 인근 평균 65만원, 합정 58만원, 망원 55만원. 최근 홍대 임대료 5% 상승 추이."
매물 검색 결과: 8건
💬 웹서치 OFF
"마포구 원룸 찾아볼게요! 예산은 어떻게 되세요? 역세권 선호하시나요?"
매물 검색 결과: 12건 (내부 DB 최적화)
S4 핸드오프 시나리오 — A→B 전환 시 컨텍스트 유지 신규 시나리오
A봇에서 수집한 조건(강남 출퇴근, 반려견, 예산 80만원, 채광 중요)이 B봇 전환 후 얼마나 보존되는지 검증
✅ 기대 동작
B봇 첫 메시지: "강남 출퇴근, 반려견 동반 가능, 예산 80만원 이하 조건으로 매물을 찾아볼게요! 채광이 좋은 남향을 우선으로 보여드릴까요?"
❌ 실패 케이스
B봇 첫 메시지: "안녕하세요! 어떤 매물을 찾고 계신가요?"
(컨텍스트 전달 실패 → 사용자 재입력 필요)
성공 기준: B봇 첫 응답에 A봇 수집 조건 3개 이상 반영 + 즉시 검색 실행
최종 의사결정 매트릭스
| 평가 항목 | 가중치 | GROQ (현재) | GPT OFF | GPT 웹서치 ON |
|---|---|---|---|---|
| 응답 속도 | 25% | 3 | 4 | 2 |
| 정보 최신성 | 20% | 2 | 2 | 5 |
| Hallucination 안정성 | 20% | 3 | 4 | 3 |
| 비용 효율 | 15% | 4 | 4 | 2 |
| 기능 완성도 | 10% | 3 | 5 | 5 |
| 어댑터 변경 최소화 | 10% | 5 | 3 | 3 |
| 가중 합산 | 100% | 3.2 | 3.7 ★ | 3.2 |
권장: 1단계 GPT 웹서치 OFF 배포 → 안정화 후 2단계에서 라이프스타일 봇에만 선택적 웹서치 ON 적용 (시세·뉴스 쿼리 감지 시 자동 활성화)
Architecture
5 아키텍처 변경 전체 목록
기존 구조에서 추가/변경/삭제되는 모듈 전체
Roadmap
6 구현 로드맵
3 Phase, 예상 3~4주 완성
GROQ → GPT-4o 어댑터 교체 + 기존 테스트 통과
adapters/llm/openai/신규 어댑터 구현 (Groq 인터페이스 호환)- GPT 웹서치 OFF 모드 기본 설정
- 기존 unit 테스트 전체 통과 확인
- integration 시나리오 응답 품질 비교
라이프스타일 에이전트 + 핸드오프 구현
lifestyle_agent.py신규 구현 (A봇)handoff_service.py— context_bundle 추출 로직- BE API 라우트 분리 (
/chat/lifestyle,/chat/search) - FE "매물 확인하기" 버튼 + 전환 애니메이션
- 핸드오프 통합 테스트 시나리오 추가
전체 시나리오 테스트 + 웹서치 A/B 실험
- 웹서치 ON/OFF 전체 시나리오 실행 + 결과 수집
- LLM judge 평가 (응답 품질 점수)
- 응답 시간 P50/P95 측정
- Alpha 배포 후 실사용자 피드백 수집
References
7 2026 글로벌 레퍼런스
프롭테크 AI 챗봇 최신 사례 및 연구
AI 자연어 검색 + ChatGPT Plugin
2023년 자연어 검색 도입, 2025 ChatGPT plugin 출시. 2026 "AI mode" 전면 확산 예정. 70% 미국 바이어/셀러 앱 사용.
이중 챗봇 핸드오프 실사례
Compass 매물을 Redfin에서 노출하되 바이어 문의는 Compass 에이전트로 직접 라우팅 — 실제 비즈니스 적용 핸드오프 아키텍처.
라이프스타일 발견 챗봇 효과
동일 트래픽 대비 qualified lead 3~5배, lead 자격 심사 시간 40~60% 단축, lead→고객 전환율 15~25% 상승.
Ask Redfin + AI Listing Descriptions
"Ask Redfin" 자연어 챗봇 + AI 매물 설명 자동 생성. 검색 → 탐색 → 문의의 퍼널 완성.
핸드오프 계약(Handoff Contract)
AI가 수집한 컨텍스트를 structured bundle로 전달 — "제로 중복 원칙". 신뢰도 50% 미만 2회 연속 시 인간 에이전트 라우팅.
부동산 도메인 웹서치 트레이드오프
내부 MLS DB가 더 정확한 케이스 多. 웹서치는 시세·뉴스·개발 호재 등 최신성 필요 쿼리에 선택적 적용 권장.
어디살지 × 열무 v2.0 기획서 — 2026.05.30 · 철희님 검토용