13Bảo mật & niềm tinĐào sâu ①

Agent làm việc với mọi thứ nó với tới — nên hãy thu hẹp cái nó với tới

Cách giữ an toàn không phải dặn nó 'đừng đụng chỗ kia', mà là làm cho chỗ kia nằm ngoài tầm tay ngay từ đầu

Đọc5 phút đọc
Chủ đềbao-mat · quyen-truy-cap · autonomy
TL;DR

Agent làm việc với mọi thứ trong tầm với của nó, và với nó mọi thứ trong tầm đó đều phẳng như nhau — không có cái nào "đừng đụng". Nên hàng rào "dặn nó đừng đụng chỗ kia" là hàng rào yếu nhất: nó dựa vào việc agent nhớ và chịu nghe, mà agent thì hay quên. Hàng rào chắc là làm cho "chỗ kia" nằm ngoài tầm với ngay từ đầu — mặc định chỉ-đọc, khoanh đúng một phạm vi, và tách bí mật ra khỏi chỗ nó nhìn thấy.

Bạn nhờ agent dọn giúp một mớ file rác đã cũ. Để nó tự làm cho nhanh, bạn cấp cho nó quyền xóa file. Nó dọn đúng cái cần dọn, gọn gàng.

Rồi một lúc sau bạn mới khựng lại: cái quyền "xóa file" bạn vừa trao không hề dừng ở mớ rác đó. Nó với tới mọi file mà tài khoản đó đụng được. Agent chỉ dùng quyền đó cho đúng việc bạn nhờ — lần này. Nhưng bạn vừa đưa một cây kéo cho một đứa không phân biệt được sợi chỉ thừa với sợi dây đang treo cái gì đó nặng.

01Với agent, mọi thứ trong tầm với đều phẳng như nhau

Gốc rễ không phải agent liều. Nó không có ý đồ phá. Gốc rễ là nó không cảm được đâu là vùng cấm.

Bạn có một bản đồ rủi ro ngầm trong đầu: bạn biết thư mục này là rác, thư mục kia là chỗ cả đội đang sống nhờ, và tay bạn tự rén lại trước cái thứ hai. Agent không có bản đồ đó. Mọi thứ trong tầm với của nó nằm trên cùng một mặt phẳng: một file rác và một file gốc trông giống hệt nhau dưới con mắt của một cái quyền "được xóa". Nó không thấy tấm biển "nguy hiểm" — vì với nó tấm biển đó không tồn tại.

Cộng thêm cái tính mất trí nhớ. Kể cả bạn có dặn "đừng đụng thư mục X" trong một câu, thì sang một nhánh suy nghĩ khác, một bước sau đó, nó hoàn toàn có thể quên mất câu dặn ấy. Một hàng rào dựng bằng "nhớ giùm tôi cái này" là hàng rào dựng trên đúng cái mà agent yếu nhất.

02"Dặn đừng đụng" là khóa cửa bằng lời. Hãy khóa bằng tường

Vậy nên cách nghĩ phải lật lại. Đừng cố làm agent ý thức hơn về vùng cấm. Hãy làm cho vùng cấm nằm ngoài tầm với — để cho dù nó có quên, có hiểu sai, có bị một dòng dữ liệu lạ xui khiến, thì cánh cửa kia vẫn đơn giản là không mở được.

Cấp rộng rồi dặn đừng đụng

Cho quyền với tới tất cả, kèm một câu "đừng đụng chỗ X"
Hàng rào sống trong trí nhớ của agent — thứ wipe sạch sau mỗi nhánh
Một lần quên, một lần hiểu lệch là cửa cấm mở toang

Thu hẹp cái nó với tới

Chỉ cấp đúng cái việc cần — chỗ X không nằm trong tầm với
Hàng rào sống trong cách cấp quyền — không phụ thuộc trí nhớ ai
Agent quên hay không cũng vậy: cửa cấm không tồn tại với nó

Cái khác biệt cốt lõi: hàng rào bên trái nằm trong đầu agent (nơi mọi thứ bốc hơi sau một đêm), hàng rào bên phải nằm trong cấu hình (nơi nó đứng yên kể cả khi không ai nhớ tới).

03Ba nước giũa cái tầm với nhỏ lại

Thu hẹp không có nghĩa là trói agent đến mức vô dụng. Nó có nghĩa là cấp đúng cỡ. Ba nước này áp được cho gần như mọi lần trao quyền:

1
Mặc định chỉ-đọc

Phần lớn việc chỉ cần đọc, không cần sửa. Bắt đầu bằng quyền chỉ-đọc; chỉ mở quyền ghi/xóa khi việc thật sự đòi, và mở đúng chỗ đó thôi.

2
Khoanh đúng một phạm vi

"Việc này cần với tới đúng cái gì?" Cho nó một thư mục thì đừng cho cả ổ; cho một dự án thì đừng cho cả tài khoản. Tầm với hẹp lại là bán kính sai sót hẹp lại.

3
Tách bí mật khỏi chỗ nó nhìn thấy

Mật khẩu, khóa, token thật đừng nằm trong cái ngữ cảnh agent đọc được. Cái nó không nhìn thấy là cái nó không thể vô tình dùng — hay vô tình gửi đi.

Cả ba đều trả lời cùng một câu hỏi — "cái này có thực sự cần nằm trong tầm với không?" — và mặc định trả lời là "không, cho tới khi việc đòi". Cấp quyền theo kiểu nới-dần an toàn hơn nhiều so với cấp rộng rồi rút.

04Cái giá của một lần với quá tay

Vì sao đáng làm phiền tới mức này, khi phần lớn lần chạy chẳng có gì xảy ra? Vì sự bất đối xứng. Cấp hẹp tốn của bạn thêm vài giây mỗi lần, và đôi khi một lần mở thêm quyền giữa chừng. Cấp rộng thì chín mươi chín lần trôi qua êm — rồi lần thứ một trăm, một câu hiểu lệch hoặc một dòng dữ liệu xui khiến biến cái quyền rộng đó thành một thứ đã xóa, đã ghi đè, đã gửi đi.

Bạn không phải chọn giữa "thả lỏng cho nó làm được việc" và "trói chặt cho an toàn". Khoanh đúng tầm với cho bạn cả hai: agent vẫn chạy tự do bên trong phạm vi của nó, còn cái ngoài phạm vi thì khỏi cần canh, vì nó vốn không với tới. Đây cũng chính là phiên bản ngoài-đời của việc đọc bán kính ảnh hưởng trước khi sửa — chỉ khác là ở đây bạn vẽ cái bán kính đó trước, bằng chính cái chìa khóa bạn trao. Đứa em cầm kéo kia không cần bạn dặn sợi nào đừng cắt. Nó cần bạn chỉ đưa cho nó đúng đoạn chỉ thừa.

c
Người viết

Mỗi câu chuyện ở đây gói một bài học đã trả giá để học.

craftagentmột người vừa xây vừa học

Bạn đang xây gì với agent? Muốn trao đổi, phản biện, hay cùng làm một thứ gì đó — viết cho mình một dòng.

52bài12cụmVI·ENsong ngữ

Nhận bài mới qua email

Ghi chép thực chiến về làm việc với AI agent — thi thoảng, không spam.