AIAgent

OpenAI Agents SDK Sandbox 2026:上線前怎麼驗收?

OpenAI Agents SDK Sandbox 2026:上線前怎麼驗收?

終端機裡的 SandboxAgent 範例明明成功,換到交付環境卻能讀到不該讀的檔案,任務中斷後也無法安全續跑。

最快的解法不是再跑一次成功案例,而是依序完成六類 OpenAI Agents SDK Sandbox 驗收:工作區契約、確定性編排測試、真實環境整合、權限隔離、狀態恢復,以及失敗回滾。

獲勝者:可重複建立、權限最小化並具備可回滾證據的驗收環境。 如果專案依賴 macOS 工具鏈、需要並行隔離測試,或必須在短期內集中回歸,才值得額外準備隔離的雲端 Mac;否則先在現有容器或託管沙箱完成邊界驗證,避免把環境搬遷誤當成安全驗收。

這篇適合三類讀者:

  • 已跑通 SandboxAgent 範例,但還沒有建立上線門檻的開發者。
  • 要驗證檔案讀寫、命令執行、網路與憑據邊界的平台工程師。
  • 需要在本機、容器或雲端 Mac 之間安排測試環境的 AI 技術負責人。

先看失敗案例:成功執行不是放行證據

一個常見的交付事故是:開發者在本機建立了測試資料夾,Agent 能讀取輸入、執行命令、產出檔案,追蹤紀錄也顯示流程正常。到了試運行環境,卻出現三種問題:

  • 工作目錄依賴本機殘留檔案,重新建立環境後找不到輸入。
  • 執行身份繼承了過大的檔案或網路權限,能觸達工作區以外的內容。
  • 任務被中斷後重新執行,重複覆寫已產出的檔案,或把上一個會話的檔案帶入新任務。

這些不是單純的模型輸出問題。它們分別涉及環境可重現性、執行邊界與狀態生命週期。官方文件目前將 Sandbox Agents 標示為 beta,API、預設設定和支援能力在正式可用前仍可能變動,因此驗收紀錄必須連同版本、設定和異常證據保存,而不能只截取一次成功畫面。官方 Sandbox Agents 快速開始文件 已提供目前的使用入口,正式放行仍應以實際版本重新核對。

第一階段:先於執行前凍結工作區契約

驗收的第一個時間點,不是 Agent 啟動,而是測試資料準備完成。先把工作區寫成可檢查的契約,至少要列出:

  • Agent 可以讀取的目錄與檔案類型。
  • 可以新增、修改或刪除的路徑。
  • 必須拒絕的主機路徑、掛載目錄和外部儲存位置。
  • 可用工具、命令、網路能力與環境變數。
  • 任務完成後必須保留的產物,以及必須清理的暫存檔。

同時保存 Manifest、執行身份、能力工具和 SandboxRunConfig 的預期狀態。官方的 SandboxRunConfig 參考 可用來核對執行設定的欄位與邊界;這份設定應該成為測試基線,而不是藏在開發者個人機器上的隱性狀態。

OpenAI Agents SDK Sandbox 上線前要測試什麼?
先測試契約能否在空白環境中重建,再測試 Agent 是否只觸達契約允許的路徑。若測試需要手動補檔、修改權限或依賴個人環境變數,驗收應直接標記為阻斷,而不是進入下一階段。

驗收項目 放行證據 阻斷條件
工作區 新環境可依照版本化設定建立 依賴本機殘留檔案或手動修正
身份與權限 執行身份、掛載範圍和工具清單可追溯 權限來源不明或超出任務需要
設定基線 Manifest 與 SandboxRunConfig 已保存 每次執行使用不同的隱性預設
產物管理 輸入、輸出、暫存檔的去向明確 舊會話檔案可被新任務讀取

第二階段:用確定性測試拆開編排與沙箱

接著驗證的是 SDK 編排邏輯,而不是真實檔案系統。使用官方測試工具替代真實模型和沙箱執行,可固定工具回應,檢查工具參數、能力路由、錯誤分支、重試和最終輸出處理。Agents SDK 測試指南 說明了這類測試的用途;scripted_sandbox_session API 則可用來建立可預期的沙箱互動。

測試案例至少應包括:

  • 正常工具呼叫:參數格式、工具順序與最終輸出正確。
  • 命令失敗:Agent 是否停止、改走備援路徑或要求人工介入。
  • 檔案不存在:是否回報明確錯誤,而不是自行猜測另一個路徑。
  • 流程提前結束:是否清楚標記未完成產物,避免被誤認為成功。
  • 重試分支:重試是否會重複執行不可逆操作。

