GitHub Blog
85

Sản phẩm

Cộng tác viên của bạn giờ là AI: Dự án của bạn đã sẵn sàng chưa?

(giờ Việt Nam)

Tóm tắt AI

Các AI đang bắt đầu tham gia đóng góp vào mã nguồn. Nicholas Tindle, người duy trì AutoGPT, chia sẻ cách thiết lập quy trình và rào cản để các nhà phát triển vẫn giữ quyền kiểm soát dự án.

Bản dịch AI

Your contributors are AI-first now. Is your project?

Các cộng tác viên AI đã có mặt trong hàng đợi của bạn. Nicholas Tindle, người duy trì dự án AutoGPT, chia sẻ các hướng dẫn, cổng kiểm soát và ranh giới trong kho lưu trữ (repo) giúp các nhà duy trì nắm quyền kiểm soát.

12 tháng 8, 2026

7 phút

Một câu hỏi tương tự liên tục xuất hiện trong các cuộc trò chuyện giữa những người duy trì dự án: bạn làm gì khi hàng đợi yêu cầu kéo (pull request) bị lấp đầy bởi các công việc do AI tạo ra?

Đây cũng là điều mà Nicholas Tindle, kỹ sư AI sáng lập tại AutoGPT, phải đối mặt mỗi ngày. Tôi đã trò chuyện với anh ấy vào tháng 5 nhân dịp Tháng Duy trì Dự án (Maintainer Month). Tại thời điểm phỏng vấn, AutoGPT đã có hơn 180.000 sao và khoảng 150 yêu cầu kéo đang mở. Một phần lớn trong số đó được viết bởi các tác nhân (agent), bao gồm Copilot, OpenClaw và các công cụ nội bộ của chính AutoGPT. Hầu hết những người duy trì mà tôi trò chuyện đều có cùng một phản ứng: đóng cửa lại. Tắt tính năng yêu cầu kéo. Đừng bắt đội ngũ phải gánh thêm việc đánh giá những nội dung rác.

Nicholas lại nhìn thấy một mặt tích cực:

Về cơ bản, đó là việc người khác đang trả tiền cho tài nguyên tính toán của bạn.

Theo cách nhìn của anh ấy, nếu một cộng tác viên muốn tiêu tốn token của họ để cải thiện dự án của bạn, hãy để họ làm điều đó. Chỉ cần đảm bảo rằng cách duy nhất để vượt qua "cánh cửa" đó là cách phù hợp với bạn.

Tài liệu của bạn không phải là vấn đề. Khả năng khám phá mới là vấn đề.

AutoGPT đã thử cách hiển nhiên trước tiên. Hướng dẫn cộng tác viên tốt hơn. Tài liệu tốt hơn. Một trang wiki dành riêng cho việc làm việc với kho lưu trữ.

Không có gì trong số đó tạo ra thay đổi đáng kể. Hóa ra các công cụ sẽ không đọc tài liệu của bạn trừ khi chúng được yêu cầu. Đó là phần mà nhiều người trong chúng ta làm sai. Chúng ta đối xử với tài liệu như thể tác nhân sẽ tự tìm đến nó. Nó sẽ không làm vậy. Các tác nhân chỉ đọc những gì ở ngay trước mắt chúng, ở cấp độ thư mục mà chúng đang làm việc.

Vì vậy, AutoGPT bắt đầu đặt các hướng dẫn ở nơi mà các tác nhân tìm kiếm. Đầu tiên là các tệp CLAUDE.md, vì Claude thường tạo ra các yêu cầu kéo mà thiếu bối cảnh cụ thể của kho lưu trữ. Phần commit trailer giúp dễ dàng nhận diện từng yêu cầu vì chúng tự thông báo trong đó. Sau đó, họ gặp rào cản tiếp theo: Copilot và Codex bỏ qua các tệp Claude vì chúng không phải là Claude. Vì vậy, họ tập trung hóa thành tệp AGENTS.md tiêu chuẩn và trỏ các tệp Claude vào đó.

Đây là điểm tinh tế mà tôi thấy hữu ích nhất. AGENTS.md được giới hạn trong một thư mục. Một kỹ năng (skill) có thể được khám phá bên ngoài thư mục đó. (Nếu bạn chưa từng triển khai: kỹ năng là một tệp hướng dẫn kèm mô tả cho biết khi nào tác nhân cần tải nó. Tác nhân sẽ quét các mô tả trước và tải toàn bộ hướng dẫn khi tác vụ khớp với mô tả đó.)

