Khi giao việc cho Devin AI tự động mở terminal, chạy lệnh và chỉnh sửa mã nguồn thay con người, câu hỏi đầu tiên nhiều lập trình viên đặt ra là: Làm sao để kiểm soát những gì trợ lý này được phép tự ý thực thi? Tính năng Devin Allowlist ra đời để giải quyết vấn đề này. Vậy cụ thể Devin Allowlist là gì? Cách sử dụng như thế nào? Cùng Tino khám phá qua bài viết dưới đây nhé!
Đôi nét về Devin Allowlist
Devin Allowlist là gì?
Devin Allowlist là danh sách các lệnh terminal (hoặc các miền mạng, tùy ngữ cảnh) được đánh dấu là an toàn, cho phép Devin AI tự động thực thi mà không cần chờ người dùng bấm xác nhận từng lần. Ví dụ, nếu một người dùng thêm git vào Allowlist, mọi lệnh bắt đầu bằng git như git add -A hay git status sẽ được Devin Desktop chạy ngay lập tức, không cần thao tác phê duyệt thủ công.
Cơ chế này nằm trong hệ thống quản lý quyền hạn của Devin Desktop, giúp cân bằng giữa hai yếu tố: tốc độ xử lý công việc và mức độ an toàn khi để một AI tác vụ tự động can thiệp vào hệ thống máy tính.
Xem thêm: Devin AI là gì?

Phân biệt Allowlist và Denylist
Song song với Allowlist, Devin AI còn cung cấp một danh sách đối lập gọi là Denylist (danh sách chặn). Trong khi Allowlist quy định lệnh nào được tự động chạy, Denylist quy định lệnh nào luôn cần sự phê duyệt của con người trước khi thực thi, bất kể cấp độ tự động hóa đang bật là gì.
Một điểm quan trọng cần ghi nhớ: Khi một lệnh xuất hiện trong cả hai danh sách cùng lúc, Denylist luôn được ưu tiên áp dụng trước. Nói cách khác, dù lệnh đó đã được thêm vào Allowlist, việc góp mặt trong Denylist vẫn khiến lệnh phải chờ xác nhận thủ công. Thiết kế an toàn theo hướng “ưu tiên chặn” như vậy giúp giảm thiểu rủi ro thao tác nhầm gây hại cho hệ thống.
4 cấp độ tự động thực thi lệnh trong Devin AI
Devin AI chia mức độ tự động hóa lệnh terminal thành 4 cấp độ rõ ràng, giúp người dùng lựa chọn mức độ phù hợp với nhu cầu công việc:
Cấp độ Mô tả Disabled Toàn bộ lệnh đều cần phê duyệt thủ công, tính năng tự động thực thi bị tắt hoàn toàn Allowlist Only Chỉ những lệnh khớp với allowlist mới được tự động chạy, mọi lệnh khác đều cần xác nhận Auto Devin AI tự đánh giá mức độ an toàn của lệnh dựa trên khả năng suy luận, lệnh có rủi ro vẫn cần phê duyệt (chỉ áp dụng cho các mô hình cao cấp) Turbo Toàn bộ lệnh được tự động chạy ngay, ngoại trừ những lệnh nằm trong denylist
Vì sao nên thiết lập Devin Allowlist?
Thiết lập Allowlist mang lại ba lợi ích rõ rệt cho người dùng Devin AI:
- Tiết kiệm thời gian: Không phải dừng lại để phê duyệt những lệnh lặp đi lặp lại và đã quen thuộc như cài đặt gói thư viện, kiểm tra trạng thái Git hay chạy bộ kiểm thử.
- Duy trì kiểm soát bảo mật: Những lệnh có khả năng gây hại như xóa file, thay đổi quyền hệ thống vẫn nằm ngoài Allowlist và luôn cần sự chấp thuận trực tiếp.
- Linh hoạt theo từng dự án: Mỗi dự án có thể có bộ lệnh an toàn khác nhau, việc tùy chỉnh Allowlist theo ngữ cảnh giúp Devin AI làm việc hiệu quả hơn mà không phá vỡ quy trình bảo mật chung.
Các loại Allowlist trong hệ sinh thái Devin AI
Allowlist lệnh terminal cấp cá nhân
Đây là loại Allowlist phổ biến và cơ bản nhất, được cấu hình trực tiếp trong cài đặt của từng người dùng trên Devin Desktop. Danh sách này chỉ áp dụng cho phiên làm việc cá nhân, phù hợp với lập trình viên độc lập hoặc freelancer.
Allowlist lệnh terminal cấp Team/Enterprise
Dành cho các đội nhóm sử dụng gói Teams hoặc Enterprise, quản trị viên có thể thiết lập một Allowlist và Denylist áp dụng chung cho toàn bộ thành viên thông qua Admin Portal. Danh sách cấp team sẽ được hợp nhất (merge) cùng danh sách cá nhân của từng người dùng, nghĩa là một lệnh chỉ cần khớp với một trong hai danh sách là đã đủ điều kiện tự động chạy, trừ khi bị chặn bởi Denylist ở bất kỳ cấp nào.
Quản trị viên cũng có quyền giới hạn cấp độ tự động hóa tối đa mà nhân viên được phép chọn. Ví dụ, nếu quản trị viên đặt mức tối đa là “Auto”, thành viên trong đội chỉ có thể chọn giữa Disabled, Allowlist Only hoặc Auto, không thể kích hoạt chế độ Turbo.

