Tuần này, Meta đã phát hành Muse Code, một tác nhân lập trình dựa trên terminal được xây dựng trên mô hình Muse Spark 1.2 của hãng, đưa nó vào cuộc cạnh tranh trực tiếp với Claude Code của Anthropic, Codex của OpenAI và Cursor. Theo cách Mark Zuckerberg tự diễn đạt, lời chào hàng là công cụ này đảm nhiệm “các tác vụ kỹ thuật phần mềm hoàn chỉnh trên những kho mã lớn: lập kế hoạch thay đổi, viết mã, xác thực kết quả.” Điểm đáng chú ý là cách nó xử lý các công việc lớn: “Khi một công việc đủ lớn, nó sẽ phân nhánh thành các tác nhân phụ riêng biệt làm việc song song trong những worktree cô lập. Bản sao làm việc của bạn không bao giờ bị chạm tới.” Zuckerberg tuyên bố một lần chạy thử đã khiến nó “xây dựng đồng thời sáu tính năng cho một trò chơi mà không xảy ra va chạm nào” — đây là tuyên bố từ nhà cung cấp, không phải một benchmark được xác minh độc lập, nên hãy hoài nghi về con số cụ thể này. Tuy vậy, mô hình đằng sau đó là có thật: đây hiện là lời chào hàng tiêu chuẩn trong toàn ngành, không phải một tính năng chỉ có ở Meta.
Điều đó có nghĩa là khác biệt giữa các công cụ này đang nhanh chóng thu hẹp. Lập kế hoạch, viết mã, xác thực, song song hóa — mọi phòng thí nghiệm lớn đều đang hội tụ về cùng một vòng lặp bốn bước. Nếu bạn đang xây dựng sự nghiệp xoay quanh ý tưởng “Tôi giỏi khiến một tác nhân làm việc,” thì kỹ năng đó đang bị chính các nhà cung cấp biến thành hàng hóa ngay trong thời gian thực. Điều chưa bị biến thành hàng hóa, và cũng là điều không bản phát hành nào trong số này thực sự giải quyết được, là chuyện xảy ra sau khi phân nhánh: vẫn phải có người quyết định liệu sáu phần mã được viết song song bởi sáu tác nhân phụ không thể nhìn thấy công việc của nhau có đúng riêng lẻ và nhất quán khi xét tổng thể hay không.
Worktree cô lập giải quyết vấn đề xung đột khi hợp nhất, không giải quyết vấn đề tính đúng đắn
Chạy các tác nhân phụ trong những worktree riêng biệt là một cải tiến kỹ thuật thực sự — nó ngăn một tác nhân ghi đè lên các chỉnh sửa của tác nhân khác. Nhưng điều đó cũng có nghĩa là các tác nhân xây dựng sáu tính năng kia hoàn toàn không biết về quyết định của nhau trong lúc làm việc. Nếu hai tác nhân độc lập cùng thêm một hàm trợ giúp tương tự, đưa vào logic xác thực hơi khác nhau cho cùng một đầu vào, hoặc đưa ra những giả định không tương thích về cùng một cấu trúc dữ liệu, thì việc cô lập sẽ không phát hiện được — nó chỉ trì hoãn va chạm từ “xung đột khi hợp nhất” thành “lỗi tích hợp được đưa vào bản phát hành.” Đây là một dạng thất bại khác về mặt cấu trúc so với dạng mà các công cụ này được thiết kế để ngăn chặn, và đó là dạng mà giờ đây con người phải phát hiện.
Điều này cần được nói thật chính xác, vì rất dễ đánh đồng “tác nhân đã xác thực đầu ra của chính nó” với “đầu ra đã được xác thực.” Việc một tác nhân kiểm tra xem mã của nó có biên dịch được và vượt qua các bài kiểm thử do nó viết hay không không giống với việc một người đánh giá đặt câu hỏi liệu sáu thay đổi song song có nhất quán với nhau và với phần còn lại của cơ sở mã hay không. Đó là những công việc khác nhau, và chỉ một trong số đó mới là thứ các bộ khung này thực sự đang bán.
Kỹ năng thực sự đang trở nên khan hiếm
Nếu bạn làm việc trong hoặc xung quanh lĩnh vực phần mềm — kỹ sư, PM, QA, hỗ trợ kỹ thuật, thậm chí hiện nay là người không làm kỹ thuật nhưng dùng các tác nhân này để phát hành những công cụ nhỏ — thì hệ quả thực tế là “đánh giá đầu ra nhiều tệp, nhiều tác nhân để kiểm tra tính nhất quán” đang trở thành một lĩnh vực riêng, khác với viết mã và cũng khác với việc viết lời nhắc tốt cho một tác nhân. Một vài phần cụ thể gồm:
- Hiệu chỉnh mức độ tin cậy. Biết được, trước khi đọc một dòng mã, loại thay đổi nào cần được xem xét cẩn thận (bất kỳ thứ gì chạm đến trạng thái dùng chung, một hợp đồng API, hoặc thứ mà nhiều hơn một tác nhân phụ có thể cũng đã chạm vào) so với loại nào có thể đọc lướt an toàn.
- Đọc đối chiếu các diff. Khi một tác vụ được phân nhánh thành công việc song song, đơn vị đánh giá không phải là một diff — mà là toàn bộ các diff khi đặt cạnh nhau. Điều đó có nghĩa là phải chủ động kiểm tra logic bị lặp, hành vi khác nhau trên cùng một đầu vào, cũng như cách đặt tên hoặc các giả định không nhất quán giữa các phần, chứ không chỉ đọc từng tệp một cách cô lập.
- Viết đặc tả cho một bên thực thi không giám sát. Cách khắc phục rủi ro va chạm ở đầu vào là một mô tả tác vụ đủ chính xác để các tác nhân song song không cần phối hợp, vì ngay từ đầu ranh giới của chúng đã được vạch đúng. Viết một đặc tả như vậy gần với kỹ năng thiết kế hệ thống hơn là kỹ năng viết lời nhắc.
Xét một cách trừu tượng thì không điều gì trong số này là mới — việc đánh giá mã và thiết kế giao diện vốn luôn quan trọng. Điều mới là khối lượng và điểm mù: khi một người có thể kích hoạt sáu luồng công việc song song trong một buổi chiều, lượng đánh giá xuyên suốt cần thiết cũng tăng theo, nhưng các công cụ giúp việc đánh giá xuyên suốt trở nên dễ dàng vẫn chưa theo kịp các công cụ giúp việc tạo mã song song trở nên dễ dàng.
Thực sự nên làm gì về việc này trong tháng này
Nếu đội của bạn đang thử nghiệm một trong những bộ khung này — Muse Code, Claude Code, Codex hoặc một đối thủ cạnh tranh — thì đáng làm ngay một vài việc ít tốn kém, trước khi các thói quen trở nên khó thay đổi:
- Khi đánh giá công việc do tác nhân tạo ra, hãy hỏi rõ “có thứ gì khác trong tác vụ này cũng chạm vào cùng tệp, hàm hoặc kiểu dùng chung không?” trước khi phê duyệt — hầu hết checklist đánh giá không gợi nhắc điều này vì chúng được viết cho các diff do một tác giả thực hiện.
- Nếu đội của bạn chưa có định dạng đặc tả bằng văn bản để giao tác vụ cho một tác nhân, hãy tình nguyện soạn thảo một định dạng. Người chịu trách nhiệm về “cách chúng ta giao nhiệm vụ cho tác nhân” cuối cùng sẽ có ảnh hưởng lớn hơn nhiều đến lượng nợ đánh giá mà đội tích lũy về sau.
- Hãy duy trì khả năng sử dụng thành thạo nhiều hơn một bộ khung này thay vì đặt cược sự thông thạo của bạn vào bất kỳ bộ nào mà công ty hiện tại chọn. Chúng khác nhau đủ nhiều — trong cách xử lý worktree, mức độ tích cực khi song song hóa, và những gì chúng đưa ra để đánh giá — đến mức việc chuyển sang một công cụ khác mà chưa có sự chuẩn bị sau này sẽ tiêu tốn thời gian thực sự.
Tiêu đề nổi bật của chu kỳ phát hành này sẽ xoay quanh việc tác nhân của phòng thí nghiệm nào nhanh hơn hoặc rẻ hơn. Tín hiệu nghề nghiệp bền vững hơn thì thầm lặng hơn: các công ty phát hành những công cụ này đều đang tối ưu hóa rõ ràng cho việc tạo ra nhiều mã hơn, nhanh hơn, theo cách song song. Cho đến nay, họ chưa phát hành một cách tương ứng tốt hơn để kiểm tra tính nhất quán của mã đó. Khoảng trống này là nơi nhu cầu tuyển dụng trong vòng tiếp theo sẽ xuất hiện, và nó sẽ xuất hiện dưới dạng kỹ năng đánh giá và tư duy hệ thống, chứ không phải kỹ năng viết lời nhắc.