Tệp AGENTS.md của AutoGPT nằm cạnh mã nguồn mà nó quản lý. Vị trí đó quan trọng không kém gì bản thân các hướng dẫn.

Nếu bạn đang viết các bài kiểm tra backend và nghĩ đến việc thực hiện các công việc front-end, một kỹ năng có thể được tải động. Nó sẽ không biết phải tìm tệp AGENTS.md ở thư mục nào, nhưng kỹ năng đó có thể chỉ cho nó biết.

Kỹ sư front-end của họ đã quá mệt mỏi với cùng một loại yêu cầu kéo bị lỗi, vì vậy họ đã viết một hướng dẫn và triển khai nó dưới dạng một kỹ năng trong kho lưu trữ. Phần mô tả chứa các cụm từ kích hoạt: viết bài kiểm tra Storybook nếu thành phần của bạn nằm trong các thư mục này. Giờ đây, mọi công cụ hỗ trợ (harness) tương tác với kho lưu trữ đều tự động khám phá ra nó. Phía backend cũng thực thi quy tắc của riêng mình theo cách tương tự: đạt 80% độ bao phủ (coverage) hoặc đừng mở yêu cầu kéo.

Những cổng kiểm soát thực sự hiệu quả

Đây là những cổng kiểm soát bạn có thể áp dụng cho dự án của mình.

Thực thi mẫu yêu cầu kéo một cách mạnh mẽ. AutoGPT thông báo với các tác nhân rằng các yêu cầu kéo không khớp với mẫu sẽ bị đóng tự động mà không cần do dự. Họ đã xây dựng công cụ để thực hiện điều đó, rồi nhận ra họ không cần phải chạy nó. Tại AutoGPT, quy tắc này đã thay đổi hành vi của tác nhân trước cả khi quá trình tự động hóa diễn ra. Các tác nhân đã tuân thủ mẫu. Các cộng tác viên là con người đôi khi cần nhiều không gian hơn, điều mà Nicholas coi là một tính năng:

Nếu bạn không tuân theo mẫu, tôi biết bạn có lẽ là con người, và tôi sẽ tử tế hơn.

Mẹo về kế hoạch kiểm tra. Mẫu yêu cầu một kế hoạch kiểm tra, và cách diễn đạt của nó đề cập một cách tự nhiên đến việc kiểm tra yêu cầu kéo. Cụm từ đó kích hoạt một kỹ năng gọi là "test PR", giúp cài đặt trình duyệt tác nhân (với sự cho phép), khởi chạy ứng dụng và thực thi thay đổi. Tác nhân ban đầu chỉ định điền vào một ô kiểm nhưng cuối cùng lại chạy cả mã nguồn.

Họ gần như không bao giờ nhận được các yêu cầu kéo không hoạt động nữa. Những gì họ nhận được bây giờ là các yêu cầu kéo hoạt động tốt nhưng không phù hợp với lộ trình phát triển, đó là một vấn đề dễ chịu hơn nhiều.

Biến CI thành một bức tường, không phải một lời gợi ý. Các ngưỡng độ bao phủ Codecov là các kiểm tra bắt buộc. Tác nhân mở yêu cầu kéo, kiểm tra lại vài phút sau đó, thấy rằng nó không thể hợp nhất (merge), tải kỹ năng kiểm tra và viết các bài kiểm tra. Không ai phải yêu cầu cả.

Sử dụng CLA như một bộ lọc con người. AutoGPT sử dụng giấy phép kép, nhưng Nicholas cho rằng mọi dự án đều nên làm điều này, bao gồm cả MIT. Việc ký kết yêu cầu một trình duyệt và luồng GitHub OAuth trên một tên miền riêng biệt. Các tác nhân hiện nay rất kém trong việc này, và có lý do chính đáng: hầu hết những người duy trì không muốn một tác nhân đăng nhập vào GitHub trên trình duyệt với quyền truy cập tài khoản rộng rãi.

Nếu CLA của bạn không được ký sau một tuần, chúng tôi đóng yêu cầu kéo với một bình luận yêu cầu ký CLA và mở lại khi bạn hoàn tất.

