Sự kết thúc của cục bộ

8 phút đọc

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

Nơi mặc định để chạy một tác nhân lập trình ngày nay là bên trong trình soạn thảo của bạn. Cursor, Claude Code, trợ lý tích hợp sẵn trong IDE của bạn — chúng ngồi cạnh bạn, bạn theo dõi chúng làm việc, bạn phê duyệt từng bước. Điều này cảm thấy tự nhiên vì nó mô phỏng lập trình cặp đôi: một lập trình viên junior cực nhanh ngồi bên vai bạn, còn bạn thì vẫn giữ tay trên vô-lăng.

Mô hình đó hoàn toàn phù hợp với một tác nhân cần được giám sát liên tục. Vấn đề là các tác nhân cần ít giám sát hơn theo từng tháng, và chúng càng tự chủ, việc trói chúng vào một chiếc laptop duy nhất — chỉ thức khi bạn thức — càng trông kỳ lạ.

Giới hạn của cục bộ

Một tác nhân cục bộ thừa hưởng mọi ràng buộc của bạn. Nó chạy khi máy của bạn bật và dừng khi bạn gập máy lại. Nó tranh giành cùng một CPU và bộ nhớ với trình soạn thảo, trình duyệt và quá trình build của bạn. Nó chỉ làm một việc tại một thời điểm, vì bạn cũng chỉ có thể theo dõi một việc tại một thời điểm. Và mọi việc nó làm đều diễn ra ở nơi chỉ mình bạn nhìn thấy.

Không điều nào trong số đó là lỗi của công cụ — đó chính là logic của "cục bộ". Tác nhân sống ở nơi bạn sống, nên nó bị giới hạn bởi mọi thứ giới hạn bạn: giờ làm việc, phần cứng, sự chú ý, đôi mắt duy nhất của bạn. Khi tác nhân còn cần một con người theo dõi từng bước, những giới hạn đó là miễn phí. Một khi nó không còn cần nữa, chúng trở thành chi phí thuần túy.

Giải pháp thay thế: bất đồng bộ và từ xa

Mô hình còn lại chính là nền tảng mà chúng tôi xây dựng TaskGoblin xoay quanh nó: tác nhân hoàn toàn không sống trong trình soạn thảo của bạn. Nó sống trên hạ tầng chuyên dụng và tiếp cận bạn thông qua các công cụ mà nhóm của bạn đã dùng — một issue trên Linear, một merge request trên GitLab hoặc GitHub, một luồng trò chuyện trên Slack. Bạn giao việc cho nó giống như cách bạn giao việc cho một đồng nghiệp từ xa ở múi giờ khác, và nó sẽ đi thực hiện công việc đó trong một sandbox trên đám mây trong khi bạn tiếp tục làm việc khác.

Sự thay đổi này nghe có vẻ chỉ là vấn đề về nơi diễn ra tính toán. Nhưng thực chất đó là vấn đề về việc tác nhân được phép trở thành gì. Đưa nó ra khỏi laptop, và các ràng buộc của "cục bộ" sẽ lần lượt biến mất:

  • Nó chạy song song. Mười issue có thể được xử lý cùng lúc, vì không có con người nào phải theo dõi từng cái một.
  • Nó luôn hoạt động. Một tác nhân từ xa không dừng lại khi bạn gập laptop; công việc được giao lúc 6 giờ chiều sẽ hoàn thành vào buổi sáng. Số giờ-tác-nhân khả dụng trong một ngày không còn bị giới hạn bởi giờ làm việc của bạn nữa.
  • Nó chạy trên hạ tầng được xây dựng riêng cho nó, thay vì tranh giành tài nguyên với trình soạn thảo của bạn trên một chiếc laptop của lập trình viên.
  • Nó làm việc ở nơi cả nhóm có thể nhìn thấy. Kết quả đầu ra là một merge request cùng chuỗi bình luận, không phải một phiên làm việc riêng tư — việc giám sát trở thành điều mà cả nhóm cùng thực hiện trong không gian chung.
  • Nó tích hợp gốc với nền tảng. Nó được kích hoạt bởi các sự kiện đã sẵn có trong luồng công cụ của bạn — một sự phân công, một lượt nhắc tên, một pull request mới — thay vì bạn phải mở một ứng dụng.
  • Nó được cô lập ngay từ thiết kế. Mỗi lần chạy là một môi trường sandbox hoàn toàn mới với thông tin xác thực có phạm vi giới hạn, được trung gian hóa mà tác nhân không bao giờ tự nắm giữ — một tư thế bảo mật mà một tiến trình chạy trên chính máy của bạn không thể sánh được.

