Khi các công cụ lập trình AI như GitHub Copilot, Anthropic Claude và ChatGPT Codex ngày càng trở nên phổ biến trong môi trường phát triển, các tổ chức lớn cũng bắt đầu áp dụng mã hỗ trợ AI trên quy mô lớn trong phần mềm cấp doanh nghiệp. Ví dụ: Microsoft tuyên bố nội bộ rằng AI Copilot đã tham gia vào việc xem xét và tác động đến hàng trăm nghìn yêu cầu kéo mỗi tháng. Cộng đồng hiện cũng có các hướng dẫn bằng văn bản rõ ràng hơn về cách sử dụng mã do AI tạo hoặc do hỗ trợ tạo trong nhân Linux một cách tuân thủ.

Gần đây, một tài liệu về yêu cầu mã phụ trợ AI đã thu hút sự chú ý trên Hacker News. Tài liệu này được lưu trữ công khai trong kho lưu trữ Linux chính thức dưới tên Linus Torvalds dưới dạng RST, dành riêng cho những ai muốn sử dụng các công cụ AI để các Nhà phát triển Linux đóng góp mã cho kernel cung cấp hướng dẫn và các ràng buộc.

Theo tài liệu, trước hết, tất cả mã được tạo bởi AI phải tuân thủ đầy đủ quy trình phát triển con người hiện có, bao gồm các yêu cầu về quy trình và kiểu dáng được chỉ định trong Development-process.rst,coding-style.rst, submit-patches.rst và các tệp khác. Đồng thời, mã cũng phải đáp ứng các yêu cầu tuân thủ hiện có, chẳng hạn như vẫn tương thích với giấy phép chỉ GPL-2.0, sử dụng chính xác mã định danh giấy phép SPDX và tuân thủ tất cả các quy tắc được liệt kê trong license-rules.rst.

Về mặt ký kết và xác định trách nhiệm, các quy tắc nhấn mạnh rằng bản thân tác nhân AI không được sử dụng thẻ Signed-off-by. Nhãn này chỉ dành riêng cho người đánh giá vì chỉ con người mới có thể chứng nhận hợp pháp Giấy chứng nhận xuất xứ của nhà phát triển (DCO). Các nhà phát triển con người gửi bản vá phải đích thân xem xét tất cả mã do AI tạo ra để đảm bảo mã đó đáp ứng các yêu cầu cấp phép và sử dụng nhãn hiệu Đã ký của chính họ trên bản vá để chịu trách nhiệm rõ ràng về mọi đóng góp. Tài liệu

cũng yêu cầu ghi nhận rõ ràng về sự tham gia được hỗ trợ bởi AI để cộng đồng có thể theo dõi sự phát triển về tỷ trọng phát triển nhân Linux của AI. Điều này được thực hiện bằng cách sử dụng thẻ "Được hỗ trợ bởi" trong yêu cầu kéo và tuân theo định dạng thống nhất: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]. Trong số đó, AGENT_NAME là tên của công cụ hoặc khung AI được sử dụng, MODEL_VERSION là phiên bản mô hình cụ thể và TOOL1 và TOOL2 trong ngoặc vuông là các công cụ phân tích đặc biệt tùy chọn, chẳng hạn như coccinelle, thưa thớt, smatch, clang-tidy, v.v.

Trong bối cảnh các nhà phát triển nhân Linux và các tổ chức lớn tiếp tục sử dụng AI và sử dụng nó để cải thiện hiệu quả mã hóa và đánh giá, thông số kỹ thuật này vẫn được duy trì của Linus Torvalds thực sự là "chào đón có điều kiện" mã hỗ trợ AI vào nhân Linux: nó không phủ nhận những lợi thế về hiệu quả của nó mà còn đặt ra ranh giới rõ ràng cho sự tham gia của AI thông qua các yêu cầu cứng như trách nhiệm của con người, tuân thủ giấy phép và các định dạng phân bổ thống nhất. Trước đây có thông tin cho rằng bản thân Torvalds cũng đã cố gắng áp dụng các phương pháp phát triển mới như cái gọi là "mã hóa rung cảm" trong một số dự án, điều này cũng khẳng định thái độ thực dụng và thận trọng của ông đối với các công cụ mới.

Tìm hiểu thêm:

https://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst