從寫程式碼,到創作下一幕

探索 字節跳動 - 火山方舟 的 AI 程式設計與影片創作活動。

Agent Plan & Coding Plan

一站體驗多款熱門模型,為 AI 程式設計與智能體開發提供更多選擇。新使用者可聯絡(微信: goo_lvyouyou)免費體驗 9.9 agent plan。

Seedance 2.5

讓創意,躍然成片。探索 30 秒影片、多模態參考與局部編輯,把腦海中的畫面變成下一支作品。

繁體中文

沙箱

ChatGPT 和 Codex 客戶端中的沙箱工作原理

ChatGPT 桌面應用程式

沙箱是一道邊界,它使智能體能夠自主執行操作,同時又不會獲得對你電腦的 無限制存取權限。當本機聊天在 ChatGPT 桌面應用程式、Codex CLI 或 IDE 擴充功能 中執行命令時,這些命令會在受限環境中執行,而非預設擁有完全存取權限。

該環境定義了智能體可以自行執行哪些操作,例如可以修改哪些檔案,以及命令能否使用 網路。當任務始終處於這些邊界內時,智能體無需停下來請求確認即可繼續推進。當任務 需要越過邊界時,則會進入核准流程。

沙箱的作用

沙箱適用於啟動的命令,而不僅僅是內建檔案操作。如果智能體執行 git、套件管理器或測試執行器等工具, 這些命令也會繼承相同的沙箱邊界。

Codex 在各作業系統上使用平台原生的強制執行機制。macOS、Linux、WSL2 和原生 Windows 上的實現各不相同,但所有使用介面的理念相同:為智能體提供一個有明確邊界的 工作空間,使日常任務可以在清晰的限制內自主執行。

為何重要

沙箱可以減少核准疲勞。你無需確認每條低風險命令;智能體可以在你已核准的邊界內 讀取檔案、進行編輯並執行日常專案命令。

它還為智能體式工作提供了更清晰的信任模型。你信任的不只是智能體的意圖,還包括 智能體確實在強制限制內執行。這樣一來,你可以更放心地讓智能體獨立工作,同時仍然 清楚它會在何時停下來尋求幫助。

開始使用

預設權限模式會自動應用沙箱。

前提條件

在 macOS 上,沙箱使用內建的 Seatbelt 框架,無需額外設定即可使用。

在 Windows 上,透過 PowerShell 執行時,Codex 使用原生 Windows 沙箱;透過 WSL2 執行時,則使用 Linux 沙箱實現。

在 Linux 和 WSL2 上,請先使用套件管理器安裝 bubblewrap:

sudo apt install bubblewrap

Codex 使用在 PATH 中找到的第一個 bwrap 執行檔。如果沒有可用的 bwrap 執行檔,Codex 會回退到捆綁的輔助程式,但該輔助程式要求系統支援建立非特權使用者命名空間。安裝 提供 bwrap 的發行版套件可確保此設定可靠執行。

當缺少 bwrap,或輔助程式無法建立所需的使用者命名空間時,Codex 會顯示啟動警告。 在限制此 AppArmor 設定的發行版上,建議載入 bwrap AppArmor 設定檔,使 bwrap 無需在全域範圍內停用該限制也能繼續工作。

Work Cloud 的本機電腦存取

對於使用 Work Cloud 本機電腦存取功能的任務,OpenAI 雲端負責協調對話。沙箱限制取決於每個步驟的執行位置:

  • 雲端執行: Work 雲容器使用現有的 Work Cloud 策略。桌面瀏覽器的站點規則不會自動應用於雲端瀏覽器。
  • 本機執行: 受支援的本機執行要求會約束已連線電腦上執行的步驟。

對於具有本機存取權限的 Work 和 dots,啟用託管策略後,受支援的 Global 策略會應用於共享的雲端編排器。Work 雲容器和 dots 雲電腦使用各自的執行設定與要求。請分別測試本機和雲端執行,以確認每個環境中適用的控制措施。一個環境的策略不會授予對另一個環境的存取權限。

在同一策略內,優先順序從高到低依次為:特定作業系統的環境覆蓋設定 → 適用於所有作業系統的環境覆蓋設定 → Global。優先順序較高的策略優先,即使優先順序較低的策略更具體。對於本機執行,MDM 和舊版託管裝置要求優先於 Agent Security,而 Agent Security 優先於裝置的系統要求檔案。

請查閱託管設定,瞭解特定於欄位的合併規則和執行時限制,並在 Work 本機安全和 Work 雲端安全中檢視實際生效的檔案和網路限制。

權限的工作原理

使用所在介面的權限控制項,調整 Codex 處理本機操作的方式。

核准決定 Codex 在執行操作前何時暫停,而沙箱決定命令可以存取哪些檔案和網路資源。 當核准提供不同範圍(例如僅核准一次或核准整個會話)時,請選擇能讓任務繼續進行的 最小範圍。預設保持專案邊界;如需處理不相關的程式碼儲存庫,請使用單獨的專案或工作樹, 而不是擴大存取範圍。

在 ChatGPT 桌面應用程式中,使用輸入框下方的權限控制項。根據你的設定,選單可能包括 請求核准、用於符合條件的核准請求的代我核准、完全存取權限,以及命名或 自訂權限設定檔。

向 Codex 詢問任何問題。

請求核准

Codex 可以讀取和編輯當前工作區中的檔案,並執行日常本機命令。使用網際網路或越過工作區邊界前,它會先詢問。

沙箱workspace-write核准策略on-request審查者user

設定預設值

要讓每次啟動時的行為保持一致,請在 config.toml 中設定預設值。 設定基礎介紹其工作原理, 設定參考則記錄了 sandbox_mode、approval_policy、approvals_reviewer 和 sandbox_workspace_write.writable_roots 的確切鍵。使用這些設定可決定智能體預設擁有多少 自主權限、可以寫入哪些目錄、何時應暫停以請求核准,以及由誰審查符合條件的核准請求。

概括而言,常見的沙箱模式包括:

  • read-only:智能體可以檢查檔案,但未經核准不能編輯檔案或執行 命令。
  • workspace-write:智能體可以讀取檔案、在工作區內編輯檔案,並在該邊界內執行 日常本機命令。這是本機工作的預設低阻力模式。
  • danger-full-access:智能體不受沙箱限制地執行。此模式會移除 檔案系統和網路邊界,僅應在你希望智能體擁有完全存取權限時使用。

常見的核准策略包括:

  • on-request:智能體預設在沙箱內工作,需要越過該邊界時會 詢問。
  • never:智能體不會因核准提示而停下。

Codex 和 ChatGPT Work 不再支援將 untrusted 作為可選的核准 策略。如果現有設定使用此值,請參閱從已停用的 untrusted 核准策略遷移。

採用互動式核准時,你還可以透過 approvals_reviewer 選擇由誰審查:

  • user:向使用者顯示核准提示。這是預設設定。
  • auto_review:符合條件的核准提示將傳送給審查智能體(請參閱 自動審查)。

完全存取權限是指同時使用 sandbox_mode = "danger-full-access" 和 approval_policy = "never"。相比之下,風險較低的本機自動化 預設是同時使用 sandbox_mode = "workspace-write" 和 approval_policy = "on-request",或使用對應的 CLI 標誌 --sandbox workspace-write --ask-for-approval on-request。之後,你可以保留 approvals_reviewer = "user" 以進行手動核准,或設定 approvals_reviewer = "auto_review" 以進行自動核准審查。

如果需要智能體跨多個目錄工作,可寫根目錄允許你擴展它可以修改的位置, 而不必完全移除沙箱。如果需要更寬鬆或更嚴格的信任邊界,請調整預設沙箱模式 和核准策略,而不要依賴一次性例外。

當工作流程需要特定例外時,請使用規則。規則 允許你對沙箱外的命令前綴執行允許、提示或禁止操作,通常比大幅擴大存取權限 更合適。有關 IDE 專用設定入口,請參閱 Codex IDE 擴充功能設定。

自動審查(如果可用)不會改變沙箱邊界。它是處理該邊界處核准請求的 一種 approvals_reviewer,例如沙箱權限提升、網路存取受阻或仍需核准的 有副作用工具呼叫。沙箱內已經允許的操作無需額外審查即可執行。有關審查者生命週期、 觸發類型、拒絕語義和設定詳情,請參閱 自動審查。

平台詳情請參閱各平台的專用文件。有關原生 Windows 的設定、行為和故障排除, 請參閱 Windows。有關沙箱和核准的管理員要求及 組織級限制,請參閱智能體核准與安全。