AGENTIC COMMONSAI 產業簡報

繁中EN

主題AI 代理與工作流出版

返回文章列表

把互動介面塞進對話框之後:MCP Apps 在 AgentCore 上的部署取捨

摘要: AWS 於 2026 年 9 月 11 日的示範說明,MCP Apps 可讓 AI host 在對話中渲染互動式 HTML widget。流程先由 AgentCore Gateway 與 runtime 執行工具呼叫,host 再讀取 widget HTML 並注入 structuredContent。文章指出並非每個工具都需要 widget,簡單查詢維持純文字即可。

當 ChatGPT、Claude 這類 AI host 開始接手原本發生在自家網站上的操作,回應若只剩下文字,產品體驗就到此為止。有人問「有哪些獨角獸可以租」,若換來的是一串條列文字,他最終仍得繞回你的網站才下得了單。AWS Machine Learning Blog 於 2026 年 9 月 11 日發布的示範,針對的正是這個缺口:讓服務在別人的對話框裡照樣拿得出介面,同時不必把身家押在某一家 host 上。

真正的瓶頸不在模型,而在回應的形狀

MCP Apps 是 Model Context Protocol 的一項擴充,作用是讓 AI host 直接渲染互動式 HTML widget。AWS 的示範應用 Unicorn Rentals 只靠同一個 MCP server,就能在 ChatGPT、Claude 以及其它支援 Apps 擴充的 host 上維持一致的操作體驗:挑選可租的獨角獸、下訂、檢視正在進行中的租借、歸還。

示範中有一個值得留意的設計判斷:並非每個請求都值得端出卡片。view_bookings 與 return_unicorn 這兩個工具並未綁定 widget,直接以純文字回覆,整個渲染流程就此略過。介面是有代價的,只有在需要視覺化選擇或確認的環節,才值得付這個代價。

一次工具呼叫,其實分成兩段流程

依 AWS 的架構說明,使用者問完一句話之後發生的事情,可以切成兩個階段。

第一階段是工具呼叫:host 把自然語言轉成 MCP 的 tools/call 訊息,送往 AgentCore Gateway 端點;AWS WAF 先執行 IP 允許清單與受管規則檢查,Gateway 再以 IAM 執行角色把 AgentCore runtime 上的 MCP App 叫起來。App 將業務邏輯交給 AWS Lambda,Lambda 對 DynamoDB 做完操作後回傳結果,App 再包成 MCP 格式還給 host。

第二階段是 widget 渲染,觸發條件是工具帶有 resource URI(例如 ui://widget/unicorn-list)。此時 host 會發出 resources/read,App 回傳一份自帶樣式與邏輯的 HTML,host 把它放進 sandboxed iframe 內渲染,並依 MCP Apps 的生命週期,將工具回應裡的 structuredContent 注入其中。widget 用到的圖片則走 Amazon CloudFront,來源為 Amazon S3。

這裡有兩個對產品團隊而言很實際的影響。其一,工具回應的資料結構與 widget 的呈現是分開的兩件事:由 _meta.ui.resourceUri 決定採用哪個 widget,由 structuredContent 決定餵進什麼資料。其二,host 有可能快取工具清單與 widget HTML,因此「改一個字馬上生效」並非預設行為。

AgentCore 究竟幫你省掉哪一段

AWS 的說法是 AgentCore 負責處理「undifferentiated heavy lifting」。逐項拆開來看:AgentCore runtime 提供 serverless、session 隔離且原生支援 MCP 的執行環境;AgentCore Gateway 則以單一安全端點,把服務暴露給相容的 host。示範中的 MCP App 是一套 TypeScript 應用,建在官方 @modelcontextprotocol/sdk 與 @modelcontextprotocol/ext-apps 擴充之上,以 Express.js HTTP server 的形式執行,由 runtime 在內部管理。

工具以 registerAppTool 註冊,資源以 registerAppResource 註冊,兩者都只要提供名稱、設定與處理函式。這意味著團隊必須自己維護的是業務邏輯與 widget 設計,而不是 host 的適配層。如果你所在的團隊正把工具呼叫當成產品架構問題來處理,Muse Spark 1.1 與 Meta Model API 的實務訊號那篇談到的註冊與治理課題,與這裡屬於同一條線上的事。

尚未被回答的部分

示範涵蓋了註冊、呼叫、渲染與部署路徑,但有幾個實務上必然碰到的問題,來源並沒有給出答案:widget 在 host 的 sandboxed iframe 裡能取用哪些瀏覽器能力、不同 host 對 MCP Apps 擴充的支援程度是否一致、以及快取造成的版本更新延遲該怎麼處理。這些並不是示範的缺陷,而是把介面搬進別人的對話框之後,一定要自行驗證的邊界。

若你的服務目前只有文字型的工具回應,這份示範提供了一條可照著複製的路徑:先從中挑一個真正需要視覺化選擇的流程做成 widget,其餘維持純文字,接著觀察 host 端的快取行為是否跟得上你的更新節奏。

參考來源

AGENTIC COMMONS由 PHLEGON LABS 經營
分享X電郵
支持我們

相關閱讀

  1. 把內部知識接進 IDE:HEMA 用 MCP 與 Bedrock 拆掉入口網站跳轉

    HEMA 以 MCP 與 Amazon Bedrock AgentCore 建 HAL,讓工程師在 IDE 與聊天視窗直接取用內部知識。

    MCP

  2. 把多模型 agent 搬進 AgentCore runtime:少管一層容器,多留一份模型選擇權

    AWS 示範把 smolagents 醫療 agent 從 ECS Fargate 搬到 AgentCore runtime,容器生命週期、身分與可觀測性改由平台接手。

    Amazon Bedrock

  3. 把銀行 API 上線流程拆成七個專責代理:Ninth Wave 在 Amazon Bedrock 上的多代理設計

    Ninth Wave 用 Amazon Bedrock AgentCore 把開放金融 onboarding 拆成七個專責代理,以租戶隔離與確定性評分解決合規痛點。

    Amazon Bedrock