Cách chúng tôi xây dựng ‘nhà máy phần mềm’ để đưa số lượng issue trên GitHub của Astro về con số 0
Cloudflare chia sẻ cách họ sử dụng các AI subagent để tự động hóa quy trình triage issue trên dự án mã nguồn mở Astro, giúp giảm tồn đọng từ hơn 200 xuống gần bằng 0 mà không cần đóng ticket thủ...
- Giọng nữ Bắc
Trong bối cảnh cộng đồng công nghệ đang tranh luận sôi nổi về khả năng của các “nhà máy phần mềm” (software factory) – nơi các AI agent tự động hóa quy trình sản xuất code – thì các nhà bảo trì dự án mã nguồn mở (open source maintainer) đang phải đối mặt với một thực tế khắc nghiệt: sự bùng nổ của AI khiến khối lượng issue, pull request và báo cáo bảo mật tăng vọt, gây áp lực lớn lên nguồn lực con người.
Table Of Content
Thay vì chỉ tranh luận lý thuyết, đội ngũ phát triển Astro đã áp dụng quy trình tự động hóa thực tế. Trong vài tháng qua, họ đã triển khai một pipeline triage tự động trên repository của Astro. Hệ thống này có khả năng đọc các báo cáo lỗi, tái hiện lỗi trong môi trường sandbox, chẩn đoán nguyên nhân gốc rễ và thậm chí cung cấp các bản preview để người báo cáo kiểm chứng.
Quy trình hoạt động của AI Triage
Cốt lõi của hệ thống này là các AI subagent hoạt động biệt lập bên trong GitHub Actions. Quy trình được thiết kế mô phỏng chính xác các bước mà một kỹ sư thực hiện khi xử lý lỗi thủ công:
- Tái hiện (Reproduce): Clone repository được cung cấp để xác nhận lỗi.
- Chẩn đoán (Diagnose): Thêm logging vào codebase để xác định nguyên nhân gốc rễ.
- Xác minh (Verify): Kiểm tra các bộ test, comment và tài liệu để phân biệt giữa lỗi thực sự và tính năng dự kiến.
- Sửa lỗi (Fix): Chuyển đổi lỗi thành các unit test thất bại, xác định giải pháp và triển khai bản vá.
Để tránh tình trạng AI cố gắng đưa ra giải pháp cho những vấn đề không tồn tại, mỗi giai đoạn được thực hiện bởi một subagent riêng biệt, kết quả sau đó được tổng hợp vào file report.md để đảm bảo tính minh bạch.
Từ Triage đến Framework Flue
Hệ thống này vận hành dựa trên một máy trạng thái (state machine) điều khiển bằng các nhãn (label) trên GitHub. Khi tìm ra bản vá, pipeline sẽ tạo một bản preview thông qua pkg.pr.new và gửi hướng dẫn cài đặt trực tiếp vào issue. Nếu người dùng xác nhận thành công, hệ thống sẽ tự động mở một pull request.
Nhận thấy tiềm năng của mô hình này, đội ngũ đã phát triển Flue – một framework mã nguồn mở, bất khả tri về nền tảng (platform-agnostic), cho phép xây dựng các agent và workflow bền vững mà không phụ thuộc vào GitHub.
Kết quả và bài học kinh nghiệm
Nhờ quy trình này, số lượng issue tồn đọng của Astro đã giảm từ hơn 200 xuống còn khoảng 30 và dự kiến sẽ sớm đạt con số 0. Điều này không làm giảm sự tương tác giữa nhà bảo trì và cộng đồng; ngược lại, nó giải phóng thời gian để các kỹ sư tập trung vào những công việc giá trị hơn như thảo luận RFC, phát triển tính năng mới và hỗ trợ cộng đồng trên Discord.
Đáng chú ý, khi AI thất bại trong việc sửa lỗi, đội ngũ xem đó là tín hiệu cảnh báo về các vấn đề trong codebase, chẳng hạn như: kiến trúc thiếu rõ ràng, thiếu tài liệu hướng dẫn hoặc độ bao phủ của test (test coverage) chưa đủ. Việc bổ sung các thành phần này không chỉ giúp AI làm việc tốt hơn mà còn giúp các cộng tác viên là con người dễ dàng tiếp cận dự án hơn.
Hiện tại, logic triage đã được tách biệt thành repository triagebot-action, cho phép các dự án khác có thể tham khảo, fork và tùy chỉnh để xây dựng “nhà máy phần mềm” riêng cho mình.
Nguồn tham khảo: Cloudflare Blog

No Comment! Be the first one.