KeyFrame內部研究專用

MCP无状态化背后的真正逻辑

Why QQ·8月2日週日·16 min中文

三句話摘要

MCP 2026年新規範的無狀態化改版:90%應用無需改動,關鍵在於審計Session依賴和推送機制的硬移除。 新規範的核心從有狀態轉向無狀態,大多數應用只需升級SDK,真正的重寫風險僅限於依賴Session存儲狀態的少數項目;但推送機制被完全移除且無寬限期,這是最緊迫的變更,而安全責任的轉移意味著開發者必須主動承擔句柄安全、狀態加密和邊界驗證的全部責任。 無狀態化不等於全員重寫:官方對1000個開源服務器的調查顯示90%應用從未觸及Session ID,僅升級SDK即可;3.5%代碼中硬寫的ID會被自動消除;2.8%只需刪除構造參數。真正需要人工介入的只有2.5%將Session作為存儲的項目,它們才面臨架構級重構成本。

重點整理

重點
  • 1

    無狀態化不等於全員重寫:官方對1000個開源服務器的調查顯示90%應用從未觸及Session ID,僅升級SDK即可;3.5%代碼中硬寫的ID會被自動消除;2.8%只需刪除構造參數。真正需要人工介入的只有2.5%將Session作為存儲的項目,它們才面臨架構級重構成本。

  • 2

    新的狀態載體是顯式句柄:不再靠隱形的Session維持狀態,而是通過類似購物車ID的顯示句柄(如SKU,AEBRC3)。句柄對模型可見可推理,但「持有不等於授權」——它會進入聊天記錄和子代理提示詞,必須每次驗證句柄與身份的配對,且需加密封簽防篡改。

  • 3

    推送機制是最危險的變更:SSE反向推送被完全物理移除,無宽限期。新協議改用MRTR(多輪重試)機制——服務器返回問題清單,客戶端作答後重新發起請求。所有交互式工具都必須優先改用MRTR,這比其他廢棄特性的12個月過渡期來得更急迫。

  • 4

    安全責任邊界已從協議層轉到配置層:過去問題被隱藏在傳輸層的Session之中,現在state被剝離成兩部分——模型可見的句柄參數和客戶端往返的Request State Blob。開發者必須主動實現句柄的128位高安全熵、TTL生命週期、Request States的加密驗簽、身份綁定檢查,以及防重放機制。

實用技巧與重點

乾貨
  • 調研數據
  • TypeScript SDK 一週下載量:4000萬
  • 應用層分類(官方1000服務器調查):
  • 90%:從未引用Session ID
  • 3.5%:SDK路由樣板中硬寫ID
  • 2.8%:僅配置無效生成器
  • 2.5%:將Session作為存儲使用
  • 0.7%:在網關層執行粘性路由
  • 0.5%:認證於Session進行強綁定
  • 核心機制變更
  • 移除:握手、Session ID、服務器反向推送
  • 新增:MRTR(多輪重試)、顯示句柄、Request States
  • 工具方法名未變:Tools、Call、Prompts、Get、Resources、Read
  • 新請求/結果結構新增:InputRequired、Responses、Request States等字段
  • 服務發現改為RPC調用:Server Discover(客戶端可選預先調用)
  • 廢棄時間表
  • 推送交互:立即移除,無宽限期
  • Route Sampling、Logging、DC2:12個月過渡期(至2027年7月28日)
  • CIMD:成為認證新標準
  • SDK發布狀態(截至7月28日)
  • TypeScript、Python:正式版
  • Go:1.7正式版
  • C:預發布
  • Rust:Beta版
  • 安全要求
  • 句柄最低熵:128位以上
  • Request States:必須ROO、HMAC或AEAD加密驗簽,驗簽失敗直接拒絕
  • TTL:限定句柄生命週期,無超時機制時需自行實現
  • 身份綁定:句柄必須與認證主體配對驗證
  • 版本回退機制
  • 新客戶端遇舊服務器失敗時自動回退至舊版握手流程
  • TypeScript:默認保持舊版協商,需顯式開啟新協議
  • Python:默認自動探測最高共同版本
  • 舊版本:至少半年關鍵修復支持
  • 規範缺口
  • 文件和二進制傳輸:仍在草案階段,客戶端僅支持Base64
  • Token膨脹:官方最優實現約需15萬Token,漸進式發現約2000Token

結論

結論

新規範的核心從有狀態轉向無狀態,大多數應用只需升級SDK,真正的重寫風險僅限於依賴Session存儲狀態的少數項目;但推送機制被完全移除且無寬限期,這是最緊迫的變更,而安全責任的轉移意味著開發者必須主動承擔句柄安全、狀態加密和邊界驗證的全部責任。

完整解析

詳細

