Biên tập viên lưu ý: Khi các AI Agent trở nên ngày càng rẻ hơn và dễ dàng gọi hơn, ngành phát triển phần mềm đang bước vào một giai đoạn mới: vấn đề không còn là liệu có thể khởi động thêm nhiều Agent hay không, mà là con người có còn đủ sự chú ý để quản lý, đánh giá và tổng hợp sản phẩm của chúng hay không.
Bài viết này đưa ra một khái niệm rất truyền cảm hứng – “thuế sắp xếp”. Chi phí để khởi động Agent rất thấp, chỉ cần một câu Prompt hoặc một cú nhấp chuột; nhưng chi phí thực sự lớn nằm ở các bước tiếp theo: kiểm tra xem kết quả có chính xác không, hiểu ảnh hưởng của nó đến kiến trúc hệ thống, xử lý xung đột giữa các Agent, và cuối cùng là quyết định những mã nào có thể được đưa vào nhánh chính. Những công việc này không thể được song song hóa một cách đơn giản, mà vẫn phải quay trở lại nguồn tài nguyên tuần tự duy nhất: phán đoán của con người.
Tác giả so sánh nhà phát triển với "GIL" trong hệ thống AI Agent—một khóa đơn luồng hạn chế thông lượng tối đa của hệ thống song song. Nhiều Agent có thể chạy đồng thời, nhưng mỗi khi đến giai đoạn phán đoán kiến trúc, kiểm tra mã và hợp nhất xung đột, chúng đều phải quay lại qua bộ não của nhà phát triển. Do đó, càng nhiều Agent không nhất thiết đồng nghĩa với sản lượng cao hơn, mà có thể chỉ làm cho hàng đợi tác vụ cần kiểm tra dài hơn, khiến nhà phát triển rơi vào tình trạng chuyển đổi ngữ cảnh thường xuyên hơn và mệt mỏi nhận thức.
Đây cũng là một điểm thường bị bỏ qua trong làn sóng phổ biến hiện nay của các công cụ lập trình AI: cảm giác hiệu quả và năng suất thực tế không phải lúc nào cũng đi đôi với nhau. Một bảng điều khiển Agent chạy đầy màn hình có thể tạo ra ảo giác “năng suất cao”; nhưng nếu các nhà phát triển không thực sự hiểu, xem xét và tích hợp những thay đổi này, hệ thống cuối cùng có thể tích lũy không phải là năng suất, mà là nợ kỹ thuật và nợ nhận thức.
Do đó, điều bài viết này thực sự thảo luận không phải là “làm thế nào để sử dụng nhiều Agent hơn”, mà là “làm thế nào để thiết kế lại quy trình làm việc xung quanh sự chú ý của con người”. Trong thời đại Agent, năng lực then chốt không chỉ là biết đặt câu hỏi hay phân công nhiệm vụ, mà còn là biết những nhiệm vụ nào có thể giao cho máy xử lý song song, những nhiệm vụ nào phải giữ lại để con người phán quyết; khi nào nên xem xét hàng loạt, khi nào nên dừng việc sắp xếp và quay lại tập trung vào một vấn đề cốt lõi.
AI đang mở rộng khả năng xử lý đồng thời trong sản xuất phần mềm, nhưng sự chú ý của con người vẫn là nguồn tài nguyên khan hiếm và không thể sao chép nhất trong hệ thống. Các luồng công việc Agent thực sự trưởng thành không phải là ném tất cả nhiệm vụ cho máy móc, mà là thiết kế cẩn thận kiến trúc sự chú ý của chính bạn, giống như thiết kế một hệ thống sản xuất.
Dưới đây là bản gốc:
Bây giờ, việc khởi động nhiều AI Agent đã trở nên dễ dàng hơn. Nhưng việc nhiều Agent chạy đồng thời không có nghĩa là “bạn” cũng tăng lên. Dải băng thông nhận thức của bạn không thể được song song hóa. Mọi khả năng phán đoán thực sự để hướng dẫn chúng, đánh giá kết quả và hợp nhất chỉnh sửa cuối cùng đều phải đi qua cùng một bộ xử lý tuần tự — chính là bản thân bạn.
所谓「编排税」,本质上就是你忘记这一点后所付出的代价。而唯一真正的解法,是像设计任何并发系统一样,开始设计你自己的注意力。
Trước đây, tôi đã tham gia một buổi thảo luận nhóm tại Google I/O cùng Richard Seroter, Aja Hammerly và Ciera Jaspan để nói về hiện trạng của kỹ thuật phần mềm hiện nay và cách nó có thể phát triển trong tương lai. Khi gần kết thúc, Richard hỏi chúng tôi: Sau khi nghe xong, điều quan trọng nhất mà các nhà phát triển nên ghi nhớ và thay đổi là gì?

