Cloudflare 看好代理程式的未來,這已經不是什麼秘密了。我們對未來充滿驚喜,在未來,AI 的能力不僅可與我們並駕齊驅,而且實際上我們可以開始將整個任務委託給 AI。
自我們首次推出 Agents SDK,以便於開發人員更輕鬆地構建代理程式以來,雖然過去的時間並不長,但構建代理程式的未來需要持續不斷地實現這一目標。今天,我們將發佈幾項公告以協助加速代理程式開發,包括:
全新的 Agents SDK 功能:構建遠端 MCP 用戶端,並內建傳輸和驗證功能,以允許 AI 代理程式連線至外部服務。
MCP 的 BYO 驗證提供者:與 Stytch、Auth0 和 WorkOS 整合,以新增對遠端 MCP 伺服器的驗證與授權。
McpAgent 休眠:具狀態的遠端 MCP 伺服器處於非作用中時自動休眠,並在需要時將其喚醒。這讓您能夠將長時間執行的工作階段保持連線,同時確保您無需為空閒時間付費。
Durable Objects 免費方案:我們將 Durable Objects 視為構建代理程式的關鍵元件,如果您使用我們的 Agents SDK,則需要存取該元件。在此之前, Durable Objects 僅作為我們付費方案的一部分提供,而今天我們很高興將其納入免費方案。
Workflows 正式版:讓您能夠在代理程式中交付可用於生產環境、長時間執行、多步驟動作。
AutoRAG:只需點按幾下,即可協助您將環境感知 AI 整合至應用程式
agent.cloudflare.com:適用於所有代理程式的全新登陸頁面。
Agents SDK 中的全新 MCP 功能
AI 代理程式現在可透過 MCP(模型情境通訊協定)連線至外部服務並與之互動。我們已更新 Agents SDK,可讓您將遠端 MCP 用戶端構建到 AI 代理程式中,並為您內建所有元件(驗證流程、工具探索和連線管理)。
這讓您能夠構建可完成以下操作的代理程式:
提示終端使用者授予對第三方服務(MCP 伺服器)的存取權。
使用這些外部服務中的工具,從而代表終端使用者進行處理。
從 Workflows、排定任務或代理程式的任何部分呼叫 MCP 伺服器。
連線至多個 MCP 伺服器,並自動探索第三方服務提供的新工具或功能。

MCP(模型情境通訊協定)由 Anthropic 首次推出,正迅速成為 AI 代理程式與外部服務互動的標準方式,OpenAI、Cursor 和 Copilot 等提供者都在採用該通訊協定。
我們最近宣佈,支援在 Cloudflare 上構建遠端 MCP 伺服器,並在我們的 Agents SDK 中新增了一個 McpAgent
類別,以自動處理 MCP 的遠端方面:傳輸與驗證/授權。現在,我們很高興將同樣的功能擴展至充當 MCP 用戶端的代理程式。

