PROJECT SPECIFICATION: MEDAGEN AI-AGENT ARCHITECTURE (UPDATED CV LOGIC)
Dưới đây là TỔNG QUAN TOÀN BỘ Ý TƯỞNG AI-AGENT CỦA DỰ ÁN MEDAGEN — phiên bản cập nhật logic CV Router, đầy đủ, hệ thống, bao phủ toàn bộ thiết kế Agent, tools, workflow và vai trò trong kiến trúc tổng thể.
🧠 TỔNG QUAN IDEA VỀ AI-AGENT — MEDAGEN
⭐ 1. AI-Agent là “Bộ Não Điều Phối” của toàn hệ thống
Medagen không phải là một mô hình đơn lẻ. Nó là hệ sinh thái nhiều năng lực (tools):
- Computer Vision Tools: Hệ thống đa tầng (Router xác định vùng → Model chuyên sâu).
- Triage Rules Engine: Engine luật lâm sàng.
- RAG Guideline Search: Tra cứu hướng dẫn Bộ Y Tế/WHO.
- Search Database + Vector (Supabase): Truy xuất dữ liệu cấu trúc.
- Location Search: Google Maps.
→ AI-Agent là trung tâm điều phối, tiếp nhận input từ người dùng và quyết định tool nào sẽ làm việc gì.
⭐ 2. Agent thực hiện “Clinical Reasoning” dạng ReAct
Agent dùng ReAct Framework:
Thought → Action (Tool) → Observation → … → Final Answer
Không đoán mò. Agent sẽ:
- Phân tích input.
- Tự quyết định cần gọi tool nào (CV Router? Rules? RAG?).
- Xử lý kết quả trả về.
- Tạo ra suy luận lâm sàng an toàn:
- Triệu chứng chính & Red flags.
- Mô tả nguy cơ & Mức độ Triage.
⭐ 3. Agent chỉ làm TRIAGE — KHÔNG CHẨN ĐOÁN
Guardrails quan trọng:
- Không chẩn đoán bệnh cụ thể.
- Không kê đơn, không điều trị.
- Không đưa kết luận y khoa vượt ngưỡng an toàn.
Agent chỉ:
- Phân tích triệu chứng.
- Gợi ý mức độ nguy cấp (Emergency/Urgent/Routine/Self-care).
- Tóm tắt red flags.
- Đưa ra hướng dẫn dựa trên guideline.
KIẾN TRÚC CV 3 TẦNG (3-LAYER FILTER)
Hệ thống sử dụng mô hình phễu lọc 3 bước để đảm bảo tính chính xác và tối ưu hóa tài nguyên xử lý.
TỔNG QUAN CÁC TẦNG
🔹 Tầng 1: ĐỊNH VỊ (Body Region)
Đây là tầng sơ loại để xác định vị trí giải phẫu trên cơ thể.
- Input: Ảnh gốc (Raw Image).
- Nhiệm vụ: Phân loại vùng cơ thể (Body Part Detection).
- Output: Label vùng (Ví dụ:
Thorax,Face,Abdomen,Bone structure...).
🔹 Tầng 2: ĐIỀU HƯỚNG (Specialty Router)
Tầng trung gian quyết định chuyên khoa nào sẽ chịu trách nhiệm xử lý.
- Input: Label Vị trí (từ Tầng 1) + Triệu chứng lâm sàng (Text) từ người dùng.
- Nhiệm vụ: Mapping sang chuyên khoa y tế để chọn model đích.
- Output: ID Chuyên khoa (Ví dụ:
Oncology,Dermatology,Orthopedics...).
🔹 Tầng 3: CHẨN ĐOÁN (Specific Pathology)
Tầng phân tích chuyên sâu sử dụng các model State-of-the-art cho từng loại bệnh.
- Input: Vùng quan tâm (ROI) đã được crop hoặc focus.
- Nhiệm vụ: Xác định tên bệnh lý cụ thể và mức độ nghiêm trọng.
- Output: Tên bệnh + Confidence Score + Grade/Stage (Cấp độ).
VÍ DỤ THỰC TẾ (USE CASES)
📌 Ví dụ 1: Chẩn đoán Phổi (Case Nặng)
Luồng đi: Phổi $\rightarrow$ Ung bướu $\rightarrow$ K Phổi Giai đoạn cuối
Tầng 1 (Region):
- Input: Ảnh X-quang hoặc CT scan lồng ngực.
- Output:
Thorax / Lung(Lồng ngực/Phổi).
Tầng 2 (Specialty):
- Context: Region là
Lung+ Text user cung cấp: "Ho ra máu, sụt cân nhanh trong 1 tháng". - Logic: Triệu chứng cảnh báo đỏ (Red flags) $\rightarrow$ Ưu tiên Ung bướu hơn là Hô hấp thông thường.
- Output:
Oncology(Ung bướu).
- Context: Region là
Tầng 3 (Pathology):
- Model Selection: Gọi model
Onco_Lung_CT_Net(Chuyên phát hiện khối u). - Action: Quét khối u, đo kích thước và độ xâm lấn.
- Output: Malignant Tumor (Khối u ác tính) - Suggestive of Stage IV.
- Model Selection: Gọi model
📌 Ví dụ 2: Chẩn đoán Mặt (Case Phổ thông)
Luồng đi: Mặt $\rightarrow$ Da liễu $\rightarrow$ Mụn trứng cá
Tầng 1 (Region):
- Input: Ảnh chụp selfie cận cảnh khuôn mặt bằng điện thoại.
- Output:
Face(Mặt).
Tầng 2 (Specialty):
- Context: Region là
Face+ Text user cung cấp: "Nổi nốt đỏ, sờ thấy đau nhẹ". - Logic: Các triệu chứng và hình ảnh khớp với bệnh lý bề mặt da.
- Output:
Dermatology(Da liễu).
- Context: Region là
Tầng 3 (Pathology):
- Model Selection: Gọi model
Derm_Acne_Classifier(Chuyên phân loại mụn). - Action: Phân tích tổn thương da (lesion analysis).
- Output: Acne Vulgaris (Mụn trứng cá) - Grade: Moderate (Mức độ trung bình).
- Model Selection: Gọi model
🧠 I. USECASE 1 — ĐỦ THÔNG TIN
1.1. Chỉ có TEXT nhưng RÕ RÀNG
- Ví dụ: “Em bị đỏ mắt, chảy nước mắt, hơi mờ nhẹ 2 ngày nay.”
- Flow:
- Agent đọc text → xác định chuyên khoa: Ophthalmology (Mắt).
- Match bệnh cụ thể (Viêm kết mạc, Dry eye...) → Dùng CSDL (Database Search).
- Nếu bệnh rõ → KHÔNG cần RAG (ưu tiên CSDL vì cấu trúc và chính xác hơn).
- Gọi Triage Rules → Phân loại mức độ khẩn cấp.
- Nếu cần → Gọi Maps.
1.2. Có cả TEXT và IMAGE (Flow cập nhật CV Router)
- Ví dụ: “Da chân em nổi mẩn đỏ, ngứa.” + [Ảnh chụp chân]
- Flow:
- Phân tích Text: Agent nhận diện sơ bộ là "Da liễu" ở vùng "Chân".
- Phân tích Ảnh (Bước 1 - Router):
- Agent gọi
CV_Body_Classifier. - Kết quả xác thực: "Đây là vùng Chân (Leg)" + "Bề mặt da (Skin surface)".
- Agent gọi
- Chọn Model (Bước 2):
- Khớp Text (Da) + Ảnh (Skin surface) → Quyết định dùng
tool_derm_cv.
- Khớp Text (Da) + Ảnh (Skin surface) → Quyết định dùng
- Chạy Model (Bước 3):
tool_derm_cvphân tích tổn thương → Trả về: "Viêm da cơ địa (80%), Nấm da (15%)..."
- Tổng hợp:
- Dùng kết quả CV (probability > 0.6) để query CSDL.
- Nếu kết quả thấp → Query RAG vùng Da liễu.
- Chạy Triage Rules & Maps.
🧠 II. USECASE 2 — KHÔNG ĐỦ THÔNG TIN
2.1. Có TEXT nhưng MƠ HỒ
- Flow: Agent hỏi lại (Clarification). Nếu user bổ sung → quay lại flow đủ thông tin. Nếu không → Dùng RAG hẹp hoặc từ chối.
2.2. Có IMAGE nhưng KHÔNG CÓ TEXT (Flow cập nhật CV Router)
- Ví dụ: User gửi 1 ảnh, không nói gì.
- Flow:
- Agent yêu cầu text: "Bạn có thể mô tả thêm không?"
- Nếu User im lặng/không biết, Agent tự kích hoạt CV Pipeline:
- Bước 1 (Router):
- Gọi
CV_Body_Classifier. - Giả sử kết quả: "Vùng mắt (Eye)" hoặc "Cận cảnh giác mạc".
- Gọi
- Bước 2 (Mapping):
- Mapping "Eye" → Chuyên khoa Mắt (Ophthalmology).
- Quyết định gọi
tool_eye_cv.
- Bước 3 (Inference):
tool_eye_cvtrả về: "Xuất huyết dưới kết mạc".
- Final: Agent dùng kết quả đó để query CSDL/RAG và trả lời user (kèm cảnh báo đây là phỏng đoán dựa trên ảnh).
🧠 III. USECASE 3 — OUT OF SCOPE
Các trường hợp Agent PHẢI TỪ CHỐI:
- Yêu cầu kê đơn: "Cho tôi thuốc..." → Từ chối.
- Thủ tục hành chính: "BHYT, giá tiền..." → Từ chối.
- Expert-to-Expert: Câu hỏi so sánh chuyên sâu bác sĩ → Từ chối.
- Hình ảnh không liên quan (CV Router phát hiện):
- Nếu
CV_Body_Classifiertrả về: "Xe hơi", "Con mèo", "Phong cảnh". - Agent: "Hình ảnh không liên quan đến y tế. Vui lòng gửi ảnh tổn thương hoặc mô tả triệu chứng."
- Nếu
🧠 IV. QUY TẮC CHỌN TOOL (Updated)
- CSDL (Database): Ưu tiên số 1. Dùng khi bệnh/triệu chứng đã rõ ràng, có cấu trúc.
- RAG (Vector Search): Ưu tiên số 2. Dùng khi thông tin mơ hồ, cần tra cứu guideline dài, hoặc tìm kiếm ngữ nghĩa (semantic search).
- CV (Computer Vision): Dùng khi có ảnh.
- Quy tắc mới: BẮT BUỘC phải đi qua bước Xác định Vùng/Chuyên khoa (Router) trước khi gọi model bệnh học. Không bao giờ gọi thẳng model bệnh nếu chưa biết ảnh chụp cái gì.
🧠 V. KIẾN TRÚC AGENT MEDAGEN (MASTER FLOW)
User Input
│
├── [Text Only]
│ ├── Clear intent ──> CSDL ──> Triage ──> Maps
│ └── Unclear ──> Ask User ──> (If still unclear) ──> RAG (Broad)
│
├── [Image Included]
│ ├── 1. CV Router (Body Part/Domain Check)
│ │ ├── Non-medical ──> Reject
│ │ ├── Skin ──> call derm_cv
│ │ ├── Eye ──> call eye_cv
│ │ ├── Wound ──> call wound_cv
│ │ └── Bone/Xray ──> call ortho_cv (future)
│ │
│ ├── 2. Get Disease Probability
│ └── 3. Combine with Text ──> CSDL/RAG ──> Triage ──> Maps
│
└── [Out of Scope] ──> Reject (Safety Guardrails)
🧠 VI. TÓM TẮT HỆ THỐNG
AI-Agent Medagen là hệ thống Triage y tế thông minh, vận hành dựa trên cơ chế phối hợp đa công cụ (Multi-tool orchestration) với logic xử lý hình ảnh 2 lớp (Two-step CV):
Phân loại (Router Step):
- Agent nhìn ảnh → Xác định Vùng cơ thể (Tay, Chân, Mắt...) hoặc Miền dữ liệu (Da liễu, Nhãn khoa...).
- Mục đích: Điều hướng chính xác, tránh dùng sai model (ví dụ: không dùng model da liễu để phân tích ảnh mắt).
Phân tích (Inference Step):
- Dựa vào kết quả Router, Agent gọi đúng Model chuyên sâu (
derm_cv,eye_cv,wound_cv) để trích xuất đặc điểm bệnh lý và độ tin cậy (probability).
- Dựa vào kết quả Router, Agent gọi đúng Model chuyên sâu (
Tổng hợp & Ra quyết định (Reasoning Step):
- Agent kết hợp: Triệu chứng (Text) + Kết quả ảnh (CV) + Kiến thức y khoa (CSDL/RAG).
- Chạy qua Triage Rules để đưa ra mức độ khẩn cấp và lời khuyên an toàn (Emergency / Urgent / Routine / Self-care).