Agent safety and infrastructure
MCP 工具註解普及仍不足以支撐交易安全,研究整理八類代理外部副作用異常
新研究把代理重試、並行與補償造成的外部狀態錯亂整理成八類異常,指出單次工具回傳成功不代表整體工作流一致。對 98,291 項 MCP 工具的普查顯示註解欄位雖常見,卻無法表達確認結果、暫存提交、補償及跨呼叫相依性。

9 月 14 日公開的研究把代理工具可靠性重新描述為「外部副作用的一致性」問題:一次 API 呼叫可以局部成功,但重試、推測執行、並行分支或部分失敗仍可能令整體工作流留下錯誤狀態。例如付款回應遺失後重試可造成重複扣款;已取消的分支可能留下不可退款訂單;兩個各自合法的平行預訂也可能合計突破總預算。
作者提出 effect-history 模型,刻意區分現實世界已發生的效果、執行器對結果的觀測,以及工作流最後的 commit 或 abort。由此整理出八類異常:重複效果、已提交但缺少必要效果、孤立補償、取消後殘留、過早外部化、受污染的推測結果、衝突外部化及幽靈補償。要一般性排除它們,工具邊界須提供邏輯操作 ID、權威狀態查詢、冪等重試、可宣告補償、dry-run或暫存、穩定資源身分、相依追蹤及共享資源協調等能力;只把黑箱工具包在更聰明的代理外層並不足夠。
配套普查從 MCP Registry 的 59,625 筆版本紀錄取每個伺服器最新版,匿名探測9,234個遠端端點;4,838個可連線伺服器共回傳98,291項工具。74.0%的工具至少傳送一個標準提示欄位,61.7%四欄齊全,但只有12.9%帶有適用的破壞性分類。`readOnlyHint=true、destructiveHint=false、idempotentHint=true、openWorldHint=true`單一組合更佔39.9%,顯示欄位完整可能只是框架預設,不能等同交易語意完整。
研究沒有證明被掃描工具真的會造成這些異常:4,318個遠端目標無法連線,stdio型伺服器未納入,副作用子集也只是依工具名稱推測。下一步值得關注的是 MCP 或上層契約能否標準化結果查詢、補償、暫存與資源範圍,並讓執行器在重試前驗證,而非把四個提示布林值當成安全保證。