想要一睹其運作嗎?使用下面的按鈕,即可部署可用於連線遠端 MCP 伺服器的完全遠端 MCP 用戶端。
AI 代理程式現在可充當遠端 MCP 用戶端,包括傳輸與驗證
AI 代理程式需要連線至外部服務,才能存取超出其內建知識的工具、資料和功能。這意味著 AI 代理程式需要能夠充當遠端 MCP 用戶端,以便連線至託管這些工具和功能的遠端 MCP 伺服器。
我們已在 Agents SDK 中新增一個新類別 MCPClientManager
,為您提供所需的全部工具,以允許 AI 代理程式透過 MCP 呼叫外部服務。MCPClientManager
類別會自動處理以下操作:
傳輸:透過 SSE 和 HTTP 連線至遠端 MCP 伺服器,即將推出對 Streamable HTTP 的支援。
連線管理:用戶端會追蹤所有連線的狀態,並在連線中斷時自動重新連線。
功能探索:自動探索 MCP 伺服器提供的所有功能、工具、資源和提示。
即時更新 :當伺服器的工具、資源或提示變更時,用戶端會自動接收通知並更新其內部狀態。
命名空間:連線至多個 MCP 伺服器時,所有工具和資源會自動命名空間以避免衝突。
授予代理程式對內建 MCP 用戶端驗證檢查的各種工具的存取權
我們已將完整的 OAuth 驗證流程直接整合至 Agents SDK,因此,您的 AI 代理程式可安全地連線至任何遠端 MCP 伺服器並進行驗證,而無需從頭開始構建驗證流程。
這樣一來,您可為使用者提供一種安全的登入方式,並明確授予存取權,以允許代理程式自動執行以下操作來代表他們進行處理:
支援 OAuth 2.1 通訊協定。
將使用者重新導向至服務的登入頁面。
產生程式碼質詢並用授權碼交換存取權杖。
使用存取權杖向 MCP 伺服器發出經驗證的請求。
以下是一個代理程式範例,其可透過初始化用戶端管理器、新增伺服器和處理驗證回呼,來安全地連線至 MCP 伺服器:
async onStart(): Promise<void> {
// initialize MCPClientManager which manages multiple MCP clients with optional auth
this.mcp = new MCPClientManager("my-agent", "1.0.0", {
baseCallbackUri: `${serverHost}/agents/${agentNamespace}/${this.name}/callback`,
storage: this.ctx.storage,
});
}
async addMcpServer(url: string): Promise<string> {
// Add one MCP client to our MCPClientManager
const { id, authUrl } = await this.mcp.connect(url);
// Return authUrl to redirect the user to if the user is unauthorized
return authUrl
}
async onRequest(req: Request): Promise<void> {
// handle the auth callback after being finishing the MCP server auth flow
if (this.mcp.isCallbackRequest(req)) {
await this.mcp.handleCallbackRequest(req);
return new Response("Authorized")
}
// ...
}
連線至多個 MCP 伺服器並探索其提供的功能
您可以使用 Agents SDK,將一個 MCP 用戶端同時連線至多個 MCP 伺服器。若您想要代理程式存取由不同服務提供者提供的工具和資源並與之互動,這種方式特別有用。
MCPClientManager
類別透過 mcpConnections
物件保持與多個 MCP 伺服器的連線,這是一個將不重複的伺服器名稱與至其各自 MCPClientConnection
執行個體相對應的字典。
使用 connect()
註冊新的伺服器連線時,管理器可執行下列操作:
透過伺服器特定的驗證來建立新的連線執行個體。
初始化連線並註冊伺服器功能通知。
async onStart(): Promise<void> {
// Connect to an image generation MCP server
await this.mcp.connect("https://image-gen.example.com/mcp/sse");
// Connect to a code analysis MCP server
await this.mcp.connect("https://code-analysis.example.org/sse");
// Now we can access tools with proper namespacing
const allTools = this.mcp.listTools();
console.log(`Total tools available: ${allTools.length}`);
}
每個連線會管理自己的驗證內容,允許一個 AI 代理程式同時對多個伺服器進行驗證。此外,MCPClientManager
會自動處理命名空間,以防止不同伺服器具有相同名稱的工具之間發生衝突。
例如,如果「影像 MCP 伺服器」和「程式碼 MCP 伺服器」都有一個名為「分析」的工具,則它們都可獨立呼叫,不會發生任何命名衝突。
使用 Stytch、Auth0 和 WorkOS,為您的 MCP 伺服器帶來驗證與授權功能
使用 MCP 時,使用者將採用一種與應用程式互動的全新方式,不再依賴於儀表板或 API 作為入口點。取而代之的是,該服務將由代表使用者進行處理的 AI 代理程式存取。為確保使用者和代理程式能安全地連線至您的服務,您需要擴展現有的驗證與授權系統,以支援這些代理程式互動,從而為您的 MCP 伺服器實作登入流程、權限適用範圍、同意表單和存取強制執行。
我們將新增與 Stytch、Auth0 和 WorkOS 的整合,讓構建 MCP 伺服器的任何人都能更輕鬆地為其 MCP 伺服器設定驗證與授權。
您可利用我們的 MCP 伺服器與 Stytch、Auth0 和 WorkOS 的整合來執行以下操作:
允許使用者透過電子郵箱、社交登入、SSO(單一登入)和 MFA(多重要素驗證),對您的 MCP 伺服器進行驗證。
定義直接對應至 MCP 工具的適用範圍和權限。
向使用者呈現與所請求權限相對應的同意頁面。
強制執行權限,以便代理程式只能叫用允許的工具。

