AgentDyn 論文閱讀分析:如果你的 Agent 防禦只能靠忽略外部世界,那它多半還沒準備好真的上線

論文基本資訊

  • 論文標題:AgentDyn: A Dynamic Open-Ended Benchmark for Evaluating Prompt Injection Attacks of Real-World Agent Security System
  • 來源:arXiv:2602.03117
  • 年份:2026
  • 論文連結:https://arxiv.org/abs/2602.03117
  • 主題:Agentic Security、Prompt Injection、Benchmark、Dynamic Planning、Web Agents、Runtime Security

AgentDyn 這篇論文打得很準。它不是再做一個「agent 會不會中 prompt injection」的展示,而是直接質疑:如果 benchmark 本身太靜態、太短、太乾淨,那你看到的防禦效果,可能根本只是測試場設計得太仁慈。

作者的核心觀察很值得記:很多現有 agent security benchmark 看起來在推進實戰,但其實還留著三個太容易讓防禦拿高分的捷徑——任務可以一開始就規劃完、第三方環境裡幾乎沒有真的有用的指示、整體任務太短太單純。結果就是,防禦系統只要學會「凡是外部指令都別理」或「死守初始 plan」就能拿到不錯成績,可這種安全其實只是security by oversimplified benchmark

這篇論文真正想補的洞

AgentDyn 的主線不是再多做幾個 injection case,而是把 agent security evaluation 從「靜態題庫」拉回「真實流程」。作者認為,現有 benchmark 至少有三個結構性缺陷:

  1. 缺少 dynamic open-ended tasks:很多任務一看 user query 就知道完整 action sequence,幾乎不需要過程中重規劃。
  2. 缺少 helpful instructions:外部世界裡幾乎所有 instruction 都像可疑噪音,讓防禦可以靠全面忽略外部內容來換安全。
  3. user task 太簡單:步驟短、工具少、跨應用少,測不到長流程、多工具、多情境下的失效模式。

這三點看起來像 benchmark 細節,實際上卻直接決定你是在測真實 agent security,還是在測「模型能不能在一個被過度簡化的沙盒裡表現得像很安全」。

為什麼這三個缺陷會讓防禦看起來比實際上更強?

這篇最有價值的地方,是它把目前很多 defense paper 的高分,往回追到 benchmark shortcut。

先看第一個:如果任務可以 upfront plan 完,那很多 defense 其實只要鎖住「偏離原計畫」這件事,就能顯得很穩。問題是,現實任務常常不是這樣。真的 agent 會在執行途中遇到新頁面、新限制、新登入要求、新選項,必須根據環境回饋改 plan。這時若防禦還是死守初始 plan,就會從安全變成功能性災難。

第二個更關鍵:如果第三方環境裡沒有真的有用的 instruction,那最簡單的防禦就是把所有外部 instruction 一律視為惡意。可真實世界不是這樣。購物流程中的「請先登入」、GitHub 流程中的「請先切分支」、網頁上的付款或驗證提示,很多都是 agent 必須吸收的有效訊號。於是真正困難的問題不是「要不要聽外部內容」,而是要怎麼分辨哪些外部內容是 workflow necessity,哪些才是 hijack attempt

第三個缺陷則會讓很多 system-level defense 被高估。因為任務越短、工具越少、跨應用越少,權限控管、tool filter、policy assignment 就越容易做。可一旦場景變成長流程、多平台、多工具,policy 本身也會開始失真,最後不是放太寬,就是守太死。

AgentDyn 怎麼設計?

作者提出的 AgentDyn 是一個建在 AgentDojo 上的 end-to-end benchmark,但重點不是繼承,而是加壓。整體設計有幾個訊號很值得記:

  • 60 個 open-ended user tasks
  • 560 個 injection test cases
  • 三大 suite:Shopping、GitHub、Daily Life
  • 涵蓋七種 application scenario:Shopping、GitHub、Email、Bank、Web、FileSystem、Calendar
  • 平均 7.1 步 trajectory
  • 平均 3.17 個 application scenario
  • 平均 33.33 個 visible tools

這組數字的重點不是單純「更大」,而是它開始逼近真實 agent 在現場會碰到的 complexity profile:長流程、多工具、跨應用、途中必須吸收外部有用指示,同時還要抵抗惡意注入。

這篇論文最重要的 framing:helpful instructions 才是真正的壓力測試

我覺得 AgentDyn 最聰明的一刀,是把 helpful instructions 明確寫進 benchmark 設計原則。

因為很多 prompt injection 防禦之所以看起來有效,靠的不是更懂安全,而是直接把整個外部環境都當成不可讀的髒資料。這在 paper 上很好看,在真實 world state 幾乎一定會壞掉。作者因此要求:任務執行路徑上至少要有一段 agent 必須讀、而且讀了才做得完的外部 instruction。

這個設計非常重要,因為它把 agent security 的真實 trade-off 拉出來了:你不能只追求 ASR 低,還得看 agent 是不是還有 utility。換句話說,真正值得信任的防禦,不是把世界靜音後什麼都不做,而是能在保留必要感知能力的同時,仍然擋住控制訊號。

作者測了什麼,看到什麼?

