Prompt Engineering là linh hồn của hệ thống AI. Để giúp Admin (Product Owner) dễ dàng tuning prompt theo từng chiến dịch, hệ thống tách bạch toàn bộ Prompt ra khỏi code thông qua module `prompt_utils.py`.

Các file Prompt được quản lý dưới dạng `.txt` tại thư mục `backend/agent/` và được cung cấp API để **Hot-reload** (nạp lại vào bộ nhớ) mà không cần restart server Uvicorn.

**Các thành phần chính của hệ thống Prompt & LLM:**
1. **Local File System**: Nguồn chân lý (Single Source of Truth) lưu trữ `system_prompt.txt` và `tool_prompts/*.txt`.
2. **In-memory Cache (`prompt_utils.py`)**: Lưu trữ nội dung prompt trong RAM (biến `_system_prompt_cache` và `_tool_prompt_cache`) để giảm thiểu I/O.
3. **MD5 Chain Caching (`graph.py`)**: Hash nội dung prompt. Chuỗi LangChain (Chain) chỉ được build lại nếu nội dung prompt thực sự thay đổi, tối ưu hiệu năng.
4. **LLM Factory (`llm_factory.py`)**: Singleton quản lý caching các instance của LLM (OpenAI, Gemini, Groq), tự động chuyển đổi JSON mode và handle fallback (ví dụ: dùng Gemini CLI nếu thiếu API Key).