Một agent mà cả nhóm của bạn đều có thể @-nhắc đến

8 phút đọc

Cũng có bằng English, Español, Português, 简体中文, 日本語, 한국어, Deutsch, Français, ไทยTe Reo Māori.

Các công cụ để làm việc cùng agent lập trình đang thực sự trở nên tốt hơn, và nhanh chóng. Đầu tiên là tính năng tự động hoàn thành. Sau đó là các agent có thể nhận một prompt và tạo ra một diff. Giờ đây, đỉnh cao công nghệ là trung tâm điều khiển cá nhân: một ứng dụng desktop hoặc terminal, nơi một nhà phát triển điều phối nhiều agent cùng lúc — các worktree song song, các skill được đóng gói sẵn, các tác vụ tự động theo lịch, và một hàng đợi các lượt chạy chờ xem xét. Đây là một bước tiến thực sự, và nếu bạn kiếm sống bằng việc viết code, nó đáng để sở hữu.

Nhưng hãy nhìn xem tất cả những thứ đó tồn tại ở đâu: trên laptop của một người, bên trong phiên làm việc của một người, chỉ hiện ra trước đúng một cặp mắt. Dù quản lý bao nhiêu agent đi nữa, một trung tâm điều khiển mặc định vẫn chỉ dành cho một người chơi. Mà phần mềm thì không phải là một trò chơi một người chơi.

Từ tự động hoàn thành đến trung tâm điều khiển

Mỗi thế hệ công cụ agent đều khắc phục nút thắt cổ chai của thế hệ trước. Tự động hoàn thành khắc phục việc gõ phím. Các agent từ prompt-đến-diff khắc phục vấn đề trang trắng. Các trung tâm điều khiển khắc phục vòng lặp "một prompt, một diff, một lần chờ" bằng cách cho phép một nhà phát triển chạy nhiều agent song song.

Điều mà không thế hệ nào khắc phục được là đơn vị sở hữu vẫn không đổi: editor của tôi, phiên làm việc của tôi, agent của tôi. Giao diện trở nên mạnh mẽ hơn, nhưng nó chưa bao giờ rời khỏi chiếc laptop.

Giới hạn của mô hình một người chơi

Một agent cá nhân có một vấn đề mang tính cấu trúc mà không sự trau chuốt nào có thể khắc phục: mọi thứ nó học được đều bị mắc kẹt trong một phiên làm việc riêng tư.

Khi bạn và agent của bạn cùng tìm ra lý do tại sao dịch vụ thanh toán lại được cấu trúc như vậy, sự hiểu biết đó chỉ tồn tại trong lịch sử trò chuyện của bạn. Khi agent của đồng nghiệp bạn gặp phải câu hỏi tương tự vào ngày mai, nó sẽ bắt đầu lại từ đầu — và đồng nghiệp của bạn cũng vậy, nếu bạn đang đi nghỉ. Nhân điều đó lên cho cả một nhóm, bạn sẽ có một dạng "mất trí nhớ tổ chức" kỳ lạ: công ty chạy hàng chục phiên làm việc thông minh mỗi ngày nhưng hầu như không giữ lại được gì từ bất kỳ phiên nào trong số đó.

Có một vấn đề thứ hai: việc giao việc. Nếu agent sống trong các công cụ của bạn, chỉ có bạn mới có thể giao việc cho nó, và chỉ có bạn mới thấy được nó đã làm gì. Câu hỏi "Agent của bạn có thể xem cái này không?" trở thành một yêu cầu gửi đến bạn, đi qua sự chú ý của bạn, được thực thi trên máy của bạn. Agent có một người quản lý, chứ không có một nhóm.

Điều gì thay đổi khi agent được chia sẻ

Chúng tôi xây dựng TaskGoblin theo mô hình khác: agent không phải là một ứng dụng bạn mở ra, mà là một đồng đội mà các công cụ của bạn đã biết cách trò chuyện cùng.

Nó có danh tính riêng ở mọi nơi mà nhóm của bạn làm việc — @taskgoblin trên GitLab và Slack, taskgoblin[bot] trên GitHub. Bất kỳ ai trong nhóm cũng có thể giao việc cho nó như với một đồng nghiệp: giao một issue trên Linear, nhắc đến nó trong bình luận của một merge request, gắn nhãn một issue trên GitHub, hoặc hỏi nó điều gì đó trong một luồng trò chuyện trên Slack. Nó sẽ nhận việc, thực hiện trong một sandbox trên đám mây — luôn hoạt động, không nằm trên laptop của bất kỳ ai — và giao kết quả tại nơi công việc đã sẵn có: một branch, một merge request, một bình luận đánh giá, một phản hồi trong luồng trò chuyện.

