Cloudflare 加速 AI 代理沙盒:啟動、快照與恢復,決定任務能否接著做

Cloudflare Containers 更新代理沙盒排程,特定測試啟動中位數降至六百四十八毫秒,並加入執行時配置與檔案系統快照。本文解析應用與限制。

Share
Cloudflare Sandbox 官方發布素材。示範與研究結果以官方說明的條件為準。
Cloudflare Sandbox 官方發布素材。示範與研究結果以官方說明的條件為準。 圖片來源:https://blog.cloudflare.com/faster-agent-sandboxes/

AI 代理要執行程式、分析檔案或測試修改,通常需要一個可以動手的環境。如果每個任務開始前都等好幾秒準備,或暫停後又要從頭建立工作目錄,模型再快也很難提供順暢體驗。Cloudflare 最新 Containers 更新,正是從這些代理工作需求切入。

官方公布新的排程方式,讓應用程式在執行時選擇映像與例項型別,並提供公開測試中的檔案系統快照。在 ComputeSDK 的特定基準中,啟動時間中位數從略超過四秒降到六百四十八毫秒,約快六倍。這個數字描述啟動階段,完整任務的改善仍取決於模型、程式與其他工具。

沙盒,是代理用來執行工作的環境

沙盒可以理解為一個隔離的工作空間,代理能在裡面讀寫檔案、執行程式與觀察結果。它讓任務有自己的環境,也能減少不同工作互相影響的機會。不過,具體隔離與網路能力仍取決於平台設計,不能只看到沙盒名稱就假設所有行為都已經受到限制。

容器則是一種封裝程式與依賴的方式。映像是建立容器時使用的基礎內容,例如作業環境、工具與套件。例項型別則決定可用的計算資源。讓應用程式在任務開始時選擇這些條件,可以讓不同工作取得更合適的環境。

例如檔案分析需要一種工具組合,網頁測試需要另一種瀏覽器環境。若所有任務都使用同一個龐大映像,可能增加啟動與維護負擔。若拆得過細,又會增加配置管理。新能力提供彈性,團隊仍要決定合理的環境種類。

Cloudflare Sandbox 官方發布素材。示範與研究結果以官方說明的條件為準。
Cloudflare Sandbox 官方發布素材。示範與研究結果以官方說明的條件為準。 圖片來源:Cloudflare 官方文章。

六倍啟動改善,要保留測試條件

官方文章引用 ComputeSDK 基準,啟動中位數從略超過四秒降至六百四十八毫秒。中位數指把測量結果排序後位於中間的數值,可以反映典型情況,但不直接說明最慢請求或全部環境的表現。

啟動時間會受映像大小、是否已在主機上、所在地與資源狀況影響。官方也說明新排程會考慮附近容量,以及主機是否已有映像或快照。讀者應把測量理解成在特定條件下驗證的改善,不能保證每個新映像都在同樣時間準備完成。

企業試用時可以分別記錄首次啟動、重複啟動與不同映像的表現。這樣能看出速度是否依賴已有資料,也能估算真實任務第一次執行的等待。對使用者體驗而言,平均與較慢情況都重要,只看一個漂亮數字可能忽略尖峰問題。

執行時選擇環境,讓任務更有彈性

傳統部署可能先固定容器環境,再讓任務進入。新排程方式把更多選擇交給應用程式,在啟動時指定映像與資源。對代理而言,這有機會依任務型別準備環境,而不是所有請求都走同一套設定。

不過,讓代理任意挑選映像與資源,可能造成成本與維護問題。團隊可以先建立經過確認的環境清單,讓任務只從清單選擇。檔案處理、網頁測試與程式檢查各有明確用途,也比較容易追蹤版本與問題。

如果環境需要升級,可以先讓部分任務使用新版本,觀察後再擴大。保留舊版本作為比較,能幫助判斷錯誤來自任務還是環境變化。執行時彈性越大,版本與配置紀錄也越重要。

快照儲存的是檔案狀態

Cloudflare 本次提供的是檔案系統快照。快照可以儲存工作目錄,之後建立新容器時從儲存內容繼續。它適合準備基礎環境、儲存中間成果與恢復暫停的任務,但不能直接理解成完整程式記憶體與所有執行狀態都會原封不動恢復。

如果程式執行到一半,尚未寫入檔案的內容可能不在快照中。資料庫連線、臨時憑證或外部服務狀態,也可能需要重新建立。應用程式應把可恢復的進度寫進明確紀錄,再在恢復時核對,避免假設容器回來就等於任務繼續。

快照也需要選擇時機。太頻繁可能增加操作與儲存成本,太少則可能在失敗後重做大量工作。可以在完成資料準備、產生重要結果或準備暫停時儲存,讓檢查點對應真實進度。

用一個檔案分析任務設計檢查點

以下是流程示例。代理先下載允許使用的檔案,完成格式轉換,接著分析內容並寫入結果。團隊可以在格式轉換完成後儲存快照,因為這段準備工作可能耗時,而後續分析可以有不同嘗試。

每個檢查點同時儲存任務識別、輸入版本與完成階段。恢復時先確認檔案齊全,再檢查記錄是否對應目前任務。若輸入來源已經更新,舊快照可能不再適合繼續,需要重新準備。儲存環境不代表資料永遠有效。

