| # Tổng hợp kiến thức: AI Agents from Scratch | |
| Tài liệu này tổng hợp toàn bộ các khái niệm cốt lõi và mẫu thiết kế đã học được từ repository "AI Agents from Scratch". | |
| ## PHẦN 1: FOUNDATION (NỀN TẢNG) | |
| ### 1. Runnable (Đơn vị thực thi) | |
| **Runnable** là "viên gạch LEGO" của framework, chuẩn hóa giao diện cho mọi thành phần. | |
| * **Hợp đồng (Contract):** Triển khai phương thức `_call(input, config)`. | |
| * **3 Chế độ:** `invoke` (đơn), `stream` (dòng), `batch` (song song). | |
| * **Composition:** Dễ dàng nối chuỗi bằng `.pipe()`. | |
| ### 2. Messages (Cấu trúc hội thoại) | |
| Sử dụng các lớp đối tượng thay vì chuỗi trần. | |
| * **SystemMessage**: Chỉ thị, nhân cách. | |
| * **HumanMessage**: Input người dùng. | |
| * **AIMessage**: Output mô hình. | |
| * **ToolMessage**: Kết quả gọi hàm. | |
| ### 3. LLM Wrapper | |
| Đóng gói model thô (node-llama-cpp) thành một **Runnable** để đồng bộ hóa giao diện và dễ dàng thay thế. | |
| ### 4. Context & Configuration | |
| Truyền `RunnableConfig` xuyên suốt pipeline. | |
| * `callbacks`: Logging, metrics, side-effects. | |
| * `metadata`: Context người dùng/phiên. | |
| * `configurable`: Runtime overrides (ví dụ: thay đổi temperature động). | |
| --- | |
| ## PHẦN 2: COMPOSITION (KẾT HỢP) | |
| ### 1. Prompts | |
| Quản lý đầu vào LLM bằng Templates. | |
| * **PromptTemplate**: Tách logic khỏi văn bản, hỗ trợ biến số. | |
| * **ChatPromptTemplate**: Cấu trúc hóa hội thoại đa lượt (Multi-turn conversation). | |
| ### 2. Output Parsers | |
| Chuyển đổi văn bản thô từ LLM thành dữ liệu có cấu trúc. | |
| * **StructuredOutputParser**: Định nghĩa Schema (JSON), tự động sinh hướng dẫn định dạng (`format_instructions`) và validate kết quả. Giải quyết vấn đề output không nhất quán của LLM. | |
| --- | |
| ## PHẦN 3: PROJECT PATTERNS (MẪU THIẾT KẾ THỰC TẾ) | |
| Từ dự án **Smart Email Classifier**, rút ra mẫu kiến trúc tham khảo cho các tác vụ phân loại/xử lý văn bản: | |
| 1. **Separation of Concerns (Phân tách mối quan tâm):** | |
| * `ParserRunnable`: Chỉ lo việc làm sạch và chuẩn hóa dữ liệu đầu vào. | |
| * `ClassifierRunnable`: Chỉ lo việc gọi LLM và xử lý logic phân loại. | |
| 2. **Pipeline:** Kết nối `Parser -> Classifier`. | |
| 3. **Side Effects via Callbacks:** Sử dụng Callback để ghi log lịch sử và tính toán thống kê (Statistics), giữ cho code chính sạch sẽ. | |
| 4. **Strict System Prompts:** Sử dụng System Prompt chi tiết để định nghĩa danh mục và ép kiểu JSON output. | |
| --- | |
| *Tài liệu được tạo tự động bởi Antigravity IDE.* | |