在現代的 SaaS 平台開發中,我們經常遇到一種需求:每個客戶(Tenant)或每個 AI 代理(Agent)都需要一套完全不同的工作流程。例如,一個 CI/CD 平台需要讓每個專案定義自己的 Pipeline 腳本,或者一個 AI 平台讓每個 Agent 自行決定執行步驟。
傳統上,這類需求非常難以處理。如果你使用傳統的 Workflow 引擎,通常需要在部署時就定義好所有可能的路徑與邏輯。這意味著如果你有十萬個客戶,且每個人的邏輯都不同,你無法在部署時將這十萬種可能性全部寫死在程式碼裡。
Cloudflare 最近推出的 Dynamic Workflows 庫,旨在解決這個問題,將持久化執行(Durable Execution)的能力從靜態部署提升到了動態運行時。
什麼是持久化執行
在進入動態部分前,先理解持久化執行。簡單來說,它是一種讓程式碼在執行過程中可以安全地中斷、休眠,並在未來某個時間點(可能是幾秒後,也可能是幾天後)從中斷的地方恢復執行的機制。
在一般的 Serverless 函式中,如果程式碼需要等待一個外部 API 回應 24 小時,你必須支付昂貴的等待成本,或者自行設計複雜的資料庫狀態機來記錄進度。而持久化執行引擎會自動將目前的狀態快照保存,讓函式在等待時進入休眠(Hibernation),不佔用計算資源,直到觸發條件達成時才被喚醒。
從靜態綁定到動態路由
之前的 Cloudflare Workflows 要求開發者在部署時就定義好 Workflow 的類別與綁定關係。也就是說,一次部署對應一個固定的工作流邏輯。
Dynamic Workflows 打破了這個限制。它引入了一個中間層稱為 Worker Loader。當系統呼叫建立工作流時,Worker Loader 會根據請求中的元數據(Metadata),例如 tenantId,動態地將執行權限導向到該用戶專屬的程式碼。
即使這個工作流在執行過程中休眠了三天,當引擎再次喚醒它時,Worker Loader 依然能根據記錄的元數據,精準地將執行流導回該用戶對應的動態程式碼中。這意味著平台端不需要預先知道用戶會寫什麼邏輯,只要在運行時能載入該段程式碼即可。
實務應用場景:下一代 CI/CD 平台
以 CI/CD 平台為例,傳統做法是啟動一台虛擬機(VM),拉取鏡像,克隆代碼,安裝依賴,這整個過程可能就花掉一分鐘。
而利用 Cloudflare 的這套組合拳,流程變得極其輕量: Artifacts 提供 Git 原生的版本儲存,讓代碼能即時分叉。 Dynamic Workers 在毫秒級的隔離環境(Isolates)中執行輕量級任務,如 Lint 或型別檢查。 Dynamic Workflows 負責協調整個流程,處理需要等待的人工審核或長時間延遲,且休眠期間零成本。 Sandboxes 處理需要完整作業系統權限的重型任務。
在這種架構下,計算資源是主動靠近代碼,而不是將代碼拉到笨重的 VM 中,大幅降低了啟動延遲。
對 AI Agent 的影響
對於 AI 代理平台來說,這是一個巨大的飛躍。現在 AI 可以直接編寫自己的執行計劃(即 run 函式),將其作為一個持久化工作流來運行。
AI 寫出的計劃中可以包含:執行某個步驟、等待人類確認、休眠 24 小時後再次檢查。由於具備持久化特性,每個步驟都可以獨立重試,且在等待期間不需要維持伺服器運行。平台方不需要預先定義 AI 能做什麼,AI 在運行時定義邏輯,平台負責可靠地執行。
技術脈絡與競爭優勢
目前市場上雖然有 Temporal 或 Inngest 等強大的持久化執行引擎,但它們大多缺乏在 V8 Isolate 層級實現的動態代碼載入能力。AWS Step Functions 雖然支持動態狀態機,但仍要求預先定義任務定義。
Cloudflare 的核心優勢在於將動態計算(Dynamic Workers)、動態儲存(Durable Object Facets)以及現在的動態執行(Dynamic Workflows)整合在一起。這將多租戶平台的基礎設施成本降至最低:閒置用戶幾乎不產生費用,而活躍用戶則共享硬體資源。
來源:infoq.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。