Một tác nhân AI tự hành đã xây dựng một ngăn xếp Retrieval-Augmented Generation (RAG) hoàn chỉnh trong khoảng hai mươi phút và mở một bản thảo pull request mà không cần đến một dòng mã nào từ con người.
Tại sao "vòng lặp" lại quan trọng
Việc tạo ra một ngăn xếp RAG thường đồng nghĩa với việc kết nối một công cụ tìm kiếm, một mô hình embedding, một mô hình ngôn ngữ và các đoạn mã kết nối (glue code). Các nhà phát triển thường lãng phí hàng giờ để tinh chỉnh Helm charts, sửa các lỗi xác thực và truy tìm các tên mô hình không khớp. Trong thử nghiệm này, tác nhân tự hành đã tuân theo một vòng lặp gồm năm bước, buộc phải có sự đồng thuận giữa con người và tác nhân trước khi bất kỳ dòng mã nào được viết ra.
| Giai đoạn | Chuyện gì xảy ra |
|---|---|
| Đề xuất | Tác nhân đọc câu lệnh (prompt) và phác thảo một kế hoạch cụ thể, nhưng chưa tạo mã. |
| Đồng thuận | Người dùng xem xét kế hoạch, phê duyệt hoặc yêu cầu thay đổi. |
| Triển khai | Tác nhân xây dựng tính năng trên một nhánh (branch) mới. |
| Kiểm soát bản thảo | Tác nhân tự chạy bộ kiểm tra lỗi (linting) và bộ thử nghiệm (test suite) của chính mình, sửa các lỗi phát hiện được. |
| Bản thảo PR | Mã được đẩy lên và một pull request được mở để con người xem xét lần cuối. |
Hầu hết các công cụ lập trình hỗ trợ bởi AI đều nhảy thẳng vào bước triển khai, thường tạo ra mã không đúng mục tiêu. Bằng cách chèn thêm một bước đồng thuận rõ ràng, vòng lặp này ngăn chặn việc thực thi mù quáng và cho phép người dùng điều hướng dự án trước khi bất kỳ commit nào được thực hiện.
Ngăn xếp đã được hình thành
Trong vòng hai mươi phút, tác nhân đã lắp ráp một đường ống (pipeline) RAG sẵn sàng cho môi trường production:
- OpenSearch 3.7 được cấu hình để tìm kiếm hỗn hợp (hybrid search - vector + keyword).
- Local Ollama LLM đóng vai trò là công cụ tạo (generative engine) cho các phản hồi được tăng cường truy xuất.
- FastMCP server cung cấp bốn công cụ tùy chỉnh cho mô hình ngôn ngữ.
- Các tập lệnh Skaffold và Helm giúp tự động hóa việc xây dựng container, các bản khai báo (manifests) Kubernetes và triển khai dịch vụ.
Đường ống được nạp sẵn ba mươi bài báo, cho phép thử nghiệm ngay lập tức quy trình truy xuất và tạo nội dung từ đầu đến cuối (end-to-end). Một nhà phát triển thông thường sẽ mất cả ngày để cấu hình từng thành phần; tốc độ này thật đáng kinh ngạc.
Những lỗi suýt chút nữa đã làm hỏng mọi thứ
Sự tự tin của tác nhân đã bị thử thách bởi năm lỗi riêng biệt mà thông thường sẽ làm đình trệ một quy trình triển khai do con người thực hiện:
- Lỗi thông tin xác thực OpenSearch – tác nhân đã cung cấp sai mã khóa bí mật (secret key), khiến cụm (cluster) từ chối các kết nối.
- Lỗi đánh máy Regex trong URL – một ký tự đặt sai chỗ đã biến một endpoint hợp lệ thành một liên kết chết, làm hỏng bộ tải dữ liệu (data loader).
- Tên mô hình không khớp – bộ kết nối mong đợi một định danh mô hình Ollama khác, dẫn đến lỗi "model not found".
- Giới hạn bộ nhớ JVM – việc lập chỉ mục hàng loạt (bulk indexing) đã làm cạn kiệt Java heap, gây ra các lỗi sập do hết bộ nhớ (out-of-memory).
- Xóa nhầm các phân đoạn mô hình (model chunks) – một tập lệnh dọn dẹp đã nhận diện sai các tệp thiết yếu là tệp trùng lặp và xóa chúng, đe dọa toàn bộ đường ống.
Khi tác nhân bị kẹt, “loop-police” đã can thiệp
Một công cụ giám sát đi kèm có tên là loop-police theo dõi tình trạng của vòng lặp. Khi tác nhân rơi vào một chu kỳ không thể kết thúc trong lỗi xóa dữ liệu, loop-police đã phát hiện sự đình trệ, hủy bỏ nhánh hiện tại và buộc phải chuyển hướng quay lại giai đoạn Đồng thuận (Agreement). Sau đó, tác nhân đã thừa nhận sai sót, xóa trạng thái bị lỗi và xây dựng lại đường ống từ đầu. Chu kỳ tự chữa lành đã hoàn tất mà không cần sự can thiệp của con người ngoài việc phê duyệt kế hoạch ban đầu.
Điều này có ý nghĩa gì đối với các nhà phát triển
- Tốc độ mà không đánh đổi quyền kiểm soát. Vòng lặp cho phép các kỹ sư chỉ định ý định, sau đó bàn giao việc thực thi cho một hệ thống tự hành nhưng vẫn tuân theo một bản thiết kế đã được con người phê duyệt.
- Lưới an toàn tích hợp sẵn. Việc tự động linting, kiểm thử và một công cụ giám sát có thể ngắt một vòng lặp mất kiểm soát giúp giảm thiểu rủi ro của các lỗi âm thầm.
- Rào cản gia nhập thấp hơn. Các nhóm thiếu chuyên môn sâu về Helm, Kubernetes hoặc tìm kiếm vector có thể khởi tạo một ngăn xếp hoạt động được bằng cách mô tả những gì họ cần bằng ngôn ngữ tự nhiên.
Cách tiếp cận này không phải là giải pháp vạn năng. Giai đoạn Đồng thuận vẫn đòi hỏi một người xem xét có kiến thức để phát hiện các kỳ vọng không thực tế hoặc các mối lo ngại về bảo mật. Vòng lặp không thay thế chuyên môn trong lĩnh vực; nó chỉ đóng gói các công việc hạ tầng (plumbing work) lặp đi lặp lại thành một mô hình có thể lặp lại được.