Không có lợi thế nào trong số này là ấn tượng khi đứng riêng lẻ. Nhưng khi cộng dồn lại, chúng tạo thành một khoảng cách khó có thể phản bác: mười tác nhân làm việc suốt ngày đêm đối đầu với một tác nhân dừng lại khi bạn dừng lại.

"Nhưng tôi cần vòng phản hồi chặt chẽ"

Phản đối mạnh mẽ nhất đối với mô hình từ xa là vòng phản hồi chặt chẽ: sự qua lại nhanh chóng của việc theo dõi một tác nhân, sửa lỗi giữa chừng, điều khiển theo cảm giác. Điều này là có thật, và đối với công việc mang tính khám phá thực sự — thử nghiệm một ý tưởng, gỡ lỗi thứ mà chính bạn cũng chưa hiểu — cục bộ vẫn là công cụ đúng đắn.

Nhưng có hai điều đúng về vòng phản hồi đó. Nó chiếm một phần công việc nhỏ hơn cảm giác của bạn; phần lớn công việc kỹ thuật thực sự là những tác vụ đã được xác định rõ ràng, không cần con người túc trực bên cạnh. Và nó thu hẹp dần mỗi khi các tác nhân trở nên tốt hơn, bởi vì lý do bạn túc trực là vì bạn chưa tin tưởng tác nhân có thể hoàn thành công việc mà không cần giám sát — và niềm tin đó chính là thứ đang gia tăng. Vòng phản hồi chặt chẽ sẽ không biến mất, nhưng nó sẽ mô tả một phần ngày càng nhỏ hơn trong ngày làm việc.

"Nhưng còn bảo mật"

Phản đối nghiêm trọng nhất không phải về quy trình làm việc, mà là về niềm tin: đặt mã nguồn và thông tin xác thực của bạn lên hạ tầng của người khác. Điều này xứng đáng có một câu trả lời thực sự thay vì một cái phất tay qua loa, và đó là phần lớn những gì chúng tôi xây dựng. Mỗi lần chạy được cô lập theo từng sandbox; các bí mật được mã hóa khi lưu trữ và không bao giờ được đặt vào môi trường của tác nhân; dữ liệu của mỗi tổ chức được phân tách nghiêm ngặt với dữ liệu của mọi tổ chức khác. Từ xa không có nghĩa là bất cẩn — nếu được thực hiện đúng cách, một sandbox được xây dựng chuyên biệt với thông tin xác thực trung gian hóa sẽ đáng tin cậy hơn nhiều so với một tác nhân chạy tự do trên laptop của lập trình viên với các token thật nằm ngay trong môi trường của nó.

Hướng đi tiếp theo

Chúng tôi không khẳng định rằng cục bộ sẽ biến mất. Công việc mang tính khám phá và một số môi trường bị ràng buộc bởi tuân thủ quy định sẽ vẫn giữ một chỗ đứng cho tác nhân trong trình soạn thảo trong thời gian dài sắp tới. Khẳng định của chúng tôi hẹp hơn và, chúng tôi tin, khó né tránh hơn: khi các tác nhân trở nên có khả năng hoàn thành công việc thực sự mà không cần con người theo dõi, trọng tâm sẽ dịch chuyển ra khỏi laptop và hướng tới hạ tầng dùng chung, luôn hoạt động — không phải vì lập trình viên thích điều đó, mà vì một nhóm chạy mười tác nhân suốt ngày đêm đơn giản là sẽ tạo ra nhiều sản phẩm hơn một nhóm chỉ chạy một tác nhân cho đến khi họ gập máy lại.

Đó là canh bạc mà TaskGoblin được xây dựng dựa trên. Không phải một khung nhìn tốt hơn để quan sát một tác nhân trên máy của bạn, mà là một tác nhân chưa bao giờ tồn tại trên máy của bạn ngay từ đầu — chờ sẵn trong các công cụ mà nhóm của bạn đã dùng, sẵn sàng trước cả khi bạn uống xong tách cà phê.