Allowlist domain mạng trong Devin CLI
Bên cạnh việc kiểm soát lệnh, Devin CLI (phiên bản dòng lệnh của Devin AI) còn hỗ trợ một loại Allowlist khác dành cho lưu lượng mạng, gọi là allowed_domains, nằm trong phần cấu hình sandbox của file config. Khi tính năng lọc mạng theo tên miền được bật cùng cờ –sandbox, chỉ những tên miền khớp với danh sách này mới được phép kết nối ra bên ngoài, giúp hạn chế rủi ro rò rỉ dữ liệu hoặc truy cập vào các nguồn không đáng tin cậy.
Cú pháp tên miền hỗ trợ ba dạng phổ biến: khớp chính xác (example.com), khớp mọi tên miền phụ (*.example.com) và khớp cả tên miền gốc lẫn tên miền phụ (**.example.com). Cần lưu ý rằng tính năng lọc mạng theo tên miền hiện vẫn đang trong giai đoạn hoàn thiện và có thể chưa thật sự ổn định trên mọi môi trường.
Allowlist IP dành cho doanh nghiệp
Ở cấp độ tổ chức lớn, Devin AI còn cung cấp API riêng để quản lý Allowlist địa chỉ IP, cho phép doanh nghiệp giới hạn phạm vi IP được phép truy cập vào hệ thống quản trị (Enterprise IP Access List). Cấu hình này thường hỗ trợ định dạng CIDR và yêu cầu quyền quản trị chuyên biệt để chỉnh sửa.
Allowlist domain cho mạng nội bộ công ty
Ngoài các loại Allowlist phục vụ trực tiếp cho hoạt động của Devin AI, một số bộ phận IT tại doanh nghiệp còn cần cấu hình Allowlist ở cấp tường lửa mạng nội bộ, nhằm cho phép các thiết bị trong công ty truy cập được vào các tên miền dịch vụ của Devin AI như api.devin.ai hay docs.devin.ai. Đây là bước chuẩn bị hạ tầng cần thiết trước khi triển khai Devin AI rộng rãi trong tổ chức.
Hướng dẫn cách sử dụng Devin Allowlist
Các bước sử dụng Devin Allowlist
Bước 1: Mở dự án cần làm việc trong Devin Desktop, sau đó truy cập Command Palette bằng phím tắt:
- Windows hoặc Linux: Ctrl + Shift + P
- macOS: Cmd + Shift + P
Bạn cũng có thể mở Command Palette từ menu điều khiển của trình chỉnh sửa.

Bước 2: Mở giao diện Settings
Trong Command Palette, nhập:
Open Settings (UI)
Chọn kết quả tương ứng để mở giao diện cài đặt.

Sau đó, chọn qua tab Devin Settings.
Hoặc bạn cũng có thể sử dụng phím tắt Ctrl + , trên Windows hoặc Cmd + , trên macOS để mở Settings nhanh hơn.

Bước 3: Trong thanh menu bên trái, tìm nhóm Devin Local, sau đó chọn Configuration.
Tại đây, Devin AI hiển thị ba nhóm quyền chính:
- Allow: tự động cho phép hành động mà không yêu cầu xác nhận.
- Deny: từ chối hoặc chặn hành động.
- Ask: luôn yêu cầu người dùng xác nhận trước khi thực hiện.
Devin Local sử dụng hệ thống quyền này thay cho cơ chế Auto-Execution của Cascade. Quyền có thể áp dụng cho lệnh Terminal, đọc file, ghi file, truy cập URL và công cụ MCP.

