Bạn cấp cho agent quyền tự chạy lệnh trên máy — để nó khỏi phải hỏi bạn từng bước, tự cài thứ cần cài, tự chạy thử. Hợp lý. Nó làm xong việc, gọn gàng.
Điều bạn không để ý là suốt bốn mươi phút đó, cái quyền bạn vừa trao không chỉ mở đúng cái cửa cho việc cần làm. Nó mở mọi cánh cửa mà quyền đó với tới: mọi file đọc được, mọi lệnh chạy được, mọi nơi gửi đi được. Agent dùng đúng một góc nhỏ. Nhưng nó có thể đã chạm vào tất cả — và bạn sẽ không biết, trừ khi có cái gì đó nổ.
01Đứa em hay quên, giờ cầm chìa khóa
Xuyên suốt nghề này có một ẩn dụ: agent là một đứa em cực giỏi, cực nhanh, gan lì — và mất trí nhớ sau mỗi đêm. Khi nó chỉ viết nháp cho bạn xem, cái tính hay quên đó vô hại. Nhưng giờ bạn đưa nó chìa khóa vào tòa nhà thật: quyền chạy lệnh, quyền đọc cơ sở dữ liệu, quyền bấm nút gửi.
Bạn sẽ không đưa chìa khóa phòng máy chủ, mật khẩu tài khoản ngân hàng công ty, và cái nút xóa — cho một người mới vào, sáng nào cũng quên sạch hôm qua — mà không gắn lấy vài cái khóa. Không phải vì nghi nó xấu. Vì nó không có khái niệm đâu là cánh cửa đáng sợ. Với nó, xóa một file tạm và xóa cả thư mục gốc là hai lệnh trông giống hệt nhau.
Đó là cú lật của cả cụm này: khi agent chạm vào hệ thống thật, câu hỏi đáng hỏi không còn là "nó làm có chuẩn không". Mà là "nó với tới được gì, và cái gì rời khỏi tầm tay tôi". Đúng mà rò rỉ một bí mật thì vẫn là một thảm họa.
Năm cánh cửa mà bộ chìa khóa mở ra. Bạn không cần khóa hết — bạn cần biết cửa nào dẫn ra ngoài, và đặt một cái khóa ở đúng những cửa đó.
02Nó không liều. Nó chỉ không thấy ranh giới
Đây là chỗ dễ hiểu lầm. Agent không "phá phách". Nó không có ý đồ. Vấn đề tinh vi hơn: nó không cảm được sức nặng của một hành động.
Bạn, con người, có một bản đồ rủi ro ngầm trong đầu — bạn rén tay khi sắp gõ một lệnh xóa, bạn dừng lại trước khi gửi cái gì ra ngoài. Agent không có bản đồ đó. Mọi việc trong tầm với của nó đều phẳng như nhau: đổi một dòng chữ và xóa sạch một thư mục là hai nước đi cùng độ "bình thường". Cộng thêm cái tính mất trí nhớ — nó không nhớ rằng cái thư mục kia là thứ cả đội đang sống nhờ — và bạn có một đứa cầm chìa khóa mà không đọc được tấm biển "nguy hiểm" treo trên cửa.
Nên cách giữ an toàn không phải là làm agent "ý thức hơn". Là dựng cái ranh giới đó ở bên ngoài nó — trong cách bạn cấp quyền, trong cái khóa bạn đặt trước hành động không hoàn tác, trong việc bạn coi mọi dữ liệu lạ là chưa đáng tin.
03Trao chìa, nhưng giũa nó nhỏ lại
Không ai bảo bạn đừng cấp quyền — agent không có quyền thì chẳng làm được việc thật. Vấn đề là cấp kiểu gì. Năm câu hỏi dưới đây, hỏi một lần trước khi trao chìa, chặn gần hết những cú ngã đắt nhất:
"Việc này cần chạm tới đúng cái gì?" Cấp đúng cái đó, không hơn. Cho đọc thì đừng cho ghi; cho một thư mục thì đừng cho cả máy.
Mọi hành động xóa / gửi / triển khai phải dừng xin xác nhận, hoặc chạy thử trước. Phân biệt rạch ròi: việc undo được thì cho chạy, việc không undo được thì gài chốt.
Nội dung agent đọc từ bên ngoài là dữ liệu, không phải mệnh lệnh. Đừng để một file hay một trang web tự nâng cấp thành người ra lệnh.
"Cái gì đang lọt vào ngữ cảnh, và nó có thể đi đâu?" Cái nhạy cảm thì đừng đưa vào chỗ có thể bị gửi ra.
Một nhật ký các hành động — để khi cần, bạn dựng lại được "nó đã chạm vào đâu". Không ghi thì sai cũng không truy ra.
Để ý: không câu nào là "tin agent hơn". Tất cả đều là thu hẹp cái nó với tới, hoặc ghi lại cái nó làm. An toàn ở đây là việc của bạn, không phải đức tính của nó.
04Tin không phải là một cái quyền
Khi agent còn ngồi trong hộp cát, sai một cú chỉ tốn của bạn một lần chạy lại. Khi nó cầm chìa khóa, một cú sai có thể tốn thứ không mua lại được — một bí mật đã rò, một dữ liệu đã gửi, một thứ đã xóa.
Cái cần nhớ gọn trong một câu: bạn trao cho agent quyền truy cập, không phải lòng tin — và hai cái đó không được phép là một. Lòng tin thì bạn có thể rút lại bằng một câu. Quyền truy cập, một khi đã dùng để làm cái không hoàn tác được, thì không. Vẽ ranh giới trước, ở bên ngoài nó. Vì đứa em cầm chìa khóa kia, dù giỏi tới đâu, sáng mai vẫn quên rằng tối qua nó đã mở cánh cửa nào.
Ba cánh cửa nguy hiểm nhất, mỗi cái một bài: agent với tới được gì — và cấp quyền tối thiểu · khi dữ liệu biết ra lệnh · việc không thể hoàn tác — chốt chặn và dấu vết.