所有節目›AI Engineer Europe 2026World's Fair 2026World's Fair 線上軌AI in HealthcareSoftware Factories
MCP = Mega Context Problem在 YouTube 看這一場

AI Engineer Europe 2026 · 演講 · 2026-04-25 · 23 分

讓 agent 寫程式碼來用 API

MCP = Mega Context Problem · Matt Carey

Cloudflare 的 Matt 從 API 撐爆 context 的經驗出發,比較 CLI、tool search 與讓模型寫程式碼三條路,也談執行不受信任程式碼的隔離與 MCP 的走向。

工具太多看原片 ↗

概要

  • 工具一多 context 就爆Cloudflare 的 OpenAPI spec 是 2.3 million tokens,直接做成工具約 1.1 million tokens,連最大的模型都無法負荷;拆成 16 個產品 MCP server 又讓使用者得自己挑,覆蓋也不完整。
  • MCP 沒死,問題是別全倒進 contextMatt 認為 MCP 只是協定,真正要避免的是一次載入所有工具,解法是 progressive discovery,並列出 CLI、tool search 與讓模型寫程式碼三條路。
  • CLI 與 tool search 各有限制CLI 需要 shell 存取;tool search 依關鍵字載入相關工具,Matt 舉的例子是 2,100 tokens 裡只用到 500。
  • 讓模型對型別寫程式碼Cloudflare 的 code mode 把 API 轉成 TypeScript 型別,模型據此寫程式再執行;難點是跑不受信任的程式碼,Matt 用 V8 isolate 的 dynamic worker 做隔離,並示範了讀不到密鑰與可開關的網路存取。
  • 服務端與客戶端都要準備使用者變成 AI 後會對服務寫程式,API 要有 rate limiting;客戶端會出現 programmatic tool calling、存下來重跑的小腳本,以及更多 MCP client。
  • MCP 會變成 middlewareMatt 預期 SDK 越來越輕,到今年底至少 TypeScript 的大型全端框架會原生內建,一個旗標就能把 API 以 MCP 公開。

原話

  • “we just shouldn't be dumping loads of tools into context”

    我們就是不該把一大堆工具倒進 context

    ▶ 04:57
  • “And that's because running untrusted code is mega, mega scary.”

    那是因為執行不受信任的程式碼實在太可怕了,指的是 client 為何沒實作 code mode

    ▶ 09:29
  • “code is actually a very compact plan”

    程式碼其實是一種非常精簡的計畫

    ▶ 14:47
  • “your APIs have to be ready to take a beating”

    你的 API 得準備好承受猛烈的打擊

    ▶ 17:05
  • “I think we're going to see MCP as a middleware”

    我認為我們會看到 MCP 變成一種 middleware

    ▶ 20:51

延伸

  • Matt 把現在比作 1950 年代:當時要用電腦,得把程式交給鎮上那台機器跑,等於在跑不受信任的程式碼。上雲之後大家遠離了這件事,但使用者變成 AI 之後,又會回到那種模式。
  • Matt 也提醒,每個人背後有上百個 agent 時,一個 agent 配一個沙盒會撐不住,得改用雲端原生、狀態可開可關的 agent 迴圈。

章節