Cổng kiểm soát đó hiệu quả vì nó đưa con người trở lại quy trình. CLA là một lựa chọn. Một ô kiểm về quy tắc ứng xử (code-of-conduct) cũng có thể làm công việc tương tự.

Yêu cầu một commit SHA trước khi giải quyết luồng đánh giá. Một số tác nhân đánh dấu mọi luồng đánh giá là đã giải quyết mà không hề chạm vào mã nguồn. Giải pháp của AutoGPT là một kỹ năng "pr-address" trong kho lưu trữ, tuyên bố trình tự hợp lệ duy nhất: sửa, commit, push, trả lời, sau đó mới giải quyết. Câu trả lời phải liên kết với commit sửa lỗi, với mã SHA đầy đủ được lấy từ `git rev-parse HEAD` sau khi commit, để tác nhân không thể tái sử dụng mã cũ. Kỹ năng này thậm chí còn nêu tên các phản mẫu: "Đã xác nhận" không phải là một bản sửa lỗi, và việc trích dẫn một commit không chạm vào dòng bị gắn cờ cũng vậy.

Cổng kiểm soát mà họ đã tắt

Khi một kiểm tra thất bại, AutoGPT từng có một tác nhân đọc kết quả chạy và bình luận về những gì bị hỏng. Phiên bản đầu tiên của họ kết nối Claude Code vào GitHub Actions và xác thực bên trong quy trình làm việc, nghĩa là thêm một thông tin xác thực rộng rãi nữa nằm trong CI. Chạy Copilot trong quy trình làm việc mang lại kết quả tương tự mà không cần điều đó. Nicholas là một người hâm mộ:

Thật không thể tin được. Tôi rất vui vì không bao giờ phải bận tâm đến YAML nữa. Tôi sẽ không bao giờ viết quy trình làm việc cho một action nào nữa.

Sau đó, họ vẫn tắt tính năng bình luận. CI của họ thất bại khá thường xuyên, và một con bot tường thuật mọi lỗi suốt cả ngày cũng không tốt hơn lỗi đó là bao. Bài học ở đây là sự tiết chế: giữ lại những gì giảm bớt gánh nặng cho người duy trì, tắt những gì trở thành tiếng ồn.

Bốn lưu ý đáng ghi nhớ

Một tệp AGENTS.md tồi tệ còn tệ hơn là không có AGENTS.md. Lúc đầu, AutoGPT rải chúng khắp nơi và cuối cùng làm ô nhiễm bối cảnh, thu hút sự chú ý của tác nhân vào các tệp không quan trọng. Nếu hành vi trở nên tồi tệ hơn, hãy đọc lại những gì bạn đã viết.

API GraphQL sẽ giới hạn tốc độ của bạn. Khi mọi công cụ trong nhóm của bạn truy cập CLI với tư cách là người dùng cá nhân, bạn sẽ chạm ngưỡng giới hạn rất nhanh. Hãy tạo một GitHub App và xác thực CLI thông qua đó.

Công cụ đánh giá chuyên sâu tốn kém tiền thật. Hệ thống kiểm tra yêu cầu kéo của họ sao chép nhánh, tạo ra tám tác nhân với các công việc khác nhau, chạy toàn bộ ngăn xếp và tải lên ảnh chụp màn hình. Nó rất tuyệt. Nhưng nó cũng đủ đắt đỏ để họ hiện chỉ chạy nó trên các yêu cầu kéo rất nhỏ hoặc rất lớn.

Hãy kiểm tra các ứng dụng được ủy quyền của bạn. AutoGPT là một phần của Quỹ Nguồn mở An toàn (Secure Open Source Fund), và đây là một trong những bài học của Nicholas từ công việc đó. Mọi công cụ họ dùng thử và loại bỏ đều để lại một quyền ủy quyền.

Nếu bạn ngừng sử dụng một ứng dụng GitHub, hãy xóa nó khỏi các ứng dụng được ủy quyền. Hãy thực hiện kiểm tra ngay bây giờ sau luồng này và xem bạn có những gì. Bạn sẽ ngạc nhiên đấy.

Đăng nhập bằng GitHub đã trở nên quá tự động đến mức hầu hết chúng ta chưa bao giờ quay lại để kiểm tra. Tôi đã mở cài đặt của mình trong buổi phát trực tiếp. Anh ấy đã đúng.

Không phải mọi thứ đều là cổng kiểm soát

Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ GitHub Blog. Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.