# 1. Tổng quan Split Query

Phần lõi kỹ thuật của Lead Agent nằm trong `ProductSearchEngine`. Khi Classifier quyết định gọi Tool, Engine áp dụng 2 cơ chế chống Zero Results:

## Vấn đề: Zero Results

Trong ngành Retail, câu "Dạ em hết hàng" là **câu chết**. Mất khách vĩnh viễn.

Nguyên nhân phổ biến nhất: ném nguyên câu hỏi dài vào Database → query quá hẹp → 0 kết quả.

**Ví dụ:** Khách hỏi "Áo khoác nam mùa đông, form rộng, tầm 5 triệu để đi Sapa"
- Nếu search nguyên văn: `WHERE description LIKE '%áo khoác nam mùa đông form rộng 5 triệu Sapa%'` → **0 results**
- Lý do: Không có sản phẩm nào chứa tất cả từ khóa cùng lúc

## Giải pháp: 2 cơ chế kết hợp

| Cơ chế | Mục đích |
|---|---|
| **Split Query** (Tách truy vấn) | Chia câu hỏi thành 2 lane song song: Literal + Inferred |
| **Cascading Search** (Rớt mạng 7 tầng) | Nới lỏng bộ lọc dần dần nếu tầng trước không đủ kết quả |

Kết hợp 2 cơ chế này đảm bảo **luôn có sản phẩm trên tay** để tư vấn.

## Khi nào Split Query được kích hoạt?

Split Query chỉ chạy khi Classifier trả `tool_name = "lead_search_tool"`. Nếu Early Exit → không qua Engine.

File tham chiếu: `backend/agent/lead_stage_agent/product_search_engine.py`