透過下面的範例,開始使用「部署至 Cloudflare」按鈕,在您的 Cloudflare 帳戶中部署示範 MCP 伺服器。這些示範包括預先設定的驗證端點、同意流程和權限模型,您可以根據自己的需求進行調整。部署示範 MCP 伺服器後,您可以使用 Workers AI 平台(一個基於瀏覽器的遠端 MCP 用戶端)來測試端對端使用者流程。
Stytch
從使用 Stytch 的遠端 MCP 伺服器開始,以允許使用者透過電子郵箱、Google 登入或企業 SSO 登入,並授權其 AI 代理程式代表使用者檢視並管理公司的 OKR。Stytch 將根據使用者在其組織內的角色和權限,來限制授予 AI 代理程式的適用範圍。向 MCP 用戶端授權時,每位使用者會看到一個同意頁面,其中概述了代理程式請求的權限,他們可根據其角色授予這些權限。
如需更多取用者使用案例,可為使用 Stytch 的待辦事項應用程式部署遠端 MCP 伺服器,以進行驗證和 MCP 用戶端授權。使用者可透過電子郵箱登入,立即存取與其帳戶關聯的待辦事項清單,並向任何 AI 助理授予存取權以協助管理其任務。
無論使用案例如何,Stytch 都能讓您輕鬆地將應用程式轉變為 OAuth 2.0 身分識別提供者,並使遠端 MCP 伺服器成為依賴方,以便其輕鬆地從您的應用程式繼承身分識別和權限。若要進一步瞭解 Stytch 如何為遠端 MCP 伺服器啟用安全驗證,請閱讀其部落格文章 。
「要實現 AI 代理程式承諾,其中一項挑戰是使這些代理程式能夠安全、可靠地從其他平台存取資料。Stytch 連網應用程式專為這些代理使用案例而構建,可輕鬆地將您的應用程式轉變為 OAuth 2.0 身分識別提供者,以實現對遠端 MCP 伺服器的安全存取。透過結合使用 Cloudflare Workers 與 Stytch 連網應用程式,我們為開發人員消除了障礙,使其能夠快速從 AI 概念驗證過渡到安全、已部署的實作。」— Stytch 共同創辦人兼技術長 Julianna Lamb
Auth0
從遠端 MCP 伺服器開始,該伺服器使用 Auth0,透過電子郵箱、社交登入或企業 SSO 對使用者進行驗證,進而透過 AI 代理程式與其待辦事項和個人資料互動。MCP 伺服器代表使用者安全地連線至 API 端點,確切顯示代理程式在取得使用者同意後能夠存取哪些資源。在此實作中,存取權杖會在長時間執行的互動期間會自動重新整理。
若要進行設定,請首先部署受保護的 API 端點:
然後,透過 Auth0 部署可處理驗證的 MCP 伺服器,並將 AI 代理程式安全地連線至您的 API 端點。
「Cloudflare 將繼續為使用 AI Gateway、Vectorize 和Workers AI 等工具構建 AI 產品的開發人員提供支援。最近新增的遠端 MCP 伺服器進一步證明了,Cloudflare Workers 和 Durable Objects 是部署無伺服器 AI 的領先平台。Auth0 能夠協助滿足這些尖端工作負載的驗證與授權需求,我們深感自豪。」— 產品架構 Auth0 資深總監 Sandrino Di Mattia
WorkOS
從遠端 MCP 伺服器開始,該伺服器使用 WorkOS 的 AuthKit 來驗證使用者,並管理授予 AI 代理程式的權限。在此範例中,MCP 伺服器根據使用者的角色和存取權限來動態公開工具。所有經驗證的使用者都可存取新增
工具,但只有在 WorkOS 中獲得 image_generation
權限的使用者,才能授予 AI 代理程式存取影像產生工具的權限。這展示了 MCP 伺服器如何根據已驗證使用者的角色和權限,有條件地向 AI 代理程式公開功能。
「MCP 正在成為 AI 代理程式整合的標準,但驗證與授權仍是企業採用的主要差距。WorkOS Connect 讓任何應用程式都能成為 OAuth 2.0 授權伺服器,從而允許代理程式和 MCP 用戶端安全地獲取權杖,以進行精細的權限授權和資源存取。藉助 Cloudflare Workers,開發人員可快速部署具有內建 OAuth 和企業級存取控制的遠端 MCP 伺服器。WorkOS 與 Cloudflare 相結合,可輕鬆交付安全的企業級代理程式基礎架構。」— WorkOS 執行長 Michael Grinich
具有休眠功能的 WebSocket:在不使用 AI 代理程式時將其置於休眠狀態
即日起,McpAgent 類別將迎來一項新的改進:支援 WebSockets Hibernation API,讓您的 MCP 伺服器在沒有收到請求時進入休眠狀態,並在需要時立即喚醒。這意味著,您現在僅在代理程式實際工作時才為運算付費。
我們最近推出了 McpAgent 類別,允許開發人員使用 Durable Objects 讓每個用戶端工作階段保持具狀態連線,藉此在 Cloudflare 上構建遠端 MCP 伺服器。我們決定從一開始就將 McpAgent 構建為具狀態,從而允許開發人員構建可記住情境、使用者喜好設定和對話歷史記錄的伺服器。而保持用戶端連線,意味著工作階段可在長時間內保持作用中狀態,甚至不使用時亦如此。
MCP 代理程式預設可休眠
您無需變更程式碼,即可充分利用休眠功能。透過我們最近的 SDK 更新,所有 McpAgent 執行個體將自動包含休眠支援,讓您的具狀態 MCP 伺服器在非作用中期間進入休眠狀態,在需要時喚醒並保留其狀態。
運作方式
伺服器-傳送事件端點 (/sse) 收到請求後,Worker 會初始化 WebSocket 連線至工作階段的適當 Durable Object,並將 SSE 串流傳回用戶端。所有回應都流經此資料串流。
該實作會利用 Durable Objects 中的 WebSocket Hibernation API。在一段時間處於非作用中時,可從記憶體中逐出 Durable Object,同時保持 WebSocket 連線開啟。如果 WebSocket 稍後收到訊息,執行階段會重新建立 Durable Object,並將訊息傳遞給適當的處理程式。
免費方案中的 Durable Objects
為協助您在 Cloudflare 上構建 AI 代理程式,我們在免費方案中提供了 Durable Objects,以便您可以從零承諾開始。藉助 Agents SDK,您的 AI 代理程式可部署至在 Durable Objects 上執行的 Cloudflare 。
Durable Objects 提供運算及持久儲存體,與 Workers 結合使用時,可解鎖具狀態的無伺服器應用程式。每個 Durable Object 都是一個具狀態協調器,用於處理用戶端即時互動、向 LLM 等外部服務發出請求,以及透過零延遲 SQLite 儲存體中的狀態持續性建立代理「記憶體」— 所有任務都需要在 AI 代理程式中完成。Durable Objects 可輕鬆擴展至數百萬個代理程式,在靠近使用者位置建立的每個代理程式都會與其代理程式互動,以實現快速效能,且全部由 Cloudflare 管理。
2024 年 9 月生日週期間,在 Durable Objects 公開測試版中推出了零延遲 SQLite 儲存體。從那時起,我們就一直專注於與 Durable Objects 中預先存在的鍵值儲存體相比缺少的功能和穩健性。我們很高興正式推出 SQLite 儲存體,每個 Durable Object 具備一個 10 GB 的 SQLite 資料庫,並建議將 SQLite 儲存體用於所有新的 Durable Object 類別。Durable Objects 免費方案只能存取 SQLite 儲存體。
Cloudflare 的免費方案可讓您構建真實世界的應用程式。在免費方案中,每個 Worker 請求都能呼叫一個 Durable Object。對於基於使用量的定價,Durable Objects 會產生運算與儲存使用量,且具有下列免費方案限制。
請前往 agent.cloudflare.com 查閱
我們知道這需要瞭解大量資訊,但請不要擔心。無論您是剛接觸代理程式,還是希望深入瞭解 Cloudflare 如何協助您構建代理程式,我們今天推出的新網站都能協助您盡快入門:agent.cloudflare.com 。
請不吝分享您構建的內容!