Phân tích yêu cầu với Agentic IDE
Phân tích yêu cầu là bước nền tảng để đảm bảo dự án đi đúng hướng. Việc sử dụng một Agentic IDE (như Cascade) có thể giúp quá trình này trở nên nhanh chóng, toàn diện và nhất quán hơn bằng cách sử dụng các prompt để tự động hóa việc phân tích.
Quy trình tương tác với AI
Làm việc với Agentic IDE không phải là một quy trình một chiều, mà là một vòng lặp tương tác. Bạn đưa ra yêu cầu, AI phản hồi, và bạn tiếp tục tinh chỉnh cho đến khi đạt được kết quả cuối cùng.
Quy trình này gồm 4 bước chính:
- Xác định Context: Cung cấp thông tin nền tảng về dự án cho AI.
- Làm rõ yêu cầu: Dùng prompt để biến một ý tưởng mơ hồ thành các câu hỏi cụ thể.
- Tạo kế hoạch chi tiết: Dùng prompt để chuyển yêu cầu đã rõ ràng thành một kế hoạch thực thi.
- Lặp lại và Tinh chỉnh: Dùng các prompt nối tiếp để hoàn thiện kế hoạch.
Bước 1: Xác định Context
Trước khi viết bất kỳ prompt nào, bước đầu tiên là phải xác định và cung cấp "context" (bối cảnh) cho AI. Context là tất cả những thông tin nền tảng mà AI cần biết để hiểu rõ yêu cầu của bạn trong môi trường cụ thể của dự án.
Các loại context quan trọng:
- Source Code: Cung cấp các đoạn code hoặc cấu trúc file liên quan. AI sẽ hiểu được kiến trúc hiện tại và đề xuất các giải pháp phù hợp.
- Tài liệu & Rules: Cung cấp các tài liệu về quy tắc, tiêu chuẩn (standards), hoặc các hướng dẫn của dự án. Điều này đảm bảo AI tuân thủ các quy định đã có.
- Thư viện & Frameworks: Nêu rõ các công nghệ đang được sử dụng (ví dụ: Next.js, NestJS, Tailwind CSS).
Việc cung cấp context đầy đủ giúp AI tránh đưa ra những giải pháp chung chung, không phù hợp với dự án của bạn.
Bước 2: Dùng Prompt để làm rõ yêu cầu
Khi nhận được một yêu cầu ban đầu, hãy yêu cầu Agentic IDE phân tích và đặt câu hỏi để làm rõ những điểm còn thiếu.
prompt-lam-ro
Model: thinking-model
Prompt: Với yêu cầu "Tôi muốn xây dựng một tính năng cho phép người dùng tải lên hình ảnh", hãy phân tích và liệt kê các câu hỏi cần làm rõ về mặt kỹ thuật và nghiệp vụ. Nhóm các câu hỏi theo chủ đề (ví dụ: Người dùng, Chức năng Upload, Xử lý sau khi upload,...).
Kết quả mong đợi từ AI:
AI sẽ trả về một danh sách câu hỏi chi tiết:
Về Người dùng:
- "Người dùng" ở đây là ai? Có cần đăng nhập không?
- Có các vai trò người dùng khác nhau không (ví dụ: admin, user)? Quyền hạn của họ liên quan đến việc tải ảnh là gì?
Về Chức năng Upload:
- Người dùng có thể tải ảnh từ đâu (máy tính, URL, kéo-thả)?
- Có giới hạn về định dạng file không (chỉ chấp nhận
.jpg,.png)? - Dung lượng file tối đa là bao nhiêu?
- Người dùng có thể tải lên nhiều file cùng lúc không?
Về Xử lý và Lưu trữ:
- Sau khi tải lên, ảnh có cần được xử lý thêm không (ví dụ: resize, nén ảnh, tạo thumbnail)?
- Ảnh sẽ được lưu trữ ở đâu (server nội bộ, Amazon S3, Cloudinary)?
Bước 3: Dùng Prompt để tạo file kế hoạch chi tiết
Sau khi có câu trả lời cho các câu hỏi trên, hãy tổng hợp lại thành một yêu cầu hoàn chỉnh và yêu cầu Agentic IDE tạo ra một file Markdown chứa kế hoạch thực thi.
prompt-tao-ke-hoach
Model: thinking-model
Prompt: Với yêu cầu sau: "Xây dựng tính năng cho phép người dùng đã đăng nhập tải lên tối đa 5 ảnh/lần từ máy tính, định dạng .jpg hoặc .png, dung lượng dưới 5MB/ảnh. Sau khi tải lên, hệ thống tự tạo thumbnail 150x150 và lưu cả ảnh gốc lẫn thumbnail vào S3."
Hãy tạo một kế hoạch thực thi chi tiết, lưu vào file docs/features/image-upload-plan.md với các phần:
- Tổng quan chức năng
- Yêu cầu kỹ thuật
- Chia nhỏ công việc (Backend, Frontend, Testing)
- Cấu trúc dữ liệu (nếu có)
Kết quả mong đợi từ AI:
AI sẽ không chỉ liệt kê các task, mà sẽ tạo một file Markdown mới (docs/features/image-upload-plan.md) với nội dung có cấu trúc rõ ràng, sẵn sàng để team sử dụng. Ví dụ:
# Kế hoạch phát triển tính năng: Upload hình ảnh
## 1. Tổng quan chức năng
- Cho phép người dùng đã đăng nhập tải lên nhiều ảnh cùng lúc.
- Hệ thống sẽ xử lý và lưu trữ ảnh an toàn.
## 2. Yêu cầu kỹ thuật
- **Số lượng:** Tối đa 5 ảnh/lần.
- **Định dạng:** `.jpg`, `.png`.
- **Dung lượng:** < 5MB/ảnh.
- **Xử lý:** Tạo thumbnail 150x150.
- **Lưu trữ:** Amazon S3.
## 3. Chia nhỏ công việc
### Backend Tasks
- [ ] Tạo API endpoint `POST /api/images/upload`.
- [ ] Validate file đầu vào.
- [ ] Viết logic xử lý ảnh: tạo thumbnail.
- [ ] Tích hợp AWS S3 SDK để tải ảnh lên.
- [ ] Lưu đường dẫn ảnh vào cơ sở dữ liệu.
### Frontend Tasks
- [ ] Tạo component UI cho phép chọn/kéo-thả file.
- [ ] Hiển thị preview các file đã chọn.
- [ ] Gọi API upload và hiển thị progress bar.
- [ ] Xử lý thông báo lỗi/thành công.
### Testing Tasks
- [ ] Viết Unit Test cho logic xử lý ảnh.
- [ ] Viết Integration Test cho luồng upload.
- [ ] Kiểm thử giao diện trên các trình duyệt.
## 4. Cấu trúc dữ liệu
Bảng `images`:
- `id` (PK)
- `user_id` (FK)
- `original_url` (string)
- `thumbnail_url` (string)
- `created_at` (timestamp)Bằng cách này, bạn không chỉ phân tích yêu cầu mà còn tạo ra một tài liệu thiết kế ban đầu (initial design document) một cách tự động, giúp team có một nguồn thông tin tin cậy để bắt đầu công việc.
Bước 4: Lặp lại và Tinh chỉnh
Đây là bước quan trọng nhất thể hiện sự hợp tác giữa người và AI. Kết quả ban đầu của AI là một bản nháp chất lượng cao, không phải là sản phẩm cuối cùng. Vai trò của bạn là sử dụng chuyên môn của mình để xem xét, đánh giá và đưa ra phản hồi để AI hoàn thiện nó.
Ví dụ về prompt tinh chỉnh:
Sau khi AI tạo ra file kế hoạch ở Bước 2, bạn xem xét và thấy cần bổ sung một vài điểm.
prompt-tinh-chinh
Model: thinking-model
Prompt: Hãy cập nhật file docs/features/image-upload-plan.md với những thay đổi sau:
- Trong phần Cấu trúc dữ liệu, bổ sung cột
file_size(integer) vàmime_type(string) vào bảngimages. - Trong Backend Tasks, thêm task:
[ ] Xử lý và trả về mã lỗi cụ thể (ví dụ: file quá lớn, định dạng không hợp lệ). - Trong Frontend Tasks, thêm task:
[ ] Hiển thị thông báo lỗi chi tiết cho người dùng dựa trên mã lỗi từ API.
Kết quả mong đợi từ AI:
AI sẽ không tạo file mới, mà sẽ chỉnh sửa file Markdown đã có để tích hợp các yêu cầu của bạn. Quá trình này có thể lặp lại nhiều lần cho đến khi kế hoạch thực sự hoàn chỉnh và sẵn sàng để đội ngũ bắt đầu làm việc.