Sandbox API:為 AI 代理提供隔離的程式碼執行環境

代理工作流程通常需要確定性的執行。當代理需要執行統計分析、生成圖表、驗證計算或轉換數據集時,它需要具有精確輸出的確定性執行。代理會針對要運算的內容進行推理,而沙箱則負責執行運算。

專為 Perplexity 打造,現已作為服務提供

我們構建了沙箱 (Sandbox) 以在內部支援此模式。Perplexity Computer、我們的 Finance Agent 以及 Deep Research 皆在沙箱環境中執行程式碼。Computer 每分鐘執行數千個工作階段。Finance Agent 使用沙箱進行即時市場數據計算。Deep Research 則在工作流程中將其用於檔案生成、數據處理與格式轉換。Sandbox API 讓相同的執行環境能作為獨立服務使用。

具有持久檔案系統的狀態化工作階段

每個工作階段均在其獨立的 Kubernetes pod 中執行。開發者無需管理底層基礎設施:我們負責處理佈建、網路連線與清理。支援的程式語言包括 Python、JavaScript 與 SQL,並可針對每個工作階段安裝執行時期套件。

工作階段具有狀態性。持久檔案系統係透過 FUSE 掛載。FUSE 常駐程式會攔截檔案操作並將其轉換給代理:讀取、寫入、列出檔案,以及追蹤自工作階段建立以來的變更。在一個步驟中建立的檔案可在後續步驟中使用。長時間執行的工作流程可以暫停,數小時後恢復,並在狀態完整的情況下繼續運作。每個工作階段最多支援五個背景處理程序。

預設零信任

安全架構預設將程式碼視為不受信任。沙箱沒有直接的網路存取權限。當需要對外連線時,流量會透過在沙箱外運行的出口代理 (egress proxy) 進行路由。代理會根據目的地網域比對對外請求,並注入適當的憑證。在沙箱內執行的程式碼絕無法存取原始 API 金鑰或機密資訊。內建的逾時機制與資源限制強制執行了執行邊界。

作為編排層的代理 API

Sandbox API 將作為代理 API 中的工具提供,允許編排執行時期在工作流程中委派給確定性程式碼執行。代理決定要運算的內容,分派給沙箱,觀察輸出,並繼續其推理循環。使用相同的 API 金鑰與相同的點數。

Sandbox API 即將推出。我們將很快開放私人測試版,相關文件請參閱 docs.perplexity.ai