Cockroach Labs biến AI viết code thành 'bệnh viện': 1 triệu dòng lệnh trong 5 tháng
Cockroach Labs đã xây dựng MOLT Sinai — một quy trình phát triển phần mềm mô phỏng bệnh viện giảng dạy, nơi các agent AI đóng vai bác sĩ điều trị lỗi như bệnh nhân. Trong 5 tháng, hệ thống này tạo ra hơn 1 triệu dòng code với chi phí token khoảng 135.000 USD, thay thế công việc từng tốn 9 tháng và 160.000 USD.

Cockroach Labs biến AI viết code thành "bệnh viện": 1 triệu dòng lệnh trong 5 tháng
Cockroach Labs vừa công bố một thử nghiệm gây chú ý: họ xây dựng một quy trình phát triển phần mềm mô phỏng bệnh viện giảng dạy, nơi các agent AI đóng vai bác sĩ và lỗi phần mềm được xem như bệnh nhân. Trong 5 tháng, hệ thống này đã tạo ra hơn 1 triệu dòng code, tốn khoảng 135.000 USD tiền token, và hoàn thành công việc lẽ ra mất 9 tháng với chi phí 160.000 USD.
Bài toán: Tốc độ không phải tất cả
Các agent AI viết code ngày càng nhanh, nhưng tốc độ không đồng nghĩa với chất lượng. Với một sản phẩm cơ sở dữ liệu phân tán như CockroachDB, một lỗi nhỏ trong công cụ di chuyển dữ liệu (migration tool) có thể làm hỏng dữ liệu của khách hàng. Đó là lý do Cockroach Labs không quan tâm đến câu hỏi "bao nhiêu PR mỗi giờ" mà đặt câu hỏi khác: "Bao nhiêu trong số đó là những PR mà chính chúng tôi sẽ thấy xấu hổ nếu merge?"
Thay vì tối ưu thông lượng như nhiều thử nghiệm khác trong ngành, họ tìm kiếm một mô hình đã có kinh nghiệm quản lý công việc rủi ro cao với nhân sự có năng lực không đồng đều, có bàn giao bắt buộc và ý kiến thứ hai bắt buộc. Câu trả lời: bệnh viện giảng dạy.
MOLT Sinai ra đời
MOLT là tên bộ công cụ di chuyển cơ sở dữ liệu của CockroachDB. Khi quyết định mô phỏng quy trình theo bệnh viện, cái tên MOLT Sinai ra đời — vì Mount Sinai là bệnh viện giảng dạy nổi tiếng ở cả Toronto và New York, nơi nhóm phát triển sinh sống.
Từ vựng y tế được áp dụng xuyên suốt:
- Issue là bệnh nhân (patient)
- Merge là xuất viện (discharge)
- Con người phụ trách là Trưởng khoa (Chief of Medicine)
- Review là hội chẩn (second opinion)
Mô hình bệnh viện MOLT Sinai của Cockroach Labs
Bên cạnh các vai chính còn có những vai quen thuộc trong bệnh viện: Y tá trực (Charge Nurse) tuần tra mỗi 30 phút tìm bệnh nhân bị kẹt, Kiểm soát nhiễm khuẩn (Infection Control) có thể khóa toàn bộ quy trình nếu nhánh main gặp sự cố, Phòng An toàn (Safety) viết báo cáo quy trình hàng tuần, và Phòng Nghiên cứu (Research) đề xuất công việc mới.
Cách vận hành: GitHub Actions làm bệnh viện
Toàn bộ hệ thống chạy trên GitHub Actions. Trạng thái của mỗi bệnh nhân nằm trong nhãn (label) của issue. Mỗi giai đoạn là một workflow kích hoạt khi nhãn đầu vào xuất hiện; khi agent hoàn thành, nó ghi nhãn đầu ra — chính là nhãn đầu vào của giai đoạn kế tiếp.
Một số nguyên tắc an toàn cốt lõi:
- Không có code trước khi có kế hoạch. Trước khi sửa lỗi, agent phải tái hiện vấn đề, chẩn đoán phân biệt và đăng kế hoạch điều trị: chẩn đoán, file cần sửa, test cần thêm, rủi ro, câu hỏi mở. Một agent khác đóng vai Bác sĩ thẩm định (Review Attending) phê duyệt hoặc từ chối kế hoạch đó.
- Không tự ý mở rộng phạm vi. Nếu phạm vi thay đổi, agent phải dừng lại và trình kế hoạch mới.
- Không được vô hiệu hóa test. Nếu test thất bại, test đúng cho đến khi chứng minh ngược lại. Mọi đánh giá code bắt đầu bằng việc vô hiệu hóa thay đổi và kiểm tra xem test mới có thất bại không.
- Không hoảng loạn. Khi bị kẹt, agent viết bàn giao theo định dạng I-PASS (mượn từ bệnh viện thật) rồi chuyển lên cấp trên.
- Y tá xuất viện kiểm tra lại người đánh giá. Cổng cuối trước khi merge không đánh giá lại code mà xác minh quy trình review đã diễn ra đúng: có phê duyệt, có điền template, không còn luồng thảo luận mở, CI xanh, lịch sử commit sạch.
- Kiểm tra tiền lệ trước khi làm phiền Trưởng khoa. Mọi quyết định của con người được ghi vào nhật ký tiền lệ chỉ-thêm (append-only). Agent muốn leo thang phải đọc nhật ký trước và tuân theo tiền lệ nếu có.
Kết quả: 1 triệu dòng code, 1.238 PR
Từ ngày 21/4 đến 11/9, trong khoảng 5 tháng, pipeline đã merge hơn 1.000.000 dòng code, chia thành các thay đổi đủ nhỏ để agent đánh giá tự tin. Có 1.238 PR được merge, và đáng chú ý là gần một nửa số issue trong repo do chính bệnh viện tạo ra: issue con từ phân rã, đề xuất từ Phòng Nghiên cứu, hành động khắc phục từ Phòng An toàn.
Ví dụ nổi bật: hỗ trợ IBM Db2 cho MOLT. Khi thêm hỗ trợ Oracle năm 2024, công việc tương đương mất 9 tháng và khoảng 160.000 USD. Db2 mất chưa đầy 2 ngày và không có dòng code nào do con người viết. Hóa đơn token là 4.172 USD — nhanh hơn 164 lần và rẻ hơn 38 lần.
Biểu đồ chi phí token theo thời gian của MOLT Sinai
Sản phẩm thực tế lớn nhất là Migration Assistant — công cụ dựa trên AI hướng dẫn người dùng di chuyển hoàn chỉnh từ Postgres sang CockroachDB, gần như được viết hoàn toàn bởi bệnh viện. Công cụ này hiện đang ở giai đoạn xem trước (preview).
Chi phí và bài học về model
Từ tháng 4, MOLT Sinai tiêu tốn hơn 135.000 USD tiền token Claude, trung bình khoảng 84 USD mỗi bệnh nhân (mỗi issue). Mỗi issue thường nằm viện 1-2 ngày, phần lớn là chờ người đánh giá.
Ban đầu hệ thống dùng model Opus cho mọi giai đoạn. Sau đó chuyển sang: lập kế hoạch bằng model mạnh nhất, kế hoạch chọn model cho phần triển khai, và có thể leo thang lên model mạnh hơn khi cần. Cách này giúp giữ chi phí xuống trong khi vẫn dùng được model mạnh khi cần thiết.
Một phát hiện thú vị: hướng dẫn (prompt) của agent bị "mục rữa" như code. Có 25 file skill với hơn 100.000 từ, trong đó khoảng 23% được xác định là dư thừa. Riêng Y tá xuất viện nạp khoảng 29.000 token hướng dẫn mỗi lần chạy, trước khi đọc một dòng PR nào. Nhóm tác giả thừa nhận "prompt mục rữa giống như code: chúng tôi cứ thêm quy tắc mà không bao giờ xóa".
Những hạn chế chưa giải quyết
Mô hình bệnh viện cũng có mặt trái:
- Quan liêu hóa. Một chỉnh sửa chữ trong giao diện từ "Validating" sang "Verifying" trải qua 5 vòng làm lại và lên tới Trưởng khoa. Một đánh giá code chặn PR không vì lỗi code mà vì mô tả PR có lỗi chính tả.
- Vòng lặp không hội tụ. Issue 1777 với bản sửa một dòng mất 11 vòng làm lại trong 2 ngày. Quy trình đánh giá thiếu "cầu dao ngắt mạch cho vòng lặp không hội tụ" — đã được bổ sung sau đó.
- Bệnh viện tự tạo việc quá nhiều. Phòng Nghiên cứu ban đầu chạy mỗi 3 giờ và tạo ra lượng issue không thể duyệt kịp, phải giảm xuống hàng ngày và giới hạn tối đa 10 đề xuất chờ duyệt.
- Không thực sự dạy học. Đây là điểm nhóm tác giả trăn trở nhất: mô hình rất hiệu quả với kỹ sư giàu kinh nghiệm, nhưng lại không giúp kỹ sư trẻ học được phán đoán và tư duy phản biện. Họ đang xây dựng tính năng cho phép con người tự viết kế hoạch để được agent đánh giá, hoặc tự viết code để học cách điều hướng codebase.
Ý nghĩa với ngành phát triển phần mềm
Thử nghiệm của Cockroach Labs là một trong những minh chứng rõ ràng nhất cho thấy agent AI viết code đã đủ chín để tạo ra giá trị thực tế, không chỉ ở dạng demo. Điểm khác biệt cốt lõi không nằm ở model mà ở quy trình kiểm soát chất lượng được thiết kế tỉ mỉ xung quanh nó.
Với các đội phát triển tại Việt Nam đang tìm cách đưa AI vào quy trình làm việc, bài học đáng giá nhất có lẽ là: đừng bắt đầu bằng câu hỏi "làm sao viết code nhanh hơn" mà bằng câu hỏi "làm sao để không merge sai". Kiến trúc bệnh viện — với cổng kiểm tra bắt buộc, ý kiến thứ hai, và nhật ký tiền lệ — là một bản thiết kế tham khảo đáng nghiên cứu cho bất kỳ nhóm nào muốn giao việc cho agent nhưng vẫn giữ được chất lượng sản phẩm ở mức production.
Hệ thống Sinai hiện đã được áp dụng ở 4 repo của Cockroach Labs, và nhóm đang thử nghiệm đưa bệnh viện trở lại chế độ tự động hoàn toàn cho một số loại issue nhất định.

