Tiếng Việt

Môi trường cô lập

Môi trường cô lập

Cách môi trường cô lập hoạt động trên các ứng dụng ChatGPT và Codex

Môi trường cô lập là ranh giới cho phép tác nhân hoạt động tự chủ mà không cấp cho tác nhân quyền truy cập không hạn chế vào máy của bạn. Khi một cuộc trò chuyện cục bộ chạy lệnh trong ứng dụng ChatGPT dành cho máy tính, Codex CLI hoặc tiện ích mở rộng IDE, các lệnh đó chạy bên trong một môi trường bị giới hạn thay vì mặc định chạy với toàn quyền truy cập.

Môi trường đó xác định những gì tác nhân có thể tự thực hiện, chẳng hạn như các tệp mà tác nhân có thể sửa đổi và liệu các lệnh có thể sử dụng mạng hay không. Khi một tác vụ nằm trong các ranh giới đó, tác nhân có thể tiếp tục làm việc mà không phải dừng lại để xin xác nhận. Khi tác nhân cần vượt ra ngoài các ranh giới này, quy trình phê duyệt sẽ tiếp quản.

Chức năng của môi trường cô lập

Môi trường cô lập áp dụng cho các lệnh được khởi chạy, không chỉ cho các thao tác tệp tích hợp sẵn. Nếu tác nhân chạy các công cụ như git, trình quản lý gói hoặc trình chạy kiểm thử, các lệnh đó sẽ kế thừa cùng các ranh giới của môi trường cô lập.

Codex sử dụng cơ chế thực thi gốc của nền tảng trên từng hệ điều hành. Cách triển khai khác nhau giữa macOS, Linux, WSL2 và Windows gốc, nhưng ý tưởng nhất quán trên mọi bề mặt: cung cấp cho tác nhân một không gian làm việc có giới hạn để các tác vụ thường lệ có thể chạy tự chủ trong các giới hạn rõ ràng.

Vì sao điều này quan trọng

Môi trường cô lập giúp giảm sự mệt mỏi do phải phê duyệt. Thay vì yêu cầu bạn xác nhận mọi lệnh có rủi ro thấp, tác nhân có thể đọc tệp, thực hiện chỉnh sửa và chạy các lệnh dự án thường lệ trong ranh giới mà bạn đã phê duyệt.

Môi trường cô lập cũng mang lại cho bạn một mô hình tin cậy rõ ràng hơn cho công việc có tính tác nhân. Bạn không chỉ đặt niềm tin vào ý định của tác nhân; bạn còn tin rằng tác nhân đang hoạt động trong các giới hạn được thực thi. Nhờ đó, bạn có thể dễ dàng để tác nhân làm việc độc lập mà vẫn biết khi nào tác nhân sẽ dừng lại và yêu cầu trợ giúp.

Bắt đầu

Chế độ quyền mặc định tự động áp dụng môi trường cô lập.

Điều kiện tiên quyết

Trên macOS, môi trường cô lập hoạt động ngay lập tức nhờ framework Seatbelt tích hợp sẵn.

Trên Windows, Codex sử dụng Windows cô lập Windows gốc khi bạn chạy trong PowerShell và sử dụng cơ chế cô lập của Linux khi bạn chạy trong WSL2.

Trên Linux và WSL2, trước tiên hãy cài đặt bubblewrap bằng trình quản lý gói của bạn:

sudo apt install bubblewrap
sudo dnf install bubblewrap

Codex sử dụng tệp thực thi bwrap đầu tiên tìm thấy trên PATH. Nếu không có tệp thực thi bwrap nào, Codex sẽ chuyển sang một trình trợ giúp đi kèm, nhưng trình trợ giúp đó yêu cầu hỗ trợ tạo không gian tên người dùng không đặc quyền. Việc cài đặt gói của bản phân phối cung cấp bwrap giúp cấu hình này hoạt động ổn định.

Codex hiển thị cảnh báo khi khởi động nếu thiếu bwrap hoặc nếu trình trợ giúp không thể tạo không gian tên người dùng cần thiết. Trên các bản phân phối hạn chế cài đặt AppArmor này, hãy ưu tiên tải hồ sơ AppArmor bwrap để bwrap có thể tiếp tục hoạt động mà không phải tắt hạn chế trên toàn hệ thống.