Điều đó thay đổi việc ai có thể xem và định hướng công việc. Kết quả của agent không phải là một bản ghi riêng tư; đó là một merge request mà cả nhóm của bạn có thể xem xét, một chuỗi bình luận mà bất kỳ ai cũng có thể đọc, một issue di chuyển qua bảng công khai. Việc giám sát không còn là hoạt động đơn lẻ nữa mà trở thành đúng như bản chất vốn có của nó đối với công việc của con người: điều mà nhóm thực hiện trong không gian chung, với những công cụ mà họ đã có sẵn.

Dấu vết ngữ cảnh luôn gắn liền với công việc

Đây là phần tạo ra hiệu ứng cộng dồn. Vì agent làm việc bên trong hệ thống của nhóm bạn, ngữ cảnh của nó được neo vào chính công việc, chứ không phải vào phiên làm việc của một cá nhân.

Mỗi issue mà TaskGoblin xử lý đều có một luồng trò chuyện riêng: cuộc hội thoại, các quyết định, branch mà nó đã push lên, và một bộ nhớ bàn giao mang theo những gì đã học được sang lượt chạy tiếp theo. Ba ngày sau quay lại với một bình luận tiếp theo, nó sẽ tiếp tục với đầy đủ lịch sử trong tay — không phải vì ai đó đã dán lại ngữ cảnh, mà vì ngữ cảnh chưa từng biến mất. Dấu vết đó nằm trên issue và merge request, nơi mà con người tiếp theo — hoặc lượt chạy tiếp theo — thực sự sẽ nhìn vào.

Điểm ít được đánh giá đúng mức là người hưởng lợi chính từ dấu vết đó không phải là con người. Mà là chính agent. Một agent có thể thấy được thay đổi gần nhất với tệp này đã được xem xét như thế nào, nhóm đã quyết định điều gì trong issue cách đó hai liên kết, và tại sao cách tiếp cận trước đó đã bị hoàn tác, đơn giản là một kỹ sư giỏi hơn so với một agent thức dậy mỗi sáng trong một căn phòng trống rỗng.

Cả nhóm chỉ cần dạy một lần

Ngữ cảnh được chia sẻ biến công việc của agent thành một bánh đà. Mỗi merge request được xem xét, mỗi lần sửa lỗi mà một đồng đội để lại dưới dạng bình luận, mỗi quyết định được ghi lại trên một issue đều giúp lượt chạy tiếp theo có thông tin tốt hơn — cho tất cả mọi người, chứ không chỉ riêng người tình cờ có mặt trong phiên làm việc đó. Cả nhóm chỉ dạy cho agent một lần, một cách công khai, thay vì mỗi người tự dạy riêng cho bản sao của mình một cách riêng tư.

Các trung tâm điều khiển cá nhân không thể quay được bánh đà này, dù chúng có trở nên tốt đến đâu, bởi vì việc học tập diễn ra ở một nơi chỉ một người có thể nhìn thấy.

Một phép thử đơn giản

Nếu bạn muốn biết một công cụ thuộc về phía nào của ranh giới này, hãy đặt hai câu hỏi. Bất kỳ ai trong nhóm có thể @-nhắc đến agent ngay tại nơi họ đã làm việc không? Và khi họ làm vậy, agent có đến với đầy đủ hiểu biết về lịch sử — issue, luồng trò chuyện, các lượt chạy trước đó — mà không cần ai giải thích lại không?

Nếu câu trả lời là không, đó là một công cụ cá nhân. Có thể là một công cụ rất tốt — nhưng câu hỏi dành cho các nhóm đã chuyển từ "agent có thể viết code không?" sang "chúng ta giao việc, giám sát và cùng học hỏi với các agent như thế nào?". Câu hỏi đó chỉ có thể được trả lời trong những không gian chung. Đó là lý do TaskGoblin không được cung cấp dưới dạng một cửa sổ trên laptop của bạn, mà là một đồng đội trong những công cụ mà nhóm của bạn đã mở ra mỗi sáng.