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

Ứng dụng ChatGPT trên máy tính

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 giao diện: 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 môi trường 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

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.

Truy cập máy tính cục bộ bằng Work Cloud

Đối với các tác vụ sử dụng tính năng truy cập máy tính cục bộ bằng Work Cloud, đám mây của OpenAI điều phối cuộc trò chuyện. Các hạn chế của môi trường cô lập phụ thuộc vào nơi thực hiện từng bước:

  • Thực thi trên đám mây: Các container đám mây của Work sử dụng các chính sách Work Cloud hiện có. Các quy tắc trang web của trình duyệt trên máy tính không tự động áp dụng cho trình duyệt trên đám mây.
  • Thực thi cục bộ: Các yêu cầu thực thi cục bộ được hỗ trợ chi phối các bước trên máy tính được kết nối.

Đối với Work có quyền truy cập cục bộ và dots, chính sách Global được hỗ trợ áp dụng cho bộ điều phối đám mây dùng chung khi chính sách được quản lý được bật. Các container đám mây của Work và máy tính đám mây dots sử dụng cấu hình và yêu cầu thực thi riêng. Kiểm thử riêng việc thực thi cục bộ và trên đám mây để xác nhận các cơ chế kiểm soát nào áp dụng trong từng môi trường. Chính sách dành cho một môi trường không cấp quyền truy cập vào môi trường khác.

Trong một chính sách, thứ tự từ cao xuống thấp là thiết lập ghi đè môi trường dành riêng cho từng hệ điều hành → thiết lập ghi đè môi trường cho mọi hệ điều hành → Global. Chính sách có mức ưu tiên cao hơn được áp dụng ngay cả khi chính sách có mức ưu tiên thấp hơn cụ thể hơn. Đối với thực thi cục bộ, MDM và các yêu cầu quản lý thiết bị kiểu cũ được ưu tiên hơn Bảo mật tác nhân, còn Bảo mật tác nhân được ưu tiên hơn tệp yêu cầu hệ thống của thiết bị.

Xem Cấu hình được quản lý để biết các quy tắc hợp nhất riêng cho từng trường và giới hạn khi chạy, đồng thời kiểm tra các hạn chế về tệp và mạng có hiệu lực trong Bảo mật cục bộ của Work và Bảo mật đám mây của Work.

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

Sử dụng tùy chọn kiểm soát quyền trên giao diện 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.

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.

Hỏi Codex bất cứ điều gì.

Yêu cầu phê duyệt

Codex có thể đọc và chỉnh sửa tệp trong không gian làm việc hiện tại và chạy các lệnh cục bộ thông thường. Codex sẽ hỏi trước khi sử dụng internet hoặc vượt ra ngoài phạm vi không gian làm việc.

Môi trường cô lậpworkspace-writeChính sách phê duyệton-requestNgười xét duyệtuser

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_reviewer và sandbox_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 không gian làm việc 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à:

  • 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à hỏi khi cần vượt ra ngoài phạm vi đó.
  • never: Tác nhân không dừng lại để yêu cầu phê duyệt.

Codex và ChatGPT Work không còn hỗ trợ untrusted làm chính sách phê duyệt có thể lựa chọn. Nếu cấu hình hiện có sử dụng giá trị đó, hãy xem Chuyển đổi từ chính sách phê duyệt untrusted đã ngừng hỗ trợ.

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.