Cách quyền hoạt động

Sử dụng tùy chọn kiểm soát quyền trên bề mặt bạn đang dùng để thay đổi cách Codex xử lý các hành động cục bộ.

Quy trình phê duyệt xác định khi nào Codex tạm dừng trước một hành động, còn môi trường cô lập xác định những tệp và tài nguyên mạng mà lệnh có thể truy cập. Khi một yêu cầu phê duyệt cung cấp nhiều phạm vi khác nhau, chẳng hạn như phê duyệt một lần hoặc cho cả phiên, hãy chọn phạm vi hẹp nhất cho phép tác vụ tiếp tục. Giữ ranh giới dự án làm mặc định; sử dụng các dự án hoặc worktree riêng biệt thay vì mở rộng quyền truy cập trên các kho lưu trữ không liên quan.

ChatGPT Work chạy mã và lệnh shell trong một môi trường được quản lý, tách biệt. Chính sách workspace và các cơ chế kiểm soát dành riêng cho từng công cụ xác định những khả năng hiện có. Khi tùy chọn này khả dụng, hãy dùng Cài đặt > Kiểm soát dữ liệu > Quyền truy cập mạng của Work để quản lý quyền truy cập mạng của mã và lệnh shell. Bật Cho phép truy cập Internet công cộng để cho phép các lệnh đó truy cập Internet công cộng. Khi tắt tùy chọn này, các lệnh chỉ có thể truy cập những tên máy chủ bắt buộc trong một danh sách cho phép được quản lý.

Tìm kiếm trên web, plugin và trình duyệt từ xa có các cơ chế kiểm soát riêng. Các thay đổi có hiệu lực sau khi lượt chạy mã hoặc shell hiện tại kết thúc và Work làm mới môi trường thực thi. ChatGPT web không cung cấp bộ chọn chế độ môi trường cô lập hoặc phê duyệt của Codex cục bộ.

Trong ứng dụng ChatGPT dành cho máy tính, hãy sử dụng tùy chọn kiểm soát quyền bên dưới vùng soạn thảo. Tùy theo cấu hình của bạn, menu có thể bao gồm Yêu cầu phê duyệt, Phê duyệt thay tôi đối với các yêu cầu phê duyệt đủ điều kiện, Toàn quyền truy cập và các hồ sơ quyền được đặt tên hoặc tùy chỉnh.

Trong CLI, hãy nhập /permissions để mở bộ chọn quyền và thay đổi hồ sơ quyền đang hoạt động.

Trong tiện ích mở rộng IDE, hãy dùng nút điều khiển quyền bên dưới ô soạn thảo. Tùy theo cấu hình, menu có thể bao gồm Yêu cầu phê duyệt, Phê duyệt thay tôi dành cho các yêu cầu phê duyệt đủ điều kiện, Toàn quyền truy cập cùng các hồ sơ quyền có tên hoặc tùy chỉnh.

Cấu hình mặc định

Để luôn bắt đầu với cùng một hành vi, hãy đặt giá trị mặc định trong config.toml. Kiến thức cơ bản về cấu hình giải thích cách hoạt động, còn Tài liệu tham khảo về cấu hình mô tả chính xác các khóa cho sandbox_mode, approval_policy, approvals_reviewersandbox_workspace_write.writable_roots. Hãy dùng các thiết lập này để quyết định mức độ tự chủ mặc định của tác nhân, những thư mục tác nhân có thể ghi, thời điểm tác nhân phải tạm dừng để xin phê duyệt và ai sẽ xem xét các yêu cầu phê duyệt đủ điều kiện.

