Xây dựng Trình kiểm tra mã đa ngôn ngữ bằng các Tác nhân song song chống trọng lực

1. Giới thiệu

3072ce11df4b71eb.jpeg

Trong lớp học lập trình này, bạn sẽ xây dựng một hệ thống kiểm tra chất lượng mã đa ngôn ngữ và khắc phục tự động bằng cách sử dụng tính năng điều phối nhiều tác nhân song song trong Antigravity. Thay vì xem xét thủ công và tuyến tính theo cách truyền thống đối với nhiều thư mục dịch vụ riêng biệt, bạn sẽ triển khai các tác nhân phụ AI chuyên biệt để kiểm tra song song các ngăn xếp ngôn ngữ khác nhau.

Bạn sẽ tạo một tác nhân điều phối để khám phá bố cục dự án, quản lý các tác nhân phụ để thực thi quy trình kiểm thử đơn vị, xây dựng kế hoạch kiểm tra, quét để kiểm tra mức độ tuân thủ, tạo báo cáo kiểm tra và tự động cải tiến các vấn đề về viết mã có mức độ ưu tiên cao trong toàn bộ mã nguồn.

Kiến thức bạn sẽ học được

  • Khám phá dự án: Cách triển khai tác nhân điều phối để lập bản đồ các thư mục và phát hiện ngôn ngữ lập trình trên một kiến trúc dịch vụ vi mô phức tạp.
  • Tính song song được điều phối: Cách phân phối quy trình kiểm tra mã và kiểm thử đơn vị trên các tác nhân phụ AI độc lập, dành riêng cho từng ngôn ngữ một cách đồng thời.
  • Giám sát có sự tham gia của con người: Cách hướng dẫn tác nhân điều phối xây dựng kế hoạch kiểm tra và tạm dừng an toàn để bạn xem xét và phê duyệt trước khi thực thi.
  • Khắc phục tự động: Cách triển khai các tác nhân phụ dành cho nhà phát triển chuyên biệt để tự động tái cấu trúc và giải quyết các vấn đề về mã hoá và tuân thủ có mức độ ưu tiên cao.
  • Vòng lặp xác minh: Cách xác minh các thay đổi về mã do AI tạo bằng cách tự động chạy lại bộ kiểm thử để đảm bảo không có lỗi hồi quy nào được đưa vào.

Bạn cần có

Đối với lớp học lập trình này, bạn cần cài đặt cục bộ các công cụ sau:

  • Google Antigravity
  • Git
  • Một hoặc nhiều ngôn ngữ sau đây được thiết lập trong môi trường của bạn: Go, Python, C# / .NET, NodeJS, Java

Hãy bắt đầu!

2. Thiết lập môi trường

Trước tiên, hãy đảm bảo bạn đã cài đặt Antigravity.

Thứ hai, hãy sao chép Online Boutique, một ứng dụng minh hoạ dịch vụ vi mô trên đám mây:

git clone https://github.com/GoogleCloudPlatform/microservices-demo.git

Tạo một dự án mới trong Antigravity bằng mã. Trong Antigravity, hãy chọn Create New Project (Tạo dự án mới) trong mục Projects (Dự án) ở bên trái:

e8b14447dfcc289b.png

Chọn thư mục kho lưu trữ:

b39f0b1843ef1f3d.png

Bạn có thể chọn chế độ Default (Mặc định) cho Agent Security Settings (Cài đặt bảo mật tác nhân) và cũng sử dụng cùng một tên microservices-demo cho dự án.

3. Chiến dịch Khám phá

Trong kiến trúc dịch vụ vi mô, toàn bộ mã nguồn thường liên quan đến nhiều dịch vụ trải rộng trên nhiều thư mục hoặc kho lưu trữ và ngăn xếp lập trình. Điều này cũng đúng đối với ứng dụng minh hoạ Online Boutique.

Trước khi chạy các tác nhân, hãy khám phá bố cục dự án. Ở bước đầu tiên này, bạn sẽ triển khai tác nhân điều phối bằng Antigravity để khám phá nhiều dịch vụ vi mô bằng nhiều ngôn ngữ trong src/ và điều phối các tác nhân phụ dành riêng cho từng ngôn ngữ để làm việc trên từng dịch vụ vi mô ở các bước sau.