分析結果完成後,可以另存一個檢查點,再交給後續整理步驟。這樣即使後續報告生成失敗,也不用重新做全部分析。任務拆成可核對階段,有助於讓暫停與恢復成為可預測行為,而不是依賴代理記住前一次發生什麼。

同一個基礎快照,可以建立多個獨立嘗試

官方說明快照不可變且可重複使用,因此多個容器可以從相同準備環境開始,各自進行修改。對需要比較不同方法的任務,這有助於確保起點一致,減少重複準備。

例如同一份資料可以分別用不同分析設定處理,再比較結果。不過,每個嘗試仍應保留獨立輸出與識別碼,避免結果寫到同一個位置。基礎快照一致,只保證起始檔案相同,不保證後續使用的外部資料與服務也相同。

選擇最佳結果時,應有事先定義的標準。若只根據代理的自我評價,可能挑到看起來完整卻沒有正確處理資料的結果。用實際檢查、固定問題或人工核對評分,再決定保留哪個分支,比較容易建立可靠流程。

Durable Object 負責管理容器生命週期

官方把每個容器與 Durable Object 結合。讀者可以把它理解為容器旁邊一個持久的控制者,負責協調啟動、停止、外部請求與狀態。它讓工作流程有一個可程式設計的管理位置,而不只是啟動一個臨時環境。

這個控制者適合儲存任務階段與容器狀態,但應用程式仍要設計具體邏輯。什麼時候暫停、什麼時候恢復、失敗後是否重試、哪些結果需要保留,都不會只因為有控制者就自動變成正確流程。

團隊可以先讓控制邏輯處理少數清楚狀態,例如準備、執行、暫停、完成與失敗。狀態越清楚,使用者看到的進度也越容易理解。若把所有情況都寫成處理中,發生問題時就很難判斷下一步。

新能力的介面範圍,需要一起確認

官方文章說明,這次新的排程、快照與執行時配置透過原生 Durable Object 路徑提供。使用既有封裝方式的團隊,不能只升級一個名稱就假設已經取得相同能力。應依實際使用的介面與遷移說明確認。

遷移時可以先選一個非關鍵任務比較新舊環境。檢查啟動、檔案儲存、恢復與外部請求行為,再決定是否遷移更多工作。這樣能把新能力的收益和介面變化的影響一起觀察。

如果原本的封裝已經滿足需求,也不必為了追求新指標立即重做全部流程。先找出真實瓶頸,再判斷是否需要新介面。把遷移範圍控制在能夠驗證的任務,通常更容易取得清楚結果。

暫停計算,有機會減少閒置等待

代理任務可能等待使用者補資料、等待人工審查或等待外部事件。若環境一直佔用計算資源,閒置時間也可能產生費用。儲存檔案後停止計算,再需要時恢復,是本次能力強調的一種方向。

但實際成本還要包含快照儲存、恢復、請求與相關平台費用。不能只看到計算暫停,就推算總費用一定下降。團隊應以完整任務週期記錄賬單,比較持續執行與暫停恢復的差異。

等待很短的任務,頻繁停止與恢復可能反而增加操作。等待較長、準備成本較高的任務,則較適合評估快照。選擇應依工作節奏決定,讓節省資源與恢復體驗取得合理平衡。

快照也會保留不該長期儲存的內容

工作目錄可能包含臨時檔案、使用者輸入與任務輸出。建立快照前應知道哪些內容會被儲存,避免把只為一次任務使用的資料長期留在基礎環境。基礎快照尤其應儘量只包含必要工具與公開或允許重複使用的資料。

任務快照則可以依資料型別設定保留時間與清理規則。若使用者要求刪除某項輸入,相關快照與輸出也要納入處理範圍。這裡是資料生命週期的工作設計,不是對平台預設行為作未經驗證的判斷。

恢復時還應確認臨時連線是否需要重新授權。把憑證寫進工作目錄,可能讓它跟著快照傳播。比較穩妥的方式是讓執行環境按需求取得必要連線,而不是把所有秘密都放進可重複使用的基礎檔案。

失敗恢復,要以結果核對決定下一步

任務失敗後,最容易出錯的是重複執行已經完成的外部動作。代理可能已經寫入結果,卻在收到回應前中斷。恢復時如果直接再寫一次,就可能產生重複記錄。工作流程應先查目前結果,再決定重試。

對於只在沙盒內部產生檔案的任務,可以檢查輸出完整性與版本。對於會寫入外部服務的任務,則需要該服務的識別與讀回。快照保留本地狀態,外部結果仍要另外核對。

這種設計讓恢復從「繼續跑」變成「確認進度再繼續」。它可能多一步檢查,卻能減少重複操作與不一致,也讓人工接手時更容易知道任務停在哪裡。

如何判斷這次更新對自己的代理有用

Cloudflare 的更新把啟動、配置與檔案恢復放在同一個代理工作方向上。對頻繁建立環境、任務經常暫停或需要多個嘗試的團隊,值得用真實任務測量。對環境已經長時間穩定執行的服務,收益可能不同。

最好的試用結果應回答:準備時間有沒有減少,暫停後能否正確恢復,費用是否合理,以及失敗後結果是否仍一致。把這些條件測清楚,才能知道六倍啟動改善是否轉成完整任務的優勢。

代理能力越強,對執行環境的要求也越具體。更快啟動只是開始,能夠儲存、恢復與核對工作,才讓長時間任務更容易成為穩定服務。

官方資料來源