Tại khu vực Allow, nhấn nút Add.
Bước 4: Một ô nhập quy tắc mới sẽ xuất hiện. Đối với lệnh Terminal, bạn cần sử dụng cú pháp:
Exec(lệnh cần cho phép)
Ví dụ, để cho phép Devin AI tự động kiểm tra trạng thái Git, hãy nhập:
Exec(git status)

Sau đó nhấn OK để lưu quy tắc.
Bạn nên thêm từng câu lệnh riêng biệt để dễ kiểm soát phạm vi quyền.
Ví dụ:
- Exec(git status)
- Exec(git diff)
- Exec(git log)
- Exec(npm test)
- Exec(npm run lint)
- Exec(npm run build)

Cú pháp Exec(prefix) hoạt động theo nguyên tắc khớp phần đầu của lệnh. Chẳng hạn, Exec(npm run) có thể cho phép nhiều lệnh bắt đầu bằng npm run, bao gồm npm run test và npm run build. Vì vậy, người mới nên nhập câu lệnh đầy đủ thay vì sử dụng tiền tố quá rộng.
Những lệnh nên thêm vào Devin Allowlist
| Quy tắc thêm vào Allow | Chức năng | Mức độ khuyến nghị | Lưu ý |
|---|---|---|---|
Exec(git status) | Kiểm tra trạng thái repository và các file đang thay đổi | Rất nên thêm | Chủ yếu đọc thông tin, không chỉnh sửa mã nguồn |
Exec(git diff) | Xem nội dung code đã thay đổi | Rất nên thêm | Giúp Devin AI kiểm tra thay đổi trước khi tiếp tục |
Exec(git log) | Xem lịch sử commit | Nên thêm | Phù hợp khi Agent cần tìm hiểu quá trình phát triển dự án |
Exec(git branch --show-current) | Kiểm tra nhánh Git hiện tại | Nên thêm | An toàn hơn việc cho phép toàn bộ nhóm git branch |
Exec(npm test) | Chạy bộ kiểm thử của dự án Node.js | Nên thêm | Cần kiểm tra nội dung script test trong package.json trước |
Exec(npm run lint) | Kiểm tra lỗi cú pháp và quy chuẩn code | Nên thêm | Bảo đảm script chỉ kiểm tra hoặc sửa lỗi trong phạm vi cho phép |
Exec(npm run typecheck) | Kiểm tra lỗi kiểu dữ liệu, thường dùng với TypeScript | Nên thêm | Chỉ thêm khi dự án đã có script typecheck |
Exec(npm run build) | Build dự án để kiểm tra khả năng biên dịch | Có thể thêm | Cần xác nhận quy trình build không tự động triển khai sản phẩm |
Exec(pytest) | Chạy kiểm thử trong dự án Python | Có thể thêm | Chỉ cần thiết với dự án sử dụng Pytest |
Exec(go test) | Chạy kiểm thử trong dự án Go | Có thể thêm | Có thể thiết lập câu lệnh đầy đủ hơn theo cấu trúc dự án |
Exec(cargo test) | Chạy kiểm thử trong dự án Rust | Có thể thêm | Chỉ áp dụng cho dự án sử dụng Cargo |
Exec(dotnet test) | Chạy kiểm thử trong dự án .NET | Có thể thêm | Phù hợp với dự án C# hoặc nền tảng .NET |
Tài liệu chính thức của Devin AI cũng sử dụng git status, git diff và git log làm ví dụ cho cấu hình quyền tối thiểu, vì đây là những thao tác chủ yếu phục vụ việc đọc và kiểm tra repository.
Bạn không cần thêm toàn bộ các lệnh trong bảng. Hãy chọn đúng câu lệnh phù hợp với ngôn ngữ lập trình, công cụ quản lý gói và quy trình kiểm thử của từng dự án.
Những lưu ý quan trọng khi sử dụng Allowlist
- Denylist luôn thắng Allowlist. Khi một lệnh hoặc tên miền xuất hiện ở cả hai danh sách, quyết định chặn luôn được áp dụng trước.
- Chỉ thêm những lệnh bạn đã hiểu rõ chức năng và phạm vi ảnh hưởng.
- Ưu tiên câu lệnh cụ thể như Exec(git status) thay vì quyền rộng như Exec(git).
- Kiểm tra nội dung script trong package.json trước khi cho phép npm test, npm run lint hoặc npm run build.
- Không thêm các lệnh có thể xóa dữ liệu hoặc thay đổi hệ thống như rm, sudo, git reset –hard và git push –force.
- Sử dụng Ask cho những thao tác cần xem lại trước khi thực hiện, chẳng hạn cài thư viện hoặc chỉnh sửa file quan trọng.
- Sử dụng Deny để chặn những lệnh nguy hiểm mà Devin AI không được phép chạy.
- Không đưa API Key, mật khẩu, Access Token hoặc thông tin trong file .env vào quy tắc Allowlist.
- Nên thiết lập quyền riêng cho từng dự án thay vì áp dụng chung cho toàn bộ máy tính.
- Kiểm tra lại Allowlist sau khi thay đổi framework, script hoặc quy trình triển khai.
- Nếu chưa chắc một lệnh có an toàn hay không, hãy để Devin AI yêu cầu xác nhận thay vì thêm vào Allowlist.