Anthropic在2024年11月推出的MCP協議已成為行業標準。在7月28日的新規範發布中,官方做出了一個大膽決定:彻底移除所有有狀態機制,包括握手、Session ID、服務器反向推送等。這看起來像是一場「史上最大改版」,評論區因此出現了「重寫」與「終於」兩派爭議。然而,這種恐慌往往是基於直覺的猜測。只要花10分鐘用grep命令自查,就能發現真相:90%的應用從未使用過Session ID,僅升級SDK即可;另外7%的應用僅涉及瑣碎改動或構造參數刪除。真正需要重構架構的,只有那2.5%將Session作為存儲介質的項目。官方對1000個開源服務器的調研充分驗證了這個結論的科學性。

新協議移除有狀態機制的根本原因在於解決水平擴展的瓶頸。過去的架構要求服務器為每個客戶端記賬,一旦單點故障就會導致整個Session鏈路中斷。新架構下,網關無需解析Body即可進行路由,負載均衡也能輕鬆進行輪詢。同時,官方在5月鎖定RC版本並預留10週驗證期,展現了對如此龐大改版的謹慎態度——TypeScript SDK一週下載量就超過4000萬。目前TypeScript和Python已發布正式版,其他SDK也在按計畫跟進,這個節奏反映出Anthropic對開發者生態的尊重。

新協議的核心創新是引入了「顯示句柄」(Opaque Handle)和「MRTR」(多輪重試)機制。顯示句柄本質上就是普通的工具參數,比如購物車ID。模型既能看見它,也能對其進行推理。但這裡有一條鐵律:持有不等於授權。句柄會進入聊天記錄和子代理提示詞,任何拿到這個字符串的人都可能發起調用。因此在有認證機制時,必須每次驗證句柄與身份的配對。如果沒有認證,句柄本身就要充當令牌,需要128位以上的高安全熵並限定生命週期。同時,新協議取消了握手機制,改為名為「Server Discover」的普通RPC調用。客戶端可以選擇不預先調用,直接發送請求;如果遇到版本不支持的情況,系統會返回帶有支持版本列表的錯誤碼,客戶端只需切換版本重試即可。

這次改版中最真正的危險點有三個。首先,推送式交互被徹底物理移除,無寬限期。過去服務器依賴SSE流向客戶端發起請求以獲取用戶確認或目錄信息,但新協議中這條通道完全消失。當客戶端協商進入新協議後,任何推送請求都會在本地拋出類型化錯誤。為了替代推送,新協議引入了MRTR機制:服務器返回一份問題清單,由客戶端作答後重新發起請求。所有交互式工具都必須優先改用這種方法,這是比其他廢棄特性的12個月過渡期更加緊迫的變更。其次,新協議引入了Request States字段,允許服務器在MRTR中打包狀態。但這是把雙刃劍:客戶端必須在不查看、不修改的前提下逐字節原樣回顯,而規範明確指出這個Blob數據本質上是敵意輸入,因為它經過了可能被篡改或重放的客戶端。開發者必須對其進行ROO、HMAC或AEAD的完整性保護和加密封簽,驗簽失敗時直接拒絕。第三,狀態安全完全由開發者負責。雖然規範要求服務端驗證Request States,但各SDK的默認保護機制存在差異,開發者必須依據具體使用的SDK進行獨立驗證。

迴歸具體工程實踐,幾個關鍵的陷阱暴露了這次遷移的複雜性。Lambda環境中首次調用成功但第二次調用崩潰,根本原因是Mangum在每次調用都重新進入生命週期,導致全局實例被反復初始化。MRTR機制會導致延遲統計失效,因為多輪重試導致請求ID發生變化,這會欺騙依賴ID關聯的監控工具,錯誤的關聯比不關聯更具破壞性。TypeScript中使用ErrorCode === 401作為類型判斷會導致許多錯誤路徑無法被正確捕獲。Python的HTTP客戶端改用系統信任庫後,缺乏系統CA的容器中會突然出現握手失敗卻沒有錯誤提示的情況。CORS規範的精確匹配要求原數據中的Redirect URIs必須包含端口號,曾有客戶端因漏寫端口號被授權服務器直接拒絕的真實案例。這些坑點的共同特徵是:都涉及狀態轉移和安全邊界的收緊。

面對這些變更,開發者不必盲目跟風全員重寫。官方至少為Route Sampling和Logging等廢棄能力提供了12個月的過渡窗口。舊服務器能否繼續無縫使用,取決於客戶端和SDK是否保留了版本協商的回退機制。當新客戶端遇到舊服務器且探測失敗時,它會自動回退至舊版握手流程。必須明確的是:升級SDK與啟用新協議是兩個完全獨立的決策。TypeScript默認保持舊版協商,需顯式開啟新協議;Python則默認自動探測。整個遷移節奏完全掌握在開發者自己手中。

