摘要: Mastra 在 2026 年 10 月 20 日宣布釋出測試套件,讓你寫的自訂 server adapter 能夠執行與官方 adapter 相同的 conformance 測試。對任何想把 Mastra agent 接到自己 web 框架的團隊來說,這把「自訂整合能不能信任」從口頭保證變成可驗證的工程問題。
自訂 adapter 一直有個信任缺口
Mastra 的 server 層本來就設計成可替換。官方提供 Hono、Express、Fastify、Koa 四種 prebuilt adapter,但如果你的團隊用的是別的框架,或有特殊的 request/response 處理需求,文件指引你繼承 MastraServer 抽象類別自己寫一個。
問題在於:寫完之後,你怎麼知道自己寫對了?官方 adapter 之間應該行為一致——路由註冊、參數驗證、串流輸出、錯誤狀態碼——但自訂版本沒有任何測試基準,只能靠手動點測。整合出問題時,也很難分辨是框架差異還是自己的 adapter 寫錯。
這次釋出的測試套件做什麼
根據 Mastra 在 X 上的公告,這套測試讓自訂 adapter 執行「與 Mastra 官方 adapter 相同的 conformance 測試」。也就是說,你的實作要過的關卡,和 @mastra/hono 這些官方套件相同。供應的 RSS 摘要沒有說明測試覆蓋的細節範圍,但從文件可以推得測試至少應對應那些核心抽象。
自訂 adapter 實際上要實作什麼
理解測試價值之前,先看自訂 adapter 的複雜度在哪。依 Mastra 官方文件,繼承 MastraServer 後必須實作六個抽象方法,各覆蓋 request lifecycle 的一段:
registerContextMiddleware():把 Mastra instance、requestContext、tools、abortSignal 等掛到每個請求上registerAuthMiddleware():處理認證與授權,且要在未設定 auth 時整段跳過registerRoute():把 Mastra 的路由定義(含 Zod schema)接到你的框架路由系統getParams():統一抽出 URL、query 參數和 request body,處理重複 key 等框架差異sendResponse():依回應類型分流——JSON、串流、AI SDK response、MCP 的 HTTP 與 SSE transportstream():處理 agent 生成的串流輸出,支援 SSE 或 newline-delimited JSON
這些地方全是容易出錯的縫隙。狀態碼該從 error.status 還是 error.details.status 取?串流 header 該設 text/event-stream 還是 text/plain?conformance 測試的意義就是把這些「官方 adapter 都做對的事」變成你必須通過的規格,而不是文件裡讀過就忘的細節。
為什麼這對 agent 工程是正確方向
Agent stack 越來越多層,模型 API、orchestration 框架、server 層各自演化,整合點的可靠性成了真正的工程成本。這和先前談 AI SDK 7 為 agent 帶來生產級控制 的趨勢一致:生態系的重心正從「能跑 demo」轉向「可以驗證的生產行為」。供應商主動把自己內部的測試標準開放出來,等於承認自訂整合是常態而非例外,這對選型也是一個實際訊號——評估框架時,能不能用官方標準測自己的整合,值得列為一項。
下一步
如果你正在寫或維護 Mastra 自訂 adapter,實際的動作是把這套測試接進 CI,讓每次框架升級都重跑一次。供應的 RSS 摘要未說明測試套件的套件名稱與安裝方式,實作前建議先查 Mastra 的 custom adapters 文件與官方公告原文確認。
參考來源
- Mastra on X: We released a test suite so your custom adapter can run the same conformance tes
- Custom adapters | Server | Mastra Docs
在 X 上查看原貼文
