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

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

Agent Plan & Coding Plan

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

Seedance 2.5

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

繁體中文

Windows 沙箱

Windows 沙箱

設定 Windows 上的原生 Codex 沙箱並排查其問題

通過原生 ChatGPT 桌面應用CLIIDE 擴充套件,在 Windows 上使用 Codex。

Windows 版 ChatGPT 桌面應用支援並行聊天、 工作樹、計劃任務、Git 功能、內建瀏覽器、檔案預覽、 外掛和技能等核心工作流程。

該應用可以在 PowerShell 中使用 Windows 沙箱原生執行,無需 WSL 或虛擬機器。這樣既能讓 Codex 保持 Windows 原生 工作流程,又能實施有邊界的檔案系統和網路權限。 訊息編輯器上方的 ChatGPT 桌面應用 Windows 沙箱設定提示 在 Windows 上使用 ChatGPT 桌面應用:通過原生 Windows 應用,在一處跨專案工作、並行執行聊天並審查結果。

原生 Windows 沙箱有兩種模式:

  • 使用更強的 elevated 沙箱在 Windows 上原生執行,
  • 使用備用 unelevated 沙箱在 Windows 上原生執行。

設定 Windows 沙箱

在 Windows 上原生執行 Codex 時,代理模式使用 Windows 沙箱, 阻止向工作資料夾之外的檔案系統寫入,並在未經你明確核准時 阻止網路存取。

原生 Windows 沙箱支援兩種模式,你可以在 config.toml 中設定:

[windows]
sandbox = "elevated" # or "unelevated"

elevated 是首選的原生 Windows 沙箱。它使用專用的 低權限沙箱使用者、檔案系統權限邊界、防火牆 規則,以及在沙箱中執行命令所需的本機策略更改。

unelevated 是備用的原生 Windows 沙箱。它使用從當前使用者派生的 受限 Windows 令牌執行命令,應用基於 ACL 的 檔案系統邊界,並使用環境級離線控制來取代 專用離線使用者防火牆規則。它比 elevated 弱,但在本機或 企業策略阻止需管理員核准的設定時,仍然很有用。

如果兩種模式都可用,請使用 elevated。如果預設原生沙箱 無法在你的環境中執行,請在排查設定問題期間使用 unelevated 作為備用方案。

企業管理員可以通過 requirements.toml,限制 Codex 可以使用哪些原生沙箱實現:

[windows]
allowed_sandbox_implementations = ["elevated"]

此範例要求使用 elevated 沙箱,並阻止使用者回退到 unelevated。要允許任一實現,請同時包含兩個值; 未選擇模式時,Codex 優先使用 elevated。有關 支援的值,請參閱 requirements.toml 參考

預設情況下,兩種沙箱模式還會使用專用桌面,以增強 UI 隔離。僅當相容性需要較舊的 Winsta0\\Default 行為時, 才設定 windows.sandbox_private_desktop = false

沙箱權限

Windows 版本矩陣

Windows 版本 支援級別 說明
Windows 11 推薦 Windows 上執行 Codex 的最佳基準。如果要標準化企業部署,請使用此版本。
近期且已完全更新的 Windows 10 盡力支援 可以執行,但可靠性低於 Windows 11。在 Windows 10 上,Codex 依賴包括 ConPTY 在內的現代控制台支援。實際需要 Windows 10 版本 1809 或更高版本。
較舊的 Windows 10 版本 不推薦 更可能缺少 ConPTY 等必需的控制台元件,也更可能在企業環境中失敗。

其他環境前提:

  • winget 應當可用。如果缺失,請更新 Windows 或安裝 Windows Package Manager,再設定 Codex。
  • 推薦的原生沙箱依賴經管理員核准的設定。
  • 即使作業系統版本本身符合要求,某些企業託管裝置也會阻止所需的設定步驟。

授予沙箱讀取權限

當命令因 Windows 沙箱無法讀取某個目錄而失敗時,請使用:

/sandbox-add-read-dir C:\absolute\directory\path

路徑必須是現有的絕對目錄。命令成功後,之後在沙箱中執行的命令可在當前會話期間讀取該目錄。

預設使用原生 Windows 沙箱。當你需要 Linux 原生工具、工作流程已位於 WSL2 中,或 兩種原生 Windows 沙箱模式都無法滿足需求時,請選擇 WSL

故障排除和常見問題

排查受管理 Windows 計算機的問題時,請先檢查原生 沙箱模式、Windows 版本以及 Codex 顯示的任何策略錯誤。大多數原生 Windows 支援問題源自沙箱設定、登入權限或檔案系統 權限,而非編輯器本身。

我的原生沙箱設定失敗

