№ 58
AI Agent tự động tối ưu prompt cho việc sinh Python Unit Test. Hệ thống tự động đánh giá, cải thiện prompt dựa trên coverage và kết quả test, giúp developer tạo test tốt hơn, nhanh hơn và có thể tái sử dụng.
Việc tạo unit test cho các project Python lớn thường đòi hỏi nhiều thời gian, đặc biệt khi mã nguồn có nhiều nhánh điều kiện, xử lý lỗi và trạng thái phụ thuộc lẫn nhau. Các prompt cố định thường tạo ra test chưa đầy đủ, thiếu assertion hoặc chỉ kiểm tra các trường hợp đơn giản. Vì vậy cần một hệ thống có khả năng phân tích mã nguồn, đo độ phủ và tự cải thiện prompt dựa trên kết quả thực tế.
Hệ thống PromptOpt cho phép người dùng chọn project, phân tích function, statement và branch, sau đó chạy baseline bằng prompt ban đầu. CoverUp sử dụng mô hình ngôn ngữ để sinh test, chạy pytest và coverage.py để đo kết quả. GEPA/DSPy tiếp tục phân tích feedback, lỗi test và độ phủ nhằm đề xuất prompt mới. Prompt baseline và prompt tối ưu được đánh giá trên cùng protocol, có validation và holdout để tránh chọn nhầm candidate do nhiễu. Backend FastAPI điều phối workflow, Cloud Run thực thi các job nặng, Cloud Storage lưu artifact, Firestore lưu metadata, còn frontend React/Vite hiển thị tiến trình, metrics, prompt và test suite.
Kiến trúc có tính khả thi cao vì các thành phần được tách theo vertical slice và có thể triển khai độc lập. Frontend có thể public trước, trong khi backend tiếp tục phát triển từng module. Cloud Run phù hợp với tác vụ cần thời gian xử lý dài và có thể mở rộng theo số lượng experiment. Firestore đáp ứng tốt dữ liệu metadata, trạng thái job và lịch sử prompt; Cloud Storage phù hợp lưu file ZIP, source snapshot, generated tests và coverage report. Việc sử dụng provider abstraction cũng giúp thay đổi giữa Gemini, OpenAI và DeepSeek mà không phải viết lại toàn bộ pipeline.
Có thể phát triển hệ thống thành nền tảng đánh giá chất lượng test tự động thay vì chỉ tối ưu prompt. Mỗi test được phân loại theo loại lỗi, branch được bao phủ và mức độ tin cậy của assertion. Hệ thống có thể phát hiện test giả, test không có assertion hoặc test chỉ đạt coverage do chạy qua code nhưng không kiểm tra kết quả. Bổ sung cơ chế mutation testing sẽ giúp đo test có thực sự bắt được lỗi hay chỉ đạt coverage hình thức. Ngoài ra, có thể xây dựng leaderboard theo project, model và prompt version; hỗ trợ rollback prompt khi chất lượng giảm.