點時碼直接跳到原片的那一段。

  1. 開場與主題Matt 自我介紹在 Cloudflare 做 MCP 與 agent,這場要講怎麼讓每個 API 都成為 agent 的工具,自己的日常就是想辦法給 agent「手」去碰外部世界。
  2. 從 tool calling 到 MCP先講 tool calling:LLM 寫函式、由程式執行;早期工具各自綁在 agent 裡,每個人都要重做一遍。約去年四月 MCP 與 remote MCP 爆發,服務商提供標準化的工具,當作 API 之外的另一個介面。
  3. 工具一多,context 就爆八個工具還行,但想讓 agent 碰整個 API 就會把 context window 撐爆。Cloudflare 的 OpenAPI spec 是 2.3 million tokens,直接轉成工具約 1.1 million tokens,再大的模型也吃不下。
  4. 拆成多個 MCP server 的代價Cloudflare 一度把 API 依產品拆成 16 個 MCP server,context 變小,但使用者得自己挑,而且覆蓋不完整;Matt 舉例某產品線的 server 只有六個工具,整個 API 卻約有 30 個 endpoint。
  5. 需要 progressive discoveryendpoint 數量一度在兩千五百個左右,拆分行不通,需要的是工具的漸進式探索。Matt 認為 MCP 沒有死,問題在於不該把大量工具一次倒進 context。
  6. CLI 與 tool search 兩條路CLI 路線讓 agent 讀 help 輸出、逐步操作,OpenClaw 等工具很愛用,但前提是要有 shell 存取。tool search 則依關鍵字只把幾個相關工具載入 context(例如 K 等於 8),結果是 2,100 tokens 裡只用到 500。
  7. 第三條路:讓模型寫程式碼Cloudflare 去年夏天的部落格提出,讓 agent 直接對 API 寫程式。Matt 認為 TypeScript 的型別很精簡,適合讓模型理解輸入與輸出,可以從 OpenAPI spec 產生型別化的 SDK。
  8. Code mode 示範示範模型針對型別寫出程式碼來列出 worker、部署 hello world,並用 Access(Cloudflare 的託管 IDP)加上存取政策。Matt 說這種做法能隨模型進步與 OpenAPI spec 改善而受益。
  9. 為什麼用戶端沒跟進八、九個月前就有這個做法,但 client(即 agent)端沒有實作。Matt 的解釋是執行不受信任的程式碼太可怕:可能讀密鑰、外傳、跑無窮迴圈或挖礦。
  10. 過去的做法與 dynamic worker過去的解法包括自訂 DSL、大型 VM 或沙箱,以及人工審查。Cloudflare 的做法是從字串執行一個 worker,也就是 V8 的 isolate,Matt 說這類原語之後還會有別家。
  11. 隔離示範與可程式化護欄示範產生的程式碼在後端的 dynamic worker 裡執行,印出環境變數看不到任何密鑰,關掉 Node 相容後連 process.env 都沒有。對外網路存取也能用開關或網域限制函式來控管。
  12. MCP client 實機示範在簡報裡的 MCP client 問問題、跳出授權畫面後,列出帳號上的 worker。Matt 說這樣就能碰到整個 Cloudflare API 的兩千多個 endpoint,可以部署 worker、加 Access、查 DNS,之後還會支援寄信。
  13. 程式碼是精簡的計畫Matt 認為網路上會出現大量隔離環境,一個叫 code 的工具比一堆個別 tool call 有更大的自由度,並展示 workerd、Deno 與 Pydantic Monty(跑不受信任 Python 的新直譯器)執行同一類程式。
  14. 伺服器端要扛得住使用者變成 AI 之後,他們會對你的服務寫程式;Matt 提醒 API 要有良好的 rate limiting,因為可以在多個沙箱裡用 for 迴圈猛打。
  15. 客戶端的創新Matt 說做 MCP client 很痛苦,要管有狀態的連線,所以大家只做最精簡的版本。接下來會出現 programmatic tool calling、把產生的程式存成小腳本(例如排程的爬蟲,壞了由 agent 修好再存),也會有更多 client。
  16. MCP 變成 middlewareMatt 預期 MCP 會像框架裡的一個旗標,SDK 會輕到原生內建,到今年底至少 TypeScript 的大型全端框架都會有。最後推薦 Cloudflare 的 code mode 部落格,並呼籲 observability 業者照做。

名詞

progressive discovery
不一次載入所有工具,而是需要時才逐步取得,是這場要解的核心問題
tool search
一個搜尋工具,依使用者問題做關鍵字比對,把相關的幾個工具載入 context,Matt 說 Claude Code 採用這種做法
code mode
Cloudflare 去年夏天部落格提出的做法:產生 API 的型別,讓模型寫程式碼來呼叫
Dynamic Worker
Cloudflare 的功能,可從字串執行一個 worker,也就是 V8 的 isolate,用來隔離不受信任的程式碼
workerd
Cloudflare 的 worker 執行環境,Matt 用它示範前面的 dynamic worker,和 Deno、Pydantic Monty 並列
Pydantic Monty
Matt 說是 Pydantic 新推出、用來執行不受信任 Python 的 code interpreter
Access
Cloudflare 的託管 IDP,示範中用來替部署的 worker 加上存取政策
programmatic tool calling
讓模型產生程式碼來串接工具呼叫,Matt 預期客戶端會普遍採用
OpenClaw
Matt 舉例說很常使用 CLI 的工具

相關影片 同屬「工具太多」