Ở cấp độ tổng quan, các chế độ môi trường cô lập phổ biến là:

  • read-only: Tác nhân có thể kiểm tra tệp nhưng không thể chỉnh sửa tệp hoặc chạy lệnh khi chưa được phê duyệt.
  • workspace-write: Tác nhân có thể đọc tệp, chỉnh sửa trong workspace và chạy các lệnh cục bộ thường lệ bên trong ranh giới đó. Đây là chế độ mặc định ít gián đoạn dành cho công việc cục bộ.
  • danger-full-access: Tác nhân chạy mà không bị hạn chế bởi môi trường cô lập. Chế độ này loại bỏ các ranh giới hệ thống tệp và mạng, vì vậy chỉ nên sử dụng khi bạn muốn tác nhân hoạt động với toàn quyền truy cập.

Các chính sách phê duyệt phổ biến là:

  • untrusted: Tác nhân hỏi trước khi chạy các lệnh không thuộc tập lệnh đáng tin cậy của tác nhân.
  • on-request: Theo mặc định, tác nhân làm việc bên trong môi trường cô lập và sẽ hỏi khi cần vượt ra ngoài ranh giới đó.
  • never: Tác nhân không dừng lại để hiển thị lời nhắc phê duyệt.

Khi quy trình phê duyệt có tính tương tác, bạn cũng có thể chọn người xem xét bằng approvals_reviewer:

  • user: lời nhắc phê duyệt được hiển thị cho người dùng. Đây là tùy chọn mặc định.
  • auto_review: lời nhắc phê duyệt đủ điều kiện được chuyển đến một tác nhân đánh giá (xem đánh giá tự động).

Toàn quyền truy cập nghĩa là sử dụng sandbox_mode = "danger-full-access" cùng với approval_policy = "never". Ngược lại, cấu hình sẵn tự động hóa cục bộ có rủi ro thấp hơn là sandbox_mode = "workspace-write" cùng với approval_policy = "on-request" hoặc các cờ CLI tương ứng --sandbox workspace-write --ask-for-approval on-request. Sau đó, bạn có thể giữ approvals_reviewer = "user" để phê duyệt thủ công hoặc đặt approvals_reviewer = "auto_review" để tự động xét duyệt yêu cầu phê duyệt.

Nếu cần tác nhân làm việc trên nhiều thư mục, các thư mục gốc có thể ghi cho phép bạn mở rộng những nơi tác nhân có thể sửa đổi mà không phải loại bỏ hoàn toàn môi trường cô lập. Nếu cần một ranh giới tin cậy rộng hơn hoặc hẹp hơn, hãy điều chỉnh chế độ môi trường cô lập mặc định và chính sách phê duyệt thay vì dựa vào các ngoại lệ dùng một lần.

Khi quy trình làm việc cần một ngoại lệ cụ thể, hãy sử dụng quy tắc. Các quy tắc cho phép bạn cho phép, yêu cầu xác nhận hoặc cấm các tiền tố lệnh bên ngoài môi trường cô lập; cách này thường phù hợp hơn so với việc mở rộng quyền truy cập trên diện rộng. Để biết các vị trí thiết lập dành riêng cho IDE, hãy xem cài đặt tiện ích Codex cho IDE.

Khi khả dụng, tính năng đánh giá tự động không thay đổi ranh giới của môi trường cô lập. Đây là một tùy chọn approvals_reviewer có thể dùng cho các yêu cầu phê duyệt tại ranh giới đó, chẳng hạn như nâng quyền môi trường cô lập, truy cập mạng bị chặn hoặc các lệnh gọi công cụ có tác dụng phụ nhưng vẫn cần được phê duyệt. Những hành động đã được cho phép bên trong môi trường cô lập sẽ chạy mà không cần đánh giá thêm. Để tìm hiểu vòng đời của tác nhân đánh giá, các loại sự kiện kích hoạt, ngữ nghĩa khi từ chối và chi tiết cấu hình, hãy xem đánh giá tự động.

Thông tin chi tiết về từng nền tảng có trong tài liệu dành riêng cho nền tảng đó. Để tìm hiểu cách thiết lập Windows gốc, hành vi và cách khắc phục sự cố, hãy xem Windows. Để biết các yêu cầu đối với quản trị viên và các hạn chế ở cấp tổ chức liên quan đến môi trường cô lập và hoạt động phê duyệt, hãy xem Phê duyệt và bảo mật cho tác nhân.