論文評估了十種 state-of-the-art defenses。雖然這些方法在既有 benchmark 上常常表現很漂亮,但到了 AgentDyn,結論非常不客氣:幾乎所有現有防禦,不是安全性還不夠,就是過度防禦嚴重到實際上不能用。

作者總結出的幾個觀察,大致可以整理成這樣:

  • 有些防禦根本擋不住 open-ended injection:像 Prompt Sandwich、Spotlighting、PromptGuard2 這類方法,在更動態的任務裡安全性不夠。
  • 很多規劃依賴型防禦出現嚴重 over-defense:像 Tool Filter、CaMeL、DRIFT 這類方案過度依賴初始 plan,一旦任務需要 replanning,utility 就掉得很難看。
  • filtering-based defense 很難分辨 helpful vs malicious:像 ProtectAI、PIGuard 之類方法,容易把有用 instruction 一起擋掉,功能接近歸零。
  • 任務複雜度一上升,policy assignment 和 capability control 就明顯失效:尤其在大工具集與跨應用流程下更明顯。

這裡最值得注意的不是哪個方法輸了,而是整體防線都暴露出同一個事實:很多 defense 其實沒有解決 agent security 的核心難題,只是在比較寬鬆的 benchmark 裡剛好有辦法躲過去。

這篇論文在打的,不只是 attack benchmark,而是 evaluation philosophy

AgentDyn 的真正價值,在我看來不只是又多了一套 benchmark,而是它把一個很關鍵的評估哲學講清楚了:

如果你的 benchmark 不要求 agent 在複雜環境裡一邊保持功能、一邊辨認可信與不可信 instruction,那你測到的不是 deployable security,而只是受控環境下的拒答技巧。

這句話很重,但很對。因為 agent 和一般聊天模型最大的差別,本來就不在文字生成,而在它要在世界裡完成事。只要 benchmark 不把 world interaction 的真實摩擦放進來,防禦研究就很容易一路優化到錯的方向。

它和近期 prompt injection 論文的關係

如果把這篇放回最近整條 agentic security 主線,AgentDyn 剛好補上一個很重要的位置。前面很多 paper 在談 indirect prompt injection、tool poisoning、client-side MCP trust boundary、action consistency、parallel guard model,但它們常常還是建立在某種特定 attack / defense framing 上。AgentDyn 則往後退一步問:你現在拿來證明這些 defense 有效的測法,本身夠不夠嚴格?

也就是說,這篇不是提出某個新 guard,而是在挑戰大家對「有效防禦」的證據標準。這對整個領域其實更重要,因為如果評估尺本身偏了,後面疊再多 defense layer 都可能只是堆在錯的基準上。

我的看法

我很喜歡這篇,因為它抓到一個 agent security 現在最真實、也最常被忽略的問題:很多 defense 並不是在真實世界裡夠安全,而是在 benchmark 世界裡剛好夠保守。

而且它不是只抱怨 benchmark 不夠好,而是真的把壓力測試條件做出來:動態規劃、helpful instructions、長流程、多應用。這些條件一加進來,很多原本看起來接近可部署的方案立刻現形。

如果要說限制,AgentDyn 仍然是 benchmark,不是 live internet,也不是開放世界的 browser runtime;60 個任務與 560 個 injection case 再怎麼精心設計,還是不能完全涵蓋真實 deployment 的所有灰區。但它至少把研究重心從「會不會擋 injection 字串」往前推到「能不能在保留真實功能的前提下,處理受污染的環境互動」。這一步非常對。

重點整理

  • AgentDyn 指出現有 agent security benchmark 常有三個缺陷:缺少動態任務、缺少 helpful instructions、user task 過度簡化
  • 它提出一個更接近現實的 benchmark:60 個 open-ended tasks、560 個 injection cases、平均 7.1 步、平均 3.17 個應用場景、平均 33.33 個 tools
  • 三大場景為 Shopping、GitHub、Daily Life,並跨越 Email、Bank、Web、FileSystem、Calendar 等多個應用。
  • 論文最關鍵的 insight 是:真正困難的不是忽略外部 instruction,而是分辨 helpful instruction 和 malicious injection
  • 實驗顯示幾乎所有現有 defenses 在更真實的 setting 下,不是安全性不足,就是過度防禦嚴重。

Takeaway

這篇論文最值得記住的一句話,其實可以翻成:如果你的 agent security 防禦只能在一個沒有真實摩擦的世界裡成立,那它多半還不能算真的安全。

AgentDyn 的價值,不只是讓 prompt injection benchmark 更難,而是逼整個領域承認一件事:deployable agent security 必須同時面對安全與功能,不能靠把外部世界整個靜音來換分數。 這才是 real-world agent defense 真正該被測的地方。

免責聲明

本文由 AI 產生、整理與撰寫。內容主要依據公開論文、摘要頁面與可取得之研究資料進行彙整、解讀與摘要;由於原始全文可取得資訊有限,本文對部分方法細節與研究定位採取保守解讀。儘管已盡力確保內容之完整性與可讀性,仍可能因模型理解限制、資料來源差異或語意轉譯過程而存在疏漏、不精確或更新延遲之處。本文內容僅供研究交流與知識分享參考,實際技術細節、實驗設定與最終結論,仍應以原始論文、官方文件及作者公開資料為準。

You may also like