Tôi đã nói ra điều mà tôi đã suy nghĩ lặp đi lặp lại trong vài tháng qua: cảm giác mình rất bận rộn không đồng nghĩa với việc thực sự có kết quả. Bạn có thể chạy đồng thời 20 Agent và cảm thấy mình bận rộn đến mức không thể nào xoay xở được. Nhưng điều đó không có nghĩa là bạn đã hoàn thành khối lượng công việc tương ứng với 20 Agent đó.
Trong phần đầu của cuộc hội thoại, Richard đã đặt tên cho vấn đề này. Ông nói: “Điều bạn vừa đề cập chính là sắp xếp thuế. Bạn không thể quản lý thành công 20 Agent trong đầu mình.”
Anh ấy nói hoàn toàn đúng. Tôi muốn phân tích khái niệm này một cách đầy đủ hơn, vì đây không phải là vấn đề về kỷ luật bản thân, mà là vấn đề về kiến trúc.
Trong cuộc bàn tròn đó, có một câu tôi gần như vô tình thốt ra, sau đó luôn ám ảnh trong tâm trí tôi: Việc chạy nhiều Agent không có nghĩa là trên thế giới này xuất hiện thêm một phiên bản của bạn.
Sự bất đối xứng mà mọi người chưa tính đến
Có một sự bất đối xứng ẩn trong luồng công việc của tác nhân.
Việc khởi động một Agent rất rẻ. Bạn chỉ cần gõ một vài phím hoặc viết một câu Prompt. Nhưng để hoàn thành vòng lặp của Agent thì không hề rẻ chút nào. Luôn cần có người kiểm tra xem kết quả nó trả về có chính xác không, và đồng bộ lại những thay đổi mà các Agent khác đã thực hiện.
Người này chính là bạn. Và bạn chỉ có một.
Tháng trước, tôi đã đề cập một phần vấn đề này trong bài viết “Giới hạn song song Agent của bạn”, chủ yếu thảo luận về sự lo âu bối cảnh: bạn không biết luồng song song nào đang âm thầm thất bại. Bài viết này muốn nói về cấu trúc đằng sau chi phí này.
Khi bạn bắt đầu xem việc phát triển Agent như một hệ thống đồng thời, bạn sẽ nhận ra rằng con người chỉ là một thành phần trong hệ thống đó—một thành phần tuần tự rất chậm.
Bạn chính là tài nguyên đơn luồng đó
Nếu bạn từng viết mã đồng thời, bạn thực sự đã có trực giác để hiểu vấn đề này. Chỉ là trước đây bạn đã sử dụng trực giác đó ở nơi sai lầm.
Python có khóa giải thích viên toàn cục, hay còn gọi là GIL. Bạn có thể tạo ra bất kỳ số lượng luồng nào, nhưng cùng một thời điểm chỉ có một luồng có thể thực thi mã byte Python, vì tất cả chúng đều phải lấy được khóa này trước.
Bạn chính là GIL của AI Agent bạn.
Chúng đều có thể chạy đồng thời. Nhưng bất cứ khi nào công việc của chúng yêu cầu hiểu rõ kiến trúc hệ thống, hoặc cần giải quyết xung đột hợp nhất, thì phải lấy được chìa khóa này trước. Và chỉ có một chìa khóa duy nhất, do bạn giữ.
Định luật Amdahl diễn đạt điều này một cách rất chính xác: giới hạn tăng tốc do song song hóa mang lại phụ thuộc vào phần công việc vẫn phải được thực hiện tuần tự. Nếu quy trình của bạn có một phần lớn không thể song song hóa, thì dù bạn có đầu tư bao nhiêu lõi, cuối cùng bạn cũng sẽ chạm vào một giới hạn cứng.
Trong phát triển Agent, phần tuần tự này chính là khả năng phán đoán.
Việc khởi động 8 Agent sẽ không làm giảm thời gian đưa ra quyết định của bạn. Nó chỉ làm cho hàng đợi chờ bạn xử lý trở nên dài hơn.
Đây là một sự thật rất cũ trong kỹ thuật hiệu năng, nhưng nhiều người vẫn cảm thấy ngạc nhiên khi biết điều này: Tối ưu hóa các phần không phải điểm nghẽn sẽ không cải thiện tổng thông lượng. Bạn chỉ đang chất thêm nhiều công việc chưa hoàn thành trước điểm nghẽn.
Agent được tối ưu hóa là phần vốn không phải là ràng buộc. Ràng buộc thực sự là giai đoạn review, và thông lượng toàn bộ hệ thống đúng bằng thông lượng của giai đoạn này.
Sự sắp xếp thuế là khoảng trống cấu trúc giữa năng lực sản xuất của Agent và những gì bạn thực sự có thể hợp nhất. Nó xảy ra khi bạn để một tài nguyên đơn luồng quản lý một hệ thống đồng thời.
Căng cứng không thể giải quyết được giới hạn cấu trúc
Trong buổi bàn tròn đó, tôi đã nói một câu: Tôi chưa bao giờ cảm thấy công cụ của mình hiệu quả đến thế, nhưng cũng chưa bao giờ mệt mỏi như bây giờ.
Cả hai cảm giác này đều hoàn toàn chân thực và xuất phát từ cùng một nguyên nhân.
Sự mệt mỏi này có một nguồn gốc rất cụ thể: đó là cảm giác khi liên tục ép một bộ xử lý tuần tự ở mức 100% mà không để lại bất kỳ khoảng trống nào.
Mỗi khi bạn quay lại kiểm tra một Agent đã rời khỏi phạm vi chú ý của bạn, bạn sẽ phải trả chi phí chuyển đổi ngữ cảnh. Bạn phải xóa sạch bộ não và bắt đầu tải lại ngữ cảnh khác từ đầu.
CPU có thể hoàn thành việc này trong vài micro giây, nhưng dù vậy, các kiến trúc sư vẫn cố gắng tránh chuyển đổi thường xuyên. Trong khi đó, bạn sẽ mất vài phút để hoàn thành, và không bao giờ có thể khôi phục hoàn toàn ngữ cảnh.
5 agent không phải là lặp lại cùng một khối lượng công việc 5 lần. Đó là 5 lần tải lại ngữ cảnh kiểu khởi động lạnh, cộng thêm một tiến trình não bộ chạy liên tục ở nền, không ngừng lo lắng hiện tại bạn nên kiểm tra agent nào.
Bạn không thể giải quyết một hạn chế về cấu trúc bằng cách “cố gắng hơn”. Loại thuế này luôn phải trả.
Nếu bạn cố gắng chống lại, nó cuối cùng sẽ xuất hiện dưới một hình thức khác: либо là việc xem xét mã trở nên ngày càng nông cạn, либо bạn rơi vào trạng thái “đầu hàng nhận thức” — vì việc đưa ra phán đoán riêng tốn quá nhiều sự chú ý, bạn cứ thế chấp nhận luôn mã do Agent viết ra.
Bạn ли tự nguyện trả khoản thuế này, ли để nó từ từ phá hủy sự hiểu biết của bạn về hệ thống của chính mình.
Hãy thiết kế sự chú ý của bạn như một hệ thống thiết kế
Vì vậy, bạn phải đối xử với sự chú ý của mình như một nguồn tài nguyên tuần tự khan hiếm.
Bạn sẽ không thiết kế một hệ thống phân tán mà hoàn toàn không xem xét các điểm nghẽn. Vậy hãy dành cho bộ não của bạn sự tôn trọng tương tự.
Dưới đây là một số phương pháp thực sự hiệu quả với tôi:
Mở rộng đội ngũ Agent dựa trên khả năng đánh giá, chứ không phải dựa trên khả năng giao diện người dùng.
Một hệ thống đồng thời tốt sẽ sử dụng cơ chế phản áp để ngăn chặn sự tăng trưởng vô hạn của hàng đợi. Người sản xuất cần giảm tốc độ để phù hợp với khả năng xử lý của người tiêu thụ.
Số lượng Agent của bạn chính là số nhà sản xuất, khả năng review của bạn chính là người tiêu thụ. Số lượng Agent song song phù hợp nên là số lượng mà bạn có thể nghiêm túc thực hiện review mã. Đối với đa số mọi người, con số này thường chỉ là một số đơn vị rất nhỏ.
Các công cụ AI chắc chắn sẽ rất sẵn lòng giúp bạn khởi động 20 Agent, nhưng đó chỉ là một tính năng giao diện người dùng, không có nghĩa là bạn thực sự có khả năng quản lý chúng.
Phân loại nhiệm vụ.
Khi Richard hỏi tôi cách xử lý việc này, tôi đã đề cập đến phương pháp này. Tôi sẽ chia nhiệm vụ thành hai nhóm.
Đống đầu tiên là công việc tương đối độc lập, tôi sẵn sàng giao cho Agent chạy ở nền đám mây. Những nhiệm vụ này có thể được thực hiện bất đồng bộ, thường chỉ cần tôi kiểm tra một lần vào cuối cùng.
Đống thứ hai là các nhiệm vụ phức tạp, công việc thực sự chính là phán đoán. Ví dụ: một lỗi kỳ lạ hoặc một thiết kế kiến trúc.
Sai lầm lớn nhất là cố gắng song song hóa cả các nhiệm vụ loại hai. Việc xử lý song song nhiều nhiệm vụ phức tạp không làm tăng sản lượng của bạn, mà chỉ khiến chiếc khóa bị tranh giành liên tục, cuối cùng tất cả các kết quả đều trở nên kém hơn.
Xem hàng loạt.
Mỗi lần chuyển đổi ngữ cảnh đều khiến bạn tốn chi phí rất cao. Việc ngồi một lúc để xem xét kết quả của 4 Agent sẽ rẻ hơn nhiều so với việc xem một cái, làm việc khác, rồi khởi động lại để tiếp tục xem cái tiếp theo.
Cho Agent dây kéo dài hơn. Để công việc tích lũy một chút, sau đó xử lý chúng thành một lô.
Chỉ sử dụng chiếc khóa này để xác định.
Đừng lãng phí bộ não của bạn vào những việc mà máy móc có thể tự xác minh. Hãy để Agent viết các bài kiểm tra có thể vượt qua hoặc tạo ảnh chụp màn hình.
Để chúng tự chứng minh phần 80% nhàm chán nhưng có thể xác minh được. Như vậy, sự chú ý quý giá của bạn chỉ cần dành cho 20% đòi hỏi phán xét con người.
Bảo vệ thời gian chuỗi của bạn.
Bottleneck cần thời gian tốt nhất của bạn, chứ không phải những khoảng thời gian lẻ còn lại giữa các lần kiểm tra Agent.
Đôi khi, hành động đòn bẩy cao nhất lại là hoàn toàn ngừng sắp đặt: tắt chiếc máy tính đầy Agent đi, chỉ tập trung suy nghĩ về một vấn đề và giữ chặt chìa khóa đó xuyên suốt quá trình.
Sắp xếp không phải là công việc thực sự. Đó chỉ là chi phí phát sinh xung quanh công việc.
Aja chỉ ra rằng khả năng kiến trúc hiện đã trở thành kỹ năng cấp bách nhất: bạn cần biết nhiệm vụ nào phù hợp để giao cho một Agent, và nhiệm vụ nào quá lớn đối với nó.
Tôi còn muốn bổ sung một điểm: chính bạn cũng là một thành phần trong hệ thống này. Sự chú ý của bạn có một lượng thông qua tuần tự đã biết và rất thấp. Hệ thống ли tôn trọng con số này, ли sẽ bypass nó bằng cách lặng lẽ hạ tiêu chuẩn của bạn.
Bận rộn không đồng nghĩa với năng suất cao
Điều này rất quan trọng vì mô hình thất bại này gần như không thể nhìn thấy được đối với chính bạn.
20 agent đang chạy sẽ mang lại cho bạn cảm giác “năng suất bùng nổ”. Bảng điều khiển đầy ắp, mọi thứ đều đang hoạt động. Nhưng cảm giác này đã tách rời khỏi việc thực sự hợp nhất mã chất lượng cao vào nhánh chính.
Bạn có thể bận rộn đến cực hạn nhưng lại几乎没有 tạo ra sản phẩm thực sự. Về mặt trải nghiệm bên trong, hai điều này gần như giống hệt nhau.
Ciera đã nhắc đến nghiên cứu của Margaret-Anne Storey về nợ. Chúng tôi đã thảo luận về nợ kỹ thuật và nợ nhận thức.
Không thanh toán thuế sắp xếp sẽ khiến bạn tích lũy cả hai khoản nợ này.
Bạn đã gộp những thứ bạn chưa từng đọc kỹ. Mô hình tâm lý của bạn về kho mã đã lỗi thời hoàn toàn. Những vấn đề này sẽ không xuất hiện trên bảng điều khiển hôm nay. Chúng sẽ bộc lộ khi hệ thống gặp sự cố trong môi trường sản xuất—lúc đó bạn nhìn vào hệ thống và đột nhiên nhận ra mình đã không còn biết nó hoạt động như thế nào nữa.
Vì vậy, kết luận thực sự là: Khởi động Agent không phải là năng lực. Bất kỳ ai cũng có thể chạy 20 cái.
Năng lực thực sự là thiết kế hệ thống xung quanh nguồn tài nguyên tuần tự không thể sao chép hoặc song song hóa.
Nguồn lực này chính là sự chú ý của bạn.
Hãy thiết kế nó như một thành phần then chốt phụ thuộc trong môi trường sản xuất.
