The Outer Agent Loop: Xây dựng các hệ thống AI vào năm 2026
Kỹ thuật phần mềm đang chuyển dịch.
Những kỹ sư năng suất nhất không còn nhập prompt cho mô hình một cách thủ công nữa. Họ thiết kế các hệ thống tự động thực hiện việc đó thay họ. Họ xây dựng các khung điều khiển (harnesses). Họ viết các vòng lặp.
Để xây dựng AI cho môi trường thực tế (production), bạn phải hiểu sự khác biệt giữa hai loại vòng lặp:
The Inner Loop Vòng lặp này nằm trong ngữ cảnh của mô hình. LLM gọi một công cụ, nhận kết quả và lặp lại cho đến khi nó nghĩ rằng đã hoàn thành. Nó mạnh mẽ nhưng bị giới hạn bởi cửa sổ ngữ cảnh (context windows) và sự suy giảm sự chú ý (attention drift).
The Outer Loop Đây chính là khung điều khiển. Nó nằm ngoài ngữ cảnh của mô hình. Đó là mã nguồn bạn viết để bao bọc lấy LLM. Nó quyết định xem công việc đã đạt yêu cầu chưa, có cần thử lại không, hay liệu con người có cần can thiệp hay không.
Một vòng lặp bên ngoài đạt chuẩn production cần sáu thành phần sau:
- Task Queues: Sử dụng Redis hoặc SQS để quản lý công việc. Điều này đảm bảo các tác vụ vẫn tồn tại sau khi hệ thống gặp sự cố và cho phép giới hạn tốc độ (rate limiting).
- Context Builders: Những thành phần này chuẩn bị system prompt và các ràng buộc. Ngữ cảnh kém sẽ dẫn đến các vòng lặp kém hiệu quả.
- Session Management: Thành phần này theo dõi lịch sử hội thoại để agent không bị mất dấu tiến trình.
- Completion Signals: Bạn cần một cách để biết khi nào nên dừng lại. Hãy sử dụng các bài kiểm tra cơ học, phân tích cú pháp JSON, hoặc sử dụng LLM-as-judge.
- Budget Enforcers: Thiết lập các giới hạn cứng về số lần lặp và token để ngăn chặn các vòng lặp vô tận gây lãng phí tiền bạc.
- Committers: Đây là ranh giới thực hiện việc ghi kết quả cuối cùng vào một tệp hoặc một pull request.
Hãy sử dụng LLM-as-judge cho các tác vụ mà các bài kiểm tra không thể phát hiện được. Hãy dùng một mô hình nhanh và rẻ để đánh giá đầu ra của mô hình suy luận đắt đỏ của bạn. Đây chính là cách phân bổ tài nguyên tính toán hiệu quả.
Hãy cẩn thận với bẫy nợ kiến trúc (architecture debt trap).
Các LLM thường cố gắng sửa lỗi bằng cách thêm các đoạn mã phòng vệ như các khối try/except. Nếu một vòng lặp chạy nhiều lần, nó có thể làm mã nguồn của bạn tràn ngập các phương án dự phòng (fallbacks) lộn xộn. Thay vào đó, hãy hướng dẫn agent của bạn sửa lỗi từ nguyên nhân gốc rễ và duy trì các bất biến của hệ thống (system invariants).
Mục tiêu không phải là sự tự chủ tối đa. Mục tiêu là xây dựng các vòng lặp mà con người vẫn có thể duy trì và hiểu được.
Hãy xây dựng các vòng lặp của bạn một cách có chủ đích.
Optional learning community: https://t.me/GyaanSetuAi