這一階段的優點是快、可重跑、容易定位錯誤。缺點也很明確:它不能證明真實檔案權限、程序生命週期、網路邊界或隔離機制有效。

提醒: 確定性測試通過,只代表「編排在預期輸入下做出預期決定」。它不能替代真實沙箱整合測試,也不能替代生產式隔離驗證。

第三階段:在真實沙箱中核對環境一致性

當編排測試通過後,才把代表性任務放進真實沙箱。這時要固定目標交付環境的依賴、目錄結構、執行方式和清理流程,並把結果與第一階段的契約逐項比對。

可用以下方式判斷:

  • 命令是否存在,版本是否符合專案鎖定條件。
  • 工作目錄是否與預期一致。
  • 輸出檔案的擁有者、權限、格式和位置是否正確。
  • 重新建立工作區後,任務能否取得相同的必要輸入。
  • 冷啟動、連續執行和並行任務是否出現不同的狀態污染。

這裡不應把其他系統的容器結果直接當成 macOS 驗收結果。凡是依賴 macOS 專屬工具鏈、簽名流程、系統元件或特定檔案行為的任務,都要在真實 Mac 環境重測。這不是因為 Mac 必然更快,而是執行邊界本身不同。

本地通過的 Agent 沙箱為什麼上線後失敗?
最常見的原因是本機帶有未寫入設定的依賴:個人憑據、預先安裝的命令、可寫入的暫存目錄,或上一個任務留下的檔案。若本地、容器和託管客戶端使用不同的 Manifest、掛載方式或執行身份,成功結果就沒有可移植性。

測試層級 可證明的事情 不能證明的事情
確定性編排 工具參數、路由、錯誤分支與輸出處理 真實檔案、程序和權限隔離
真實沙箱整合 依賴、目錄、命令與產物能否重現 生產流量下的全面安全性
生產式隔離 執行身份、網路、憑據和高風險操作邊界 未測試版本的未來行為

若需要把測試結果保留成可追蹤事件,應同步保存執行設定、工具呼叫、錯誤和產物雜湊。官方 Tracing 文件 可作為追蹤欄位和事件檢查的依據,但追蹤本身不是隔離證明;能看到一次越權,和能阻止越權,是兩件不同的事。

第四階段:高權限操作前驗證隔離邊界

檔案讀寫和命令執行一旦涉及刪除、覆蓋、外發資料或修改系統,就必須單獨設計拒絕或審批路徑。驗收時不要只問「命令能否成功」,還要問「不應成功的命令是否確實失敗」。

SandboxAgent 怎麼驗證檔案和命令權限?
建立允許、拒絕和需要審批的三組案例。允許案例只碰觸契約內的目錄;拒絕案例嘗試讀取工作區外檔案、寫入唯讀位置、使用未列出的命令或送出未授權資料;審批案例則確認沒有審批時任務會停在安全狀態。每次結果都要保存命令、執行身份、目標路徑和錯誤回應。

驗證重點包括:

  • 掛載目錄是否按唯讀需求設計,而非預設全部可寫。
  • 網路能力是否必要,環境變數是否含有不應進入沙箱的憑據。
  • 外部儲存和主機路徑是否超出工作區邊界。
  • 高風險命令被拒絕後,Agent 是否仍會用變形命令繞過規則。
  • 清理失敗時,是否能停止後續任務並隔離殘留資料。

本地客戶端只能代表本地客戶端的權限狀態,不能等同安全隔離環境。生產式任務應另外驗證容器或託管執行邊界,並明確記錄哪些能力由平台保證、哪些只是由 Agent 提示詞約束。

第五階段:用中斷測試驗證快照與續跑

完整成功路徑最容易通過,也最不能說明恢復能力。長任務進入試運行後,應主動在不同階段中斷,檢查會話狀態、快照或已保存工作區能否按設計恢復。

Agent 沙箱如何測試快照恢復和任務續跑?
先在產生中間產物後中斷,再從保存狀態恢復。檢查已完成的高風險操作不會被重複執行,未完成步驟仍有清楚標記,且新會話不會讀到舊任務的非預期檔案。若恢復結果與首次執行不一致,應把任務標記為不可恢復,直接重新建立環境,而不是讓 Agent 自行猜測缺失狀態。

中斷情境 應保存的證據 不合格結果
工具執行前中斷 會話狀態與待執行步驟 恢復後跳過必要檢查
產物寫入後中斷 產物清單、版本與寫入狀態 恢復後重複覆蓋或產生副本
網路或外部服務失敗 錯誤分類與重試狀態 無限重試或誤判成功
清理階段中斷 殘留檔案與清理結果 殘留資料流入下一個會話