Trước tiên, hãy yêu cầu tác nhân điều phối khám phá toàn bộ mã nguồn và lập bản đồ các dịch vụ tồn tại trong thư mục nào và sử dụng ngôn ngữ nào.

Trong Antigravity, hãy bắt đầu một cuộc trò chuyện mới trong dự án microservices-demo mà bạn đã tạo trước đó. Đối với mô hình, bạn có thể sử dụng mô hình Gemini mới nhất với mức độ suy nghĩ trung bình:

1a88687c5fe37b04.png

Hãy thử câu lệnh này:

Identify all the microservices located under the src/ directory,
detect which programming language each service is written in, and
output the list as a clean markdown table showing: Service Name,
Directory, and Primary Language.

Cuối cùng, Antigravity sẽ trả về một bảng dịch vụ và ngôn ngữ chính của các dịch vụ đó, tương tự như sau:

2e37b2e607596573.png

4. Chọn ngôn ngữ

Giờ đây, khi đã lập bản đồ cơ sở mã, bạn cần chọn các ngôn ngữ mà bạn muốn làm việc. Bạn cần đảm bảo rằng mình có trình biên dịch/công cụ cần thiết cho các ngôn ngữ bạn chọn (ví dụ: công cụ dotnet cho C#, javac cho Java, v.v.).

Sau khi chọn các ngôn ngữ bạn muốn làm việc, bạn cần xác minh tình trạng của cơ sở mã hiện tại bằng cách chạy các quy trình kiểm thử đơn vị tương ứng cho ngôn ngữ đó.

Bạn có thể sử dụng các tác nhân phụ song song, chuyên biệt để chạy bộ kiểm thử bằng từng ngôn ngữ. Điều này làm nổi bật sức mạnh cốt lõi của quy trình làm việc nhiều tác nhân: chạy các quy trình kiểm thử riêng biệt một cách đồng thời trong các không gian làm việc riêng biệt dành riêng cho từng ngôn ngữ.

Hãy điều chỉnh và chạy câu lệnh sau cho môi trường của bạn:

I have [C#, Python, Go, Java, Node.js] setup locally. 
Run the unit tests for services in these languages 
in parallel subagents and report back in a clean markdown 
on their pass/fail status.

Bạn sẽ thấy nhiều tác nhân chạy các quy trình kiểm thử bằng từng ngôn ngữ. Hãy nhớ xem xét từng tác nhân phụ khi chúng yêu cầu quyền chạy các công cụ như minh hoạ bên dưới:

a3c1834909975020.png

Sau khi tất cả các tác nhân phụ hoàn tất, bạn sẽ nhận được một báo cáo về các quy trình kiểm thử đơn vị, tương tự như sau:

e8ce8e16f195ea8c.png

5. Lập kế hoạch kiểm tra

Lập kế hoạch

Trong các quy trình làm việc phức tạp, việc triển khai các thay đổi về mã mà không có kế hoạch có thể dẫn đến xung đột. Chúng tôi muốn thiết lập một bản thiết kế có cấu trúc và minh bạch về những gì chúng tôi dự định kiểm tra. Bạn sẽ yêu cầu tác nhân điều phối thiết kế kế hoạch kiểm tra với các quy trình kiểm tra chất lượng mã, xử lý ngoại lệ, kiểm tra tính hợp lệ của truy vấn, v.v.

Để đảm bảo sự giám sát của con người (có sự tham gia của con người), tác nhân điều phối sẽ ghi kế hoạch vào một cấu phần phần mềm và tạm dừng ngay lập tức để bạn xem xét.

Hãy thử câu lệnh này để đưa ra kế hoạch kiểm tra:

We want to audit these microservices for code quality, 
exception handling and database query formatting standards 
for the languages I have set up locally. Design an audit plan 
detailing what you will check and save it as an Audit Plan artifact.
Do not execute the audit yet. Stop after writing the plan and wait
for my instructions.

Bạn sẽ thấy một cấu phần phần mềm Kế hoạch kiểm tra trong cuộc trò chuyện:

a7eb6b75b28fd788.png

Xem xét

Giờ đây, bạn sẽ kiểm tra Kế hoạch kiểm tra đã tạo để đảm bảo kế hoạch này nhắm đến đúng tệp và tiêu chuẩn. Bạn có thể thêm các ràng buộc tuỳ chỉnh (chẳng hạn như kiểm tra nhận xét nội dòng hoặc hướng dẫn về kiểu) trước khi phê duyệt để tiếp tục.

Nhấp vào Kế hoạch kiểm tra đã tạo và bạn sẽ thấy kế hoạch chi tiết:

9b36c0ca827fdc53.png

Không bắt buộc: Bạn có thể thêm nhận xét vào kế hoạch (ví dụ: "đảm bảo tất cả các phương thức công khai đều được ghi lại đầy đủ") nếu bạn muốn thay đổi và lặp lại cho đến khi hài lòng với kế hoạch.

6. Thực thi quy trình kiểm tra

Thực thi

Sau khi phê duyệt Kế hoạch kiểm tra, hãy thực thi quy trình kiểm tra. Tác nhân điều phối sẽ tạo các tác nhân phụ song song độc lập cho từng ngăn xếp ngôn ngữ. Mỗi tác nhân hoạt động đồng thời trong thư mục dịch vụ riêng, ngăn xung đột tệp, đồng thời đẩy nhanh quá trình quét. Tác nhân điều phối sẽ hợp nhất các kết quả vào một trang tổng quan chất lượng hợp nhất.

Sau đây là câu lệnh bạn nên thử tiếp theo:

Execute the audit plan by spawning the parallel language subagents.
Once they finish scanning, collect their findings into an audit 
report artifact, sorted by language and then priority. Include the 
file paths, line ranges, snippets, and explanation of why it is a 
finding. Stop after writing the report.

Bạn sẽ thấy nhiều tác nhân một lần nữa:

9c282924eb33cc34.png

Hãy nhớ theo dõi từng tác nhân phụ và cấp cho chúng các quyền cần thiết để chạy quy trình kiểm tra. Cuối cùng, bạn sẽ thấy một cấu phần phần mềm Báo cáo kiểm tra:

6706295f5cf7292b.png

Xem xét

Sau khi mở Báo cáo kiểm tra, bạn cũng sẽ thấy kết quả chi tiết cho từng ngôn ngữ. Ví dụ: sau đây là một vấn đề có mức độ ưu tiên cao từ cartservice trong C#:

aca90d0da393bffc.png

Hãy xem phần còn lại của báo cáo kiểm tra để xem kết quả.

7. Cách khắc phục

Việc chẩn đoán các vấn đề về chất lượng mã chỉ là một nửa chặng đường. Giờ đây, chúng ta sẽ sử dụng các tác nhân để giải quyết các vấn đề. Thay vì viết mã theo cách thủ công, chúng ta có thể uỷ quyền việc tái cấu trúc cho các tác nhân phụ dành cho nhà phát triển có phạm vi ngôn ngữ, có thể viết lại mã để tuân thủ các phương pháp hay nhất.

Có nhiều cách để thử thực hiện việc này:

  1. Bạn có thể tạo một tác nhân cho mỗi ngôn ngữ và để tất cả các tác nhân sửa tất cả các vấn đề cùng một lúc. Cách này có thể hiệu quả nhưng cũng có thể quá nhiều để theo dõi và xem xét cùng một lúc.
  2. Bạn có thể tạo một tác nhân cho một ngôn ngữ tại một thời điểm và để tác nhân đó xử lý các vấn đề cho ngôn ngữ đó. Cách này sẽ dễ quản lý hơn nhưng bạn vẫn cần tin tưởng tác nhân đó để thực hiện nhiều thay đổi trên nhiều tệp.
  3. Bạn có thể để một tác nhân xử lý một vấn đề tại một thời điểm trong khi bạn kiểm tra kết quả trước khi chuyển sang vấn đề tiếp theo. Đây là một phương pháp thận trọng hơn nhưng cũng đảm bảo bạn luôn nắm được từng thay đổi.

Chúng ta sẽ sử dụng phương pháp thận trọng hơn số 3 với câu lệnh sau:

Select the top high-priority finding in [pick a language, e.g., C#]
and remediate the finding. Show me the code changes once complete.

Sau vài giây, bạn sẽ thấy tác nhân xử lý vấn đề có mức độ ưu tiên cao nhất bằng ngôn ngữ bạn chọn và khắc phục vấn đề đó.

Cuối cùng, bạn cũng có thể nhận được một cấu phần phần mềm Walkthrough (Hướng dẫn) cho biết những gì tác nhân đã thay đổi:

9e79c7bb1e102aee.png

Không bắt buộc: Tại thời điểm này, bạn có thể yêu cầu tác nhân thay đổi cách triển khai hoặc nếu hài lòng với các thay đổi, bạn có thể yêu cầu tác nhân thêm một quy trình kiểm thử đơn vị mới để bao gồm các thay đổi.

8. Xác minh

Trong quá trình phát triển phần mềm, bản sửa lỗi sẽ không hoàn tất cho đến khi được xác minh. Ở bước cuối cùng này, chúng ta có thể yêu cầu tác nhân chạy bộ kiểm thử để đảm bảo các thay đổi về mã không gây ra lỗi hồi quy và chạy lại trình quét kiểm tra để xác minh rằng vấn đề đã được giải quyết hoàn toàn.

Bước này cho thấy vòng lặp phản hồi tự động hoàn chỉnh về lập kế hoạch, quét, sửa lỗi và xác minh.

Chạy câu lệnh sau:

Rerun the unit tests for the changed language. If they pass, rerun
the relevant audit agent to check if the finding is resolved. If it 
is resolved, mark the issue as resolved in the audit report.

Bạn sẽ thấy một tác nhân phụ Test Runner (Trình chạy kiểm thử) khởi động và chạy các quy trình kiểm thử, sau đó bạn sẽ thấy một tác nhân phụ Auditor (Trình kiểm tra) cập nhật Báo cáo kiểm tra. Cuối cùng, bạn sẽ thấy Báo cáo kiểm tra được cập nhật với trạng thái mới nhất:

36ac20baa92d1602.png

Đã giải quyết xong một vấn đề! Giờ đây, bạn có thể xem xét các vấn đề còn lại, có thể sử dụng phương pháp ít thận trọng hơn lần này, trong đó bạn để các tác nhân làm nhiều việc hơn trước khi bạn xem xét.

9. Xin chúc mừng

Xin chúc mừng! Bạn vừa hoàn thành quy trình xem xét mã đa ngôn ngữ phức tạp và quy trình khắc phục tự động bằng Antigravity.

Bằng cách tận dụng kiến trúc nhiều tác nhân của Antigravity, bạn không chỉ tự động hoá các quy trình kiểm tra tĩnh mà còn điều phối một nhóm đảm bảo chất lượng tự động. Trong khi các tác nhân ngôn ngữ chuyên biệt đồng thời làm việc trên các vấn đề dành riêng cho từng ngôn ngữ, tác nhân điều phối của bạn đã biên soạn một kế hoạch và báo cáo tập trung, sau đó quản lý việc tái cấu trúc mã có mục tiêu.

Những điểm chính cần ghi nhớ

  • Tính song song được điều phối: Bạn đã học cách phân phối các quy trình kiểm tra và kiểm thử trên các tác nhân phụ độc lập, dành riêng cho từng ngôn ngữ chạy song song, tránh các nút thắt trong quy trình xem xét tuyến tính.
  • Human-in-the-Loop: Bằng cách xem xét và chú thích Kế hoạch kiểm tra đã tạo trước khi thực thi, bạn đã duy trì sự giám sát đối với các hoạt động tự động.
  • Khắc phục và xác minh tự động: Bạn đã thấy cách các tác nhân AI không chỉ có thể chẩn đoán sự khác biệt về chất lượng mã mà còn có thể cải tiến mã và xác minh các thay đổi của riêng chúng dựa trên bộ kiểm thử cục bộ.