Bởi Sundaresh Iyer ngày 30 tháng 1 năm 2025 trong Amazon Q, Announcements, Featured, Generative AI
Khi AI tiếp tục thúc đẩy đổi mới nhanh chóng trong software development, một runtime environment đáng tin cậy cho real-time testing là điều cần thiết để tạo ra code chất lượng cao. Developers thường gặp chậm trễ trong việc phát triển tính năng do phải dành nhiều thời gian debug và lặp lại trên code được tạo bởi AI để verify đáp ứng yêu cầu dự án. Trước đây, Amazon Q Developer development agent tập trung vào code generation. Với bản cập nhật mới nhất, agent giờ đây có thể build và test code trong real-time, validate các thay đổi trước khi developer review. Khả năng mới này trực tiếp giải quyết phản hồi của cộng đồng về chất lượng code được đề xuất, phát hiện lỗi, giữ code được tạo đồng bộ với trạng thái hiện tại của dự án và đẩy nhanh quá trình phát triển bằng cách tối ưu hóa cả quy trình tạo và test code.
Với natural language input và project-specific context, Amazon Q Developer agent được thiết kế để hỗ trợ triển khai các tính năng multi-file phức tạp, bug fixes và test suites. Ví dụ, developer có thể yêu cầu Amazon Q Developer agent thêm tính năng checkout vào ứng dụng e-commerce. Agent sau đó phân tích codebase hiện có, thực hiện tất cả các thay đổi code cần thiết và test trong vài phút, bao gồm chạy unit tests và build code để verify code đã sẵn sàng để review. Cách tiếp cận này cải thiện đáng kể hiệu quả phát triển và giảm thiểu lỗi. Để sử dụng Amazon Q Developer agent trong IDE của bạn, chỉ cần cài đặt Amazon Q extension và sử dụng lệnh /dev trong cửa sổ chat để bắt đầu yêu cầu.
Khi lệnh /dev được nhập vào IDE, agent đóng gói dự án và tải lên Amazon Q một cách an toàn, bắt đầu quá trình tạo code theo dự án cụ thể. Amazon Q Developer agent không chỉ tập trung vào code generation mà còn duy trì kết nối real-time với developer, cung cấp cập nhật trong suốt quá trình và cung cấp patch hoặc triển khai đã được hoàn thiện cho tính năng được yêu cầu.
Real-time execution này được hỗ trợ bởi Devfile, định nghĩa development environment và các lệnh mà agent có thể sử dụng. Nếu dự án chưa có Devfile, Amazon Q Developer sẽ nhắc người dùng tạo một file sau lần chạy /dev đầu tiên. Không có Devfile, agent sẽ phát triển giải pháp mà không có feedback bổ sung được cung cấp bởi việc chạy builds hoặc unit tests, hạn chế khả năng nhận real-time feedback của developers trong quá trình phát triển.
Devfile phải tuân theo Devfile 2.2.0 schema. Hiện tại, Amazon Q Developer hỗ trợ các lệnh install, build và test.
Các cải tiến cốt lõi trong bản cập nhật Amazon Q Developer mới nhất:
- Customizable Commands: Developers có thể chỉ định các lệnh trong Devfile để kiểm soát những lệnh mà AI agent thực thi, giảm thiểu các bước không cần thiết và cải thiện độ chính xác.
- Flexible Environment Setup: Developers có thể sử dụng custom Docker images đã được tải sẵn với các dependencies để khởi động nhanh hơn, đảm bảo agent có đầy đủ công cụ cần thiết.
- Sandboxed Security: Amazon Q Developer bảo mật việc thực thi trong môi trường isolated, cung cấp logging toàn diện và kiểm soát permission mạnh mẽ để bảo vệ mọi thay đổi được thực hiện.
Với thiết lập này, Amazon Q Developer có thể thực thi tests, áp dụng migrations và chạy các lệnh installation trực tiếp trong sandbox, cung cấp phản hồi cho agent để cải thiện liên tục.
Bảo mật và isolation
Do tính chất nhạy cảm về bảo mật khi thực thi mã AI-generated, Amazon Q Developer agent đưa ra một số biện pháp bảo vệ:
Environment Isolation: Các lệnh được thực thi trong môi trường sandbox được quản lý và isolated, được cấu hình không có credentials để truy cập các tài nguyên internet không công khai, đảm bảo chỉ các hành động được ủy quyền mới được thực hiện an toàn.
Devfile driven: Tính năng này yêu cầu một Devfile, và cấu hình Devfile cho phép developers kiểm soát những lệnh mà agent sử dụng trong quá trình phát triển.
Bắt đầu với Amazon Q Developer agent
Để bắt đầu, bạn cần có AWS Builder ID hoặc là thành viên của tổ chức có AWS IAM Identity Center instance cho phép sử dụng Amazon Q. Để sử dụng Amazon Q Developer agent cho phát triển phần mềm trong Visual Studio Code, hãy bắt đầu bằng cách cài đặt Amazon Q extension. Tìm phiên bản mới nhất của extension trên trang Amazon Q Developer. Extension cũng có sẵn cho JetBrains, Eclipse (Preview), và Visual Studio IDEs. Để biết danh sách chi tiết các IDE được hỗ trợ và các tính năng có sẵn trong mỗi IDE, hãy tham khảo tài liệu Amazon Q Developer.
Sau khi xác thực, bạn có thể gọi feature development agent bằng cách nhập /dev trong cửa sổ chat của Amazon Q.
Amazon Q Developer tận dụng môi trường sandbox độc lập để thực thi an toàn mã được tạo bởi Amazon Q Developer agent. Điều này giúp mã được tạo chạy an toàn và đồng bộ với codebase gốc. Dưới đây là quy trình hoạt động:
- Khởi tạo Môi trường Thực thi: Khi nhận được prompt, Amazon Q Developer agent khởi động một sandbox instance hoặc docker container do khách hàng chỉ định, đóng vai trò là môi trường sandbox để thực thi mã.
- Thực thi Lệnh An toàn: Amazon Q Developer agent thực thi an toàn danh sách các shell command dựa trên thông số kỹ thuật của khách hàng trong Devfile. Devfile mô hình hóa cấu hình và dependencies của môi trường phát triển, cho phép tái tạo môi trường nhất quán và giảm công sức thiết lập thủ công. Developer có thể định nghĩa custom command trong Devfile để kiểm soát các hành động trong sandbox, như cài đặt dependencies, chạy test, áp dụng database migrations, hoặc thực thi build script, cải thiện độ chính xác và hiệu quả.
- Feedback và Sync: Sau khi mỗi lệnh chạy, những thay đổi trong mã được theo dõi và AI agent được cung cấp feedback theo thời gian thực và cho phép cải tiến lặp đi lặp lại.
Use case ví dụ 1: Thêm test suite vào project hiện có
Giả sử bạn muốn nâng cao chức năng của một React application, như ví dụ react-solitaire từ GitHub. Khi thêm tính năng mới, việc đảm bảo chức năng hiện có vẫn nguyên vẹn và không bị lỗi với mỗi lần cập nhật là rất quan trọng. Để đạt được điều này, bạn cần tạo test suite để test liên tục và lặp lại mã của bạn.
Để minh họa điều này, chúng ta sẽ clone React project từ GitHub và thêm Devfile để định nghĩa môi trường và dependencies. Devfile cấu hình sandbox để thực thi và test các thay đổi mã một cách an toàn, cho phép cập nhật mà không ảnh hưởng đến các tính năng đang hoạt động.
Đây là một Devfile đơn giản cho React project. Devfile giúp định nghĩa các lệnh mà Amazon Q Developer sẽ sử dụng, như cài đặt dependencies, build project và chạy test.
Sau khi repository được clone, đặt Devfile vào thư mục gốc của project folder. Sau đó, mở Amazon Q IDE trong Visual Studio Code và nhập lệnh /dev để bắt đầu tạo test suite được tùy chỉnh cho repository.
Amazon Q Developer agent sau đó bắt đầu phân tích codebase của bạn, chia sẻ các cập nhật real-time về những thay đổi đang thực hiện và các file đang làm việc. Agent bắt đầu bằng việc khám phá project structure, lên kế hoạch các cập nhật cần thiết và tạo test suite.
Sau một vài bước, agent đã tạo ra các test suites theo yêu cầu.
Sau đó, agent thực thi các tests, liên tục giám sát các lỗi. Khi phát hiện vấn đề, nó không dừng ngay lập tức mà chủ động cải thiện code dựa trên feedback từ các tests, lặp lại quá trình này tối đa ba lần. Nếu vấn đề vẫn chưa được giải quyết sau ba lần lặp lại, agent sẽ hủy bỏ quá trình. Tuy nhiên, nếu vấn đề được khắc phục, nó sẽ chuyển sang bước tiếp theo. Ví dụ, khi agent phát hiện Enzyme không hỗ trợ React 18, nó đã xử lý vấn đề và chạy lại tests trong testing environment.
Sau khi vấn đề được giải quyết, agent chuyển sang bước tiếp theo, hiển thị tất cả các thay đổi và file đã được chỉnh sửa trong sandbox và hỏi bạn có muốn chấp nhận thay đổi hay cung cấp phản hồi.
Nếu bạn hài lòng với kết quả, bạn có thể chấp nhận các thay đổi hoặc cung cấp phản hồi cho agent và yêu cầu nó tạo lại code.
Ví dụ trường hợp sử dụng 2: Chạy lại test khi một tính năng được cập nhật
Sau khi tạo và thực thi test thành công, agent được yêu cầu thêm tính năng mới hiển thị tên game trong UI. Agent đã phân tích repository, xác định các file cần cập nhật và xác định vị trí chính xác để thực hiện thay đổi.
Sau khi áp dụng các cập nhật, agent thực thi test để validate tính năng mới, thúc đẩy tích hợp liền mạch với codebase hiện có và duy trì độ tin cậy trong suốt quá trình phát triển.
Sau khi chấp nhận các thay đổi do agent thực hiện, file index.html được cập nhật để thêm text ‘Solitaire’, tích hợp nội dung mới một cách mượt mà vào dự án hiện có.
Kết luận
Việc ra mắt bản cập nhật mới trong Amazon Q Developer đánh dấu bước tiến quan trọng trong phát triển dựa trên AI, chuyển đổi Amazon Q Developer agent từ công cụ tập trung vào tạo code thành execution engine mạnh mẽ. Bằng cách cho phép developers validate và test các thay đổi code theo thời gian thực, cải tiến này có thể nâng cao độ chính xác và độ tin cậy của các file và bản sửa lỗi do AI tạo ra.
Với các tùy chọn linh hoạt để sử dụng AWS managed sandbox hoặc mang môi trường custom, developers có quyền kiểm soát để tối đa hóa tiềm năng của Amazon Q Developer agent. Khả năng execution mới giúp các team lặp lại nhanh hơn, điều chỉnh thông minh và tận dụng nền tảng bảo mật, thông minh phù hợp với nhu cầu của họ.
Bạn có thể dùng thử ngay hôm nay bằng cách cập nhật hoặc cài đặt extension Amazon Q Developer trên VS Code hoặc JetBrains.