如果 Codex 無法完成 elevated 沙箱設定,最常見的原因 包括:

  • Windows UAC 或管理員提示被拒絕,
  • 計算機不允許建立本機使用者或組,
  • 計算機不允許更改防火牆規則,
  • 計算機阻止沙箱使用者所需的登入權限,
  • 或其他企業策略阻止了部分設定流程。

可嘗試以下操作:

  1. 再次嘗試設定 elevated 沙箱;如果環境允許, 請核准管理員提示。
  2. 如果公司筆記型電腦阻止此操作,請詢問 IT 團隊,該計算機 是否允許由管理員核准本機使用者/組建立、防火牆 設定以及必需的沙箱使用者登入權限設定。
  3. 如果預設設定仍然失敗,請使用 unelevated 沙箱,以便在 調查問題期間繼續工作。

Codex 將我切換到了非提升權限沙箱

這意味著 Codex 無法在你的計算機上完成更強的 elevated 沙箱 設定。

  • Codex 仍可在沙箱模式下執行。
  • 它仍會應用基於 ACL 的檔案系統邊界,但不會使用 elevated 的獨立沙箱使用者邊界,網路 隔離也較弱。
  • 這是一個實用的備用方案,但不是首選的長期企業 設定。

如果你使用的是受管理的企業筆記型電腦,最佳長期解決方案通常是 在 IT 團隊的協助下讓 elevated 沙箱正常工作。

我看到了 Windows 錯誤 1385

如果沙箱命令因錯誤 1385 而失敗,說明 Windows 拒絕了沙箱使用者 啟動命令所需的登入類型。

實際上,這通常意味著 Codex 已成功建立沙箱使用者, 但 Windows 策略仍阻止這些使用者啟動沙箱 命令。

處理方法:

  1. 詢問 IT 團隊,裝置策略是否向 Codex 建立的沙箱使用者 授予了所需的登入權限。
  2. 如果問題僅影響部分計算機或團隊,請比較組策略或 OU 差異。
  3. 如果需要立即繼續工作,請在調查策略問題期間 使用 unelevated 沙箱。
  4. 傳送 CODEX_HOME/.sandbox/sandbox.log,並附上你的 Windows 版本和 簡短的故障說明。

Codex 警告某些資料夾可由 Everyone 寫入

Codex 可能會警告某些資料夾可由 Everyone 寫入。

如果看到此警告,則這些資料夾的 Windows 權限過於寬泛, 沙箱無法對其提供完整保護。

處理方法:

  1. 檢查 Codex 在警告中列出的資料夾。
  2. 如果適合你的環境,請移除這些資料夾的 Everyone 寫入 權限。
  3. 修正這些權限後,重啟 Codex 或重新執行沙箱設定。

如果不確定如何更改這些權限,請向 IT 團隊尋求幫助。

沙箱命令無法存取網路

根據所用權限模式,某些 Codex 聊天會被有意設定為 無法存取出站網路。

如果任務因無法存取網路而失敗:

  1. 檢查該任務是否本應在停用網路的情況下執行。
  2. 如果你原本需要網路存取,請重啟 Codex 並重試。
  3. 如果問題持續出現,請收集沙箱日誌,以便團隊檢查 計算機是否處於不完整或損壞的沙箱狀態。

沙箱之前可以正常工作,後來停止了

以下情況可能導致此問題:

  • 移動儲存庫或工作區,
  • 更改計算機權限,
  • 更改 Windows 策略,
  • 或更改其他系統設定。

可嘗試以下操作:

  1. 重啟 Codex。
  2. 再次嘗試設定 elevated 沙箱。
  3. 如果仍未解決,請暫時使用 unelevated 沙箱作為 備用方案。
  4. 收集沙箱日誌以供審查。

我需要向 OpenAI 傳送診斷資訊

如果問題仍然存在,請傳送:

  • CODEX_HOME/.sandbox/sandbox.log

同時附上以下資訊也會有所幫助:

  • 對你嘗試執行的操作作簡短說明,
  • elevated 沙箱是否失敗,或是否使用了 unelevated 沙箱,
  • 應用中顯示的任何錯誤訊息,
  • 是否看到 1385 或其他 Windows 或 PowerShell 錯誤,
  • 以及使用的是 Windows 11 還是 Windows 10。

請勿傳送:

  • CODEX_HOME/.sandbox-secrets/ 的內容

IDE 擴充套件已安裝但無響應

你的系統可能缺少某些原生依賴項所需的 C++ 開發工具:

  • Visual Studio Build Tools(C++ 工作負載)
  • Microsoft Visual C++ Redistributable (x64)
  • 使用 winget 時,執行 winget install --id Microsoft.VisualStudio.2022.BuildTools -e

安裝後,請完全重啟 VS Code。