Các bài viết liên quan:
- So sánh Windsurf (Devin AI) vs Cursor AI
- So sánh Devin AI vs Google Antigravity: Hai trợ lý lập trình AI đáng chú ý
- So sánh Devin AI vs Github Copilot: Nên chọn trợ lý nào để x10 tốc độ code?
- So sánh Devin AI vs VSCode: AI tự chủ có đánh bại được IDE phổ biến nhất thế giới?
- So sánh Devin AI vs Claude Code: Liệu Claude có đủ sức cản bước tiến của Devin?
- Khám phá mô hình SWE-1.7 của Devin AI có gì mới?
- Hướng dẫn đăng ký Devin AI Pro free trial 2 tuần chi tiết
Kết luận
Tóm lại, Devin Allowlist là công cụ giúp người dùng cân bằng giữa tốc độ làm việc và mức độ an toàn khi giao phó công việc lập trình cho một trợ lý AI tự động. Chỉ với vài thao tác cấu hình đơn giản, mỗi cá nhân lẫn cả một đội ngũ kỹ thuật đều có thể tự tay quyết định lệnh nào được chạy ngay, lệnh nào cần xin phép trước khi thực thi. Hy vọng những hướng dẫn chi tiết trong bài đã giúp việc làm chủ tính năng này trở nên đơn giản hơn, để mỗi phiên làm việc cùng Devin AI vừa nhanh chóng vừa yên tâm về mặt bảo mật.
Những câu hỏi thường gặp
Tại sao phải nhập Exec(git status) thay vì chỉ nhập git status?
Exec(…) cho Devin Local biết đây là quy tắc kiểm soát việc thực thi lệnh shell. Ngoài Exec, hệ thống quyền còn hỗ trợ các nhóm như Read(…), Write(…) và Fetch(…) để quản lý file hoặc quyền truy cập Internet.
Vì sao Devin AI vẫn yêu cầu xác nhận dù lệnh đã nằm trong Allow?
Một số nguyên nhân phổ biến gồm:
- Lệnh thực tế không khớp chính xác với tiền tố đã thêm.
- Có quy tắc tương ứng trong Ask hoặc Deny.
- Chính sách của tổ chức yêu cầu xác nhận.
- Quyền được lưu cho dự án khác.
- Phiên hiện tại đang sử dụng Cascade thay vì Devin Local.
Trong hệ thống permissions, Deny và Ask luôn được ưu tiên trước Allow.
Có thể áp dụng Allowlist cho riêng một dự án không?
Có. Bạn có thể lưu quyền trong .devin/config.json để áp dụng cho dự án và chia sẻ cùng nhóm, hoặc dùng .devin/config.local.json nếu chỉ muốn lưu cấu hình trên máy cá nhân. Devin Local cũng hỗ trợ cấu hình toàn cục cho mọi dự án.
Devin Allowlist có áp dụng được cho phiên bản trả phí thấp nhất không?
Có. Tính năng Allowlist cá nhân trên Devin Desktop áp dụng cho mọi cấp gói sử dụng cá nhân, trong khi Allowlist cấp Team/Enterprise và Allowlist IP doanh nghiệp chỉ dành riêng cho các gói Teams và Enterprise có Admin Portal.
Thiết lập Allowlist sai có gây rủi ro bảo mật không?
Có. Nếu thêm nhầm một lệnh có khả năng gây hại (ví dụ lệnh xóa dữ liệu) vào Allowlist mà quên đưa vào Denylist, lệnh đó sẽ tự động chạy mà không qua bước xác nhận, tiềm ẩn nguy cơ mất dữ liệu hoặc ảnh hưởng hệ thống.
