Vì sao framework AI agent lại phức tạp? Cần một framework mang tính cách mạng như Rails
(aisparkup.com)Các vấn đề chính của framework AI agent hiện nay
- Cạn kiệt context window
- Khi tác vụ phức tạp, mô hình quên mục tiêu ban đầu
- Xuất hiện hallucination, vòng lặp vô hạn
- Framework chỉ đóng vai trò wrapper mỏng
- Đẩy việc chọn mô hình, nhà cung cấp embedding, cấu trúc công cụ... cho lập trình viên
- Vi phạm nguyên tắc "đừng bắt tôi phải suy nghĩ"
- Sự hỗn loạn do quá nhiều công cụ
- Lãng phí context vì phải đánh giá các lựa chọn không cần thiết
Giải pháp được đề xuất: kiến trúc lấy sub-agent làm trung tâm
- Sử dụng sub-agent như công dân hạng nhất
- Ủy quyền tự nhiên như gọi hàm
- Có context độc lập → giúp agent cha giữ được sự tập trung
- Ví dụ: sub-agent tìm kiếm codebase → chỉ trả về đường dẫn file liên quan
- Hiệu quả
- Agent đơn lẻ: tiêu thụ 90% context
- Dùng sub-agent: context của agent cha chỉ dùng 25%
Áp dụng bài học từ Rails: Convention over Configuration
- Ưu tiên quy ước mặc định
- Tự động chọn mô hình (dựa trên độ phức tạp của tác vụ)
- Ngân sách context được kế thừa giữa cha và con
- Tự động tạo checkpoint cho các tác vụ rủi ro
- Giới thiệu archetype
- Searcher: chỉ có công cụ tìm kiếm
- Writer: chỉ có công cụ viết
- Researcher: chỉ có quyền truy cập web → ngăn tình trạng thừa công cụ
Các nguyên tắc thiết kế thực tiễn
- Thiết kế lấy tác vụ làm trung tâm
- Thay vì "nên dùng mô hình nào?", hãy ưu tiên tác vụ thực tế (ví dụ: kiểm tra biểu mẫu đăng ký)
- Tính tạm thời của context sub-agent
- Chỉ trả lại cho agent cha bản tóm tắt của công việc trung gian
- Phân biệt công cụ và sub-agent
- Công cụ: không có trạng thái (định dạng ngày tháng, parse JSON)
- Sub-agent: cần lặp và phán đoán (tìm kiếm, phân tích)
Lựa chọn công nghệ: TypeScript
- Tăng cường type safety (
Branded types,discriminated unions) - Tương thích với hệ sinh thái công cụ phát triển (VS Code, v.v.)
- Có thể biên dịch thành tệp thực thi độc lập bằng Bun
Những bài toán chưa được giải quyết
- Chia sẻ context giữa các sub-agent (knowledge base của dự án)
- Cộng tác giữa các agent ngang hàng (truyền message)
- Đánh giá agent (capture/replay kịch bản, tiêu chí thành công, tính nhất quán, mức độ ưu tiên)
Kết luận
- Framework không nên chỉ thêm độ phức tạp mà phải cung cấp "độ phức tạp đúng đắn"
- Một framework mang tính cách mạng như Rails có thể tạo ra bước đột phá cho phát triển agent
- Tối thiểu hóa phần việc plumbing → tập trung vào vấn đề cốt lõi
3 bình luận
Framework tác nhân... nghe tên thì hoành tráng nhưng rốt cuộc cũng chỉ là công cụ để giao cho
llm. Chỉ là cái vỏ rỗng.Rails tiện vì nó ép buộc convention và làm nhiều "phép thuật" bên dưới lớp trừu tượng, dù có đánh đổi là hiệu năng giảm, nhưng cái này không khiến tiền đội lên ngay lập tức.
Ngược lại, nếu framework tự ý chọn model thì ai sẽ chịu trách nhiệm khi mức tiêu thụ token bùng nổ đây...?
Đến năm 2026 liệu sẽ có một công cụ mới nào đó xuất hiện không? Có lẽ sẽ khác với Rails, nhưng được trừu tượng hóa hơn một chút... Tôi rất mong chờ.