這個階段同時回答可恢復性與隔離性問題:恢復的是哪一份狀態,誰能讀取它,恢復後使用的權限是否仍然最小。若答案無法由紀錄重建,便沒有足夠的放行證據。

第六階段:把結果分成通過、補測與阻斷

最終決策不應只有「成功」或「失敗」。建議將每個測試結果分為三類:

  • 通過:證據完整,結果符合契約,可進入下一個階段。
  • 需補測:存在環境差異或證據缺口,但尚未證明越權或資料遺失。
  • 阻斷:出現越權存取、敏感資訊暴露、環境無法重現、恢復不一致,或沒有失敗回滾路徑。

以下清單可直接交給開發、平台和安全負責人共同簽核:

  • [ ] 工作區契約已版本化,並能在乾淨環境重建。
  • [ ] Manifest、SandboxRunConfig、執行身份和工具清單已保存。
  • [ ] 正常、命令失敗、檔案不存在及提前結束路徑均完成確定性測試。
  • [ ] 真實沙箱已核對依賴、工作目錄、檔案權限和輸出產物。
  • [ ] 本機、容器或託管環境的差異已記錄,未把其中一者結果冒充全部環境。
  • [ ] 網路、環境變數、外部儲存和主機路徑均完成邊界測試。
  • [ ] 刪除、覆蓋、外發資料和高風險命令具備拒絕或審批路徑。
  • [ ] 中斷後能確認會話狀態、快照或工作區的恢復結果。
  • [ ] 恢復不會重複高風險操作,也不會帶入舊任務檔案。
  • [ ] 清理失敗、恢復失敗和環境不一致均有終止及重新建立規則。
  • [ ] 測試配置版本、執行紀錄、異常與負責人已歸檔。

什麼情況才值得準備獨立的雲端 Mac?

哪些 Sandbox 測試需要獨立 Mac 環境?
需要驗證 macOS 專屬工具鏈、簽名流程、系統元件或實際 Mac 檔案行為時,應使用真實 Mac。若團隊需要多個隔離工作區並行回歸,或在短期試運行期間集中重建環境,獨立的雲端 Mac 也較容易把測試節點與開發者日常機器分開。

反過來,若任務只驗證與作業系統無關的編排邏輯,先用確定性測試和既有沙箱即可。若專案是長期、穩定且高負載的固定工作,購置或長期維護專屬機器可能比租賃更適合;若必須接觸實體 USB、特殊周邊或本地硬體,雲端 Mac 也不是完整替代方案。

條件 優先選擇 理由
只驗證工具路由和錯誤分支 確定性測試 不必引入真實環境變數
需要檢查容器或託管隔離 獨立沙箱 可驗證身份、掛載與網路邊界
依賴 macOS 工具鏈或簽名流程 真實 Mac 其他系統結果不能代替
短期集中回歸、多人並行 隔離的雲端 Mac 減少共用工作區和本機狀態污染
長期固定重負載或實體周邊 自有設備或專用環境 租賃彈性不一定符合持續需求

若需要安排臨時驗證節點,可先查看 ProxyMac 的繁體中文幫助頁,確認連線、交付和使用限制,再依實際任務週期對照 ProxyMac 的方案資訊。重點不是把所有測試搬上雲,而是只把 macOS 依賴、並行隔離和環境重建這些真正需要的部分獨立出來。

經驗提醒: 截至 2026 年 8 月 26 日,官方文件仍將 Sandbox Agents 標示為 beta;本文的驗收結論應在版本、API 或支援能力變更時重新核對官方文件,而不應視為永久不變的部署承諾。官方 Sandbox 概念與生命週期說明 為目前復核依據。

目前方案若只是開發者本機,常見缺點是權限與檔案殘留難以追蹤、多人並行時工作區容易互相污染,而且 macOS 依賴無法由其他系統的測試結果代替。若改用共用容器,又可能遇到環境版本不一致、恢復證據不足和高風險操作回滾困難。對於短期集中回歸、需要真實 macOS 工具鏈或必須隔離多個任務的團隊,租用 ProxyMac 的雲端 Mac 會比直接把個人開發環境推進生產更容易控制;但交付前仍應依本文清單重建工作區、重測權限與續跑,不應把租到設備本身當成驗收完成。

用 ProxyMac 完成雲端沙箱上線前驗收

以 ProxyMac 雲端 Mac 建立接近真實的遠端工作環境,提前驗證代理程式的執行流程與相容性。
獨立的雲端環境方便檢查權限隔離、工作區契約、任務恢復及失敗回滾等關鍵環節。