Tổng hợp kiến thức: AI Agents from Scratch - Phần Foundation
Tài liệu này tổng hợp các khái niệm cốt lõi đã học được từ 4 bài học đầu tiên trong series "AI Agents from Scratch".
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 (LLM, Parser, Tool).
- Hợp đồng (Contract): Mọi Runnable đều phải triển khai phương thức
_call(input, config). - 3 Phương thức thực thi:
invoke(input): Chạy đơn lẻ (1 input -> 1 output).stream(input): Trả về kết quả dạng dòng (chunks) theo thời gian thực.batch([inputs]): Xử lý song song một danh sách input để tăng hiệu suất.
- Lợi ích: Cho phép nối các thành phần khác nhau thành một chuỗi (chain) dễ dàng bằng
.pipe().
2. Messages (Tin nhắn & Cấu trúc dữ liệu)
Thay vì sử dụng chuỗi văn bản thuần túy, hội thoại được cấu trúc hóa thành các đối tượng để dễ quản lý và phân loại.
- Các loại tin nhắn:
SystemMessage: Chỉ thị hệ thống, thiết lập hành vi/nhân cách cho AI.HumanMessage: Tin nhắn từ người dùng.AIMessage: Phản hồi từ AI.ToolMessage: Kết quả trả về từ việc gọi công cụ (function calling).
- Quản lý hội thoại: Cần có cơ chế (như
ConversationHistory) để lưu trữ, giới hạn độ dài (sliding window) và lọc tin nhắn theo loại.
3. LLM Wrapper (Bọc mô hình ngôn ngữ)
LLM Wrapper biến đổi một thư viện LLM thô (như node-llama-cpp) thành một Runnable.
- Vai trò: Đóng vai trò như một Adapter (bộ chuyển đổi).
- Chức năng:
- Chuyển đổi input (chuỗi hoặc danh sách Message) thành format mà model hiểu được.
- Xử lý việc gọi model (generate/stream).
- Trả về kết quả dưới dạng
AIMessage.
- Kết quả: Giúp thay thế model dễ dàng mà không ảnh hưởng đến phần còn lại của hệ thống.
4. Context & Configuration (Ngữ cảnh & Cấu hình)
RunnableConfig là cơ chế truyền thông tin xuyên suốt chuỗi xử lý mà không làm rối mã nguồn.
- Vấn đề giải quyết: Tránh việc phải truyền tham số cấu hình (như
userId,debug flag) qua từng hàm thủ công. - Thành phần của Config:
callbacks: Hệ thống hook để theo dõi (log, metrics) tại các điểm bắt đầu/kết thúc/lỗi.metadata: Dữ liệu ngữ cảnh (User ID, Session ID).configurable: Các tham số thay đổi lúc chạy (Runtime overrides), ví dụ: thay đổitemperaturecủa LLM cho từng request cụ thể.
- Ứng dụng: Rất hữu ích cho A/B testing, logging tập trung và quản lý đa người dùng.
Tài liệu được tạo tự động bởi Antigravity IDE sau quá trình tự học và phân tích code.