立即需要執行的只有三件事。首先是審計Session依賴,花10分鐘時間用grep搜索「mcp-session-id」、「initialize」及舊傳輸類名稱,精準定位應用現狀。其次是在測試環境中安裝新版本並驗證。對於TypeScript項目可配合官方codemod進行升級。最後是嚴格按照兼容矩陣進行驗證,不僅要測試新舊客戶端與服務器間的連接性,還要全面覆蓋工具發現、錯誤處理、認證、超時、請求取消及負載均衡等核心場景。特別需要注意的是,舊客戶端遇到純新服務器時會發生硬失敗,因此在遷移期間新服務器最好提供一個能同時兼容新舊協議的端點。

未來的進展方向非常明確。首先是擁抱無狀態部署,因為協議層不再管理狀態,開發者必須時刻保持清醒——句柄需要自己鑄造,加密簽名需要自己實現,安全邊界也必須由自己親自劃定。其次是關注擴展生態,因為TESCS等實驗性功能正從實驗轉為正式,各SDK的支持度存在差異,這很可能成為下一個競爭焦點。同時也要注意規範的兩個顯著缺口:文件和二進制傳輸仍停留在草案階段,Token膨脹問題雖然官方最優實現需約15萬Token,但漸進式發現僅需2000Token左右,這尚未成為標配功能。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「AI 技術」的內容

🔬“We have foundation models for language, not for physics” — Anima Anandkumar, Bren Professor of Computing
編輯精選
83 min
AI 技術英文PODCAST8月26日

🔬“We have foundation models for language, not for physics” — Anima Anandkumar, Bren Professor of Computing

Latent Space

  • 加速傳統物理模擬的典範轉移:氣象科學家原本認為 AI 無法匹敵數十年的物理建模工作,但傅里葉神經算子不僅達到同等精度,還快了一萬多倍。原本需要超級計算機的計算現在用消費級 GPU 就能完成,這改變了整個領域的思維方式。
  • 傅里葉域的非局部現象捕捉:傅里葉域能有效表示非局部現象(如大氣河流跨越千里的影響),且計算複雜度為準線性,遠優於完全連接的全局模型。這特別適合流體動力學、量子化學等自然現象中普遍存在的非局部相互作用。
  • 多解析度連續函數表示:神經算子將輸入輸出視為連續函數而非固定維度向量,可在推論時以任意解析度查詢,並能在更高解析度上疊加物理約束或額外數據,克服了固定解析度神經網路的限制。
Between Two Nerds: Attribution is dead, long live attribution
32 min
AI 技術英文PODCAST8月25日

Between Two Nerds: Attribution is dead, long live attribution

Risky Business

  • 工具成本的破壞性下降 — 傳統上,攻擊者必須重複使用昂貴自製的惡意軟體或工具組,因為開發和維護成本極高。這種成本結構使得安全研究人員可以通過工具特徵和程式碼簽名來追蹤攻擊者。LLM 自動化了代碼生成與維護工作流,使得攻擊者可以輕易為每個目標生成新工具,或改用通用系統工具,導致傳統的工具特徵分析失效。
  • 所有取證證據都在攻擊者掌控之中 — 無論是使用的 IP 位址、惡意軟體類型或戰術流程,這些都是攻擊者的主動選擇。即使看似是隨機巧合,攻擊者仍有能力在事前決定留下什麼痕跡。因此,所有可恢復的取證證據本質上都是攻擊者願意暴露的信息。
  • LLM 削弱工具簽名但保留高階行為特徵 — LLM 經過公開駭客技術訓練,使不同使用者產生相似的攻擊模式。然而,勒索軟體集團、國家級行為者的受害者選擇、贖金要求方式或目標模式等高階特徵仍具有識別價值。例如,鎖定加密交易所的攻擊幾乎只能指向朝鮮。
Why the Next AI Breakthrough May Come from Physics with Max Welling - #774
55 min
AI 技術英文PODCAST8月25日

Why the Next AI Breakthrough May Come from Physics with Max Welling - #774

TWIML AI

  • 多層篩選的材料設計流程:先搜尋文獻資料庫找現有材料,若無合適的就用生成模型產生數十萬個候選分子,用機器學習力場進行分子動力學模擬篩選,再進行實驗驗證。這套流程相比傳統量子力學計算能加速效率數個數量級。
  • 生成AI與熱力學的數學等價性:資訊論是兩個領域的共同基礎,生成模型的擴散過程與非平衡統計力學描述資訊損失的過程在數學上完全對應,許多開發出來的方法工具在兩領域都有精確對應的形式。
  • 基礎模型的遷移學習策略:先在廣泛材料資料集上訓練基礎力場表示,再針對特定材料類別進行蒸餾微調,既能保持計算效率也能獲得專一性。