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

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

Agent Plan & Coding Plan

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

Seedance 2.5

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

繁體中文

沙箱

沙箱

沙箱在 ChatGPT 和 Codex 各客戶端中的工作方式

ChatGPT 桌面應用

沙箱劃定了一條邊界,讓智能體能夠自主行動,同時避免賦予它 不受限制的計算機存取權限。當本機聊天在 ChatGPT 桌面應用Codex CLIIDE 擴充套件 中執行命令時,這些命令會在 受限環境中執行,而不是預設擁有完整存取權限。

該環境規定了智能體可以自行執行哪些操作,例如它可以修改 哪些檔案,以及命令能否使用網路。當任務處於 這些邊界內時,智能體就能持續推進,無須停下來請求確認。當 它需要越過邊界時,則由審批流程接管。

沙箱的作用

沙箱適用於啟動的命令,而不只是內建的檔案 操作。如果智能體執行 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 能夠繼續執行,無須在全域停用該限制。

權限的工作方式

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

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

在 ChatGPT 桌面應用中,使用輸入框下方的權限控制項。 根據你的設定,選單可能包含請求審批、 針對符合條件的審批請求提供的代我審批完全存取權限,以及具名或 自定義權限設定。

向 Codex 提問。

請求審批

Codex 可以讀取和編輯當前工作區中的檔案,並執行常規本機命令。在使用網際網路或超出工作區邊界之前,它會徵求同意。

沙箱workspace-write審批策略on-request稽核方user

設定預設設定

若希望每次啟動時行為一致,請在 config.toml 中設定預設值。 設定基礎介紹其工作方式, 設定參考則列出了以下設定的具體鍵: sandbox_modeapproval_policyapprovals_reviewersandbox_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。有關沙箱和審批的管理員 要求及組織級約束,請參閱 智能體審批與安全