Microsoft dùng AI agent chuyển runtime Copilot sang Rust với chi phí 120.000 USD
Microsoft đã chuyển toàn bộ runtime của GitHub Copilot từ TypeScript sang Rust bằng các AI agent, tiêu tốn khoảng 120.000 USD tiền token và ba tuần công của lập trình viên. Kết quả cho thấy tốc độ nhanh hơn gần 16 lần và tiết kiệm bộ nhớ đáng kể, nhưng cũng bộc lộ hàng loạt lỗi hồi quy cho thấy giới hạn của AI khi làm việc với Rust.

Microsoft dùng AI agent chuyển runtime Copilot sang Rust với chi phí 120.000 USD
Microsoft vừa hoàn tất việc chuyển đổi toàn bộ runtime đứng sau GitHub Copilot từ TypeScript sang Rust, trong đó phần lớn công việc do các AI agent thực hiện. Chi phí cho dự án rơi vào khoảng 120.000 USD tiền token AI, cộng thêm ba tuần làm việc của một lập trình viên.
Kết quả ban đầu rất ấn tượng: runtime mới nhanh hơn gần 16 lần và tiêu tốn ít bộ nhớ hơn khoảng 11 lần so với bản TypeScript. Tuy nhiên, quá trình này cũng phơi bày những hạn chế cố hữu của AI khi phải đối mặt với một ngôn ngữ đòi hỏi sự chặt chẽ như Rust.
Từ TypeScript sang Rust: hành trình 14,5 tuần
Runtime của Copilot vốn được viết bằng TypeScript, chạy trên nền Node.js với engine thực thi V8. Đây là lựa chọn hợp lý cho giai đoạn phát triển nhanh, nhưng lại bộc lộ điểm yếu khi mở rộng quy mô: thời gian khởi động chậm và mật độ phục vụ trên mỗi máy chủ thấp.
Quá trình chuyển đổi diễn ra theo từng module, kéo dài 14,5 tuần với hơn 135 lần phát hành. Trung bình mỗi ngày có khoảng 1,3 pull request được mở cho công việc porting.
Tổng cộng, các AI agent đã chuyển đổi 430.000 dòng TypeScript thành 800.000 dòng Rust chạy trong môi trường production. Để giữ mọi thứ đơn giản, nhóm chỉ thay thế từng module TypeScript một, chưa tối ưu cấu trúc của runtime — đó là công việc tiếp theo.
Hiệu năng vượt trội
Rust vốn nổi tiếng với hiệu năng tinh gọn, và lần này không phụ lòng mong đợi.
Một bài kiểm chuẩn đo tốc độ hoàn thành 1.000 vòng đời phiên một lượt, dùng chung một client và 100 pipeline đồng thời, cho kết quả:
- Bản TypeScript gốc: 7,55 vòng/giây
- Bản Rust chạy trong tiến trình: 120 vòng/giây
Điều đó tương đương mức tăng tốc 15,9 lần trên khối lượng công việc cụ thể này.
Về bộ nhớ, một lô 10 client agent tiêu tốn 1.383 MB với TypeScript, trong khi bản Rust chỉ dùng 126 MB để phục vụ cùng số lượng. Đáng chú ý, công việc trong Rust vẫn diễn ra trong cùng tiến trình thay vì phải sinh thêm tiến trình nền bên ngoài như yêu cầu bắt buộc ở TypeScript.
Runtime Copilot len lỏi khắp hệ sinh thái Microsoft
Người dùng thông thường có thể không biết runtime Copilot phổ biến đến mức nào. Nó là nền tảng cho GitHub Copilot CLI, ứng dụng Copilot, SDK và cả GitHub Copilot cloud agent. Nó xuất hiện trong VS Code, Visual Studio, Excel, Outlook, PowerPoint và vô số dịch vụ đám mây khác của Microsoft.
"Đây hoàn toàn không phải là tuyên bố rằng mọi chương trình TypeScript lớn đều nên chuyển sang Rust. Yêu cầu của chúng tôi nhấn mạnh việc nhúng qua C ABI, chi phí khởi động và vận hành ổn định ở mức thấp, cùng việc sử dụng tài nguyên có thể dự đoán được. Rust giúp hiện thực hóa những mục tiêu đó."
Đó là chia sẻ của Stephen Toub, Kỹ sư Distinguished của Microsoft, trong bài viết giải thích toàn bộ quá trình.
Đáng chú ý, dự án dùng chính Copilot để viết lại Copilot, và công cụ này tiếp tục huy động nhiều mô hình ngôn ngữ lớn khác nhau — trong đó có GPT-5.6 Sol và Claude Opus 4.8 — để xử lý từng phần công việc tùy theo thế mạnh của mỗi mô hình.
AI agent: chăm đọc hơn chăm viết
Toub đánh giá việc dùng AI agent là thành công về tổng thể. Ông thừa nhận nếu làm thủ công, dự án này sẽ mất nhiều năm và tốn hàng triệu USD.
Các agent cũng bộc lộ những hành vi bất ngờ. Thứ nhất, chúng dành nhiều thời gian thu thập thông tin hơn là viết code.
"Hình dung phổ biến về AI phun ra code gần như ngược lại với thực tế; ở quy mô này, công việc trông giống một quá trình điều tra lặp đi lặp lại: kiểm tra trạng thái hiện tại, đặt giả thuyết, thực hiện thay đổi có mục tiêu, rồi lặp lại."
Bất ngờ thứ hai là tần suất các phiên làm việc tương tác với nhau — dù là phiên do chúng sinh ra hay những phiên hoàn toàn khác.
Ca chuyển đổi hóc búa nhất là file session.ts, dài hơn 30.000 dòng TypeScript và liên quan tới mọi khía cạnh của runtime. Phiên porting này mất 25 giờ để hoàn tất, khởi đầu bằng 56 phút đọc tài liệu và thực hiện 122 lệnh gọi công cụ để làm rõ thông tin. Sau đó nó sinh ra 15 phiên con, mỗi phiên tự tạo worktree và agent riêng, rồi chúng bắt đầu liên lạc với nhau.
Sử dụng kỹ năng điều phối tích hợp sẵn, một phiên đã tìm ra mọi phiên đang hoạt động khác và gửi tin nhắn tới những phiên có nhiệm vụ trùng lặp để đề nghị phối hợp.
Trình biên dịch là người thầy, không phải nhà tiên tri
Với lợi thế hiệu năng, Rust đã trở thành ngôn ngữ phổ biến để viết lại ứng dụng. Jarred Sumner, cha đẻ của Bun, gần đây cũng đã chuyển JavaScript runtime của Anthropic — vốn chứa khoảng 535.000 dòng Zig — sang Rust, gần như hoàn toàn bằng agent Claude. Công việc đó tốn 165.000 USD tiền token.
Nhưng Toub cũng phát hiện những nguy hiểm tiềm ẩn khi dùng Rust. Với một LLM cũng như một lập trình viên lười biếng, hễ code biên dịch được thì coi như đó là Rust hợp lệ.
Trong suốt quá trình, dự án gặp phải hàng chục lỗi hồi quy — tức những thứ từng hoạt động được nhưng hỏng sau khi cập nhật. Trình biên dịch không hề biết liệu các hàm có đúng thứ tự, công việc có hoàn thành với chi phí chấp nhận được, có đáp ứng các yêu cầu ngầm của lập trình viên, hay thậm chí là có nhất quán nội tại hay không.
Tại RustConf ở Montréal tuần trước, chuyên gia tư vấn Lisa Crossman đã cảnh báo về thói quen coi trình biên dịch như một "nhà tiên tri".
"Rust ngăn agent viết code không an toàn về bộ nhớ; nó không ngăn agent viết sai chương trình một cách đúng đắn."
Nếu khôn ngoan, lập trình viên sẽ coi trình biên dịch như người thầy, giải mã các lỗi như con đường dẫn tới hiểu biết sâu hơn về ngôn ngữ. Trong khi đó, LLM chỉ coi trình biên dịch như một hộp đen, và nó có thể liên tục đập vào đó bằng những cách xử lý thô thiển, kém hiệu quả cho tới khi có một cái vượt qua được.
Trong trường hợp của Toub, các lỗi hồi quy được trình biên dịch chấp thuận có thể xuất phát từ ngữ nghĩa và hành vi mơ hồ, sai lệch nhánh, các tính năng bị bỏ sót khi port, và hành vi khác biệt của code thay thế.
"Điều đó không hề là lập luận chống lại trình biên dịch của Rust. Nhưng 'nếu nó biên dịch được thì nó đúng' chỉ hữu ích như một câu đùa."
Ý nghĩa cho cộng đồng lập trình viên Việt Nam
Câu chuyện này mang lại vài bài học thiết thực cho các kỹ sư phần mềm tại Việt Nam đang cân nhắc ứng dụng AI vào quy trình phát triển.
Thứ nhất, AI agent có thể tạo ra giá trị khổng lồ về mặt thời gian — công việc lẽ ra mất nhiều năm đã hoàn thành trong vài tháng. Với các đội ngũ nhỏ ở Việt Nam, đây là cơ hội để theo đuổi những dự án tái cấu trúc lớn mà trước đây nằm ngoài tầm với về nguồn lực.
Thứ hai, chi phí token không hề nhỏ. Con số 120.000 USD hay 165.000 USD cho thấy AI không phải là giải pháp miễn phí — các doanh nghiệp Việt Nam cần tính toán kỹ bài toán chi phí trước khi lao vào những dự án tương tự.
Thứ ba, và quan trọng nhất, vai trò kiểm duyệt của con người vẫn không thể thay thế. Hàng chục lỗi hồi quy lọt qua trình biên dịch cho thấy các đội ngũ cần duy trì quy trình review nghiêm ngặt, bộ test đầy đủ và sự hiểu biết sâu về ngôn ngữ mục tiêu, thay vì tin tưởng mù quáng vào đầu ra của AI.
Với một thị trường mà Rust đang ngày càng được ưa chuộng nhờ hiệu năng và tính an toàn bộ nhớ, đây là thời điểm tốt để các lập trình viên Việt Nam đầu tư học ngôn ngữ này — không chỉ để viết code, mà còn để hiểu và kiểm chứng code do AI tạo ra.
Bài viết liên quan

Công nghệ
Cactus Needle 3: Mô hình tự động hóa 8-29MB đạt hiệu năng ngang DeepSeek V4 Flash
18 tháng 9, 2026

Công nghệ
Claude Code ra mắt tính năng Projects: chạy nhiều phiên song song, nhưng tốn token nhanh hơn
18 tháng 9, 2026

Công nghệ
Sinh viên ngành khoa học máy tính đối mặt với triển vọng việc làm ảm đạm vì AI
18 tháng 9, 2026