yeszilla 每日筆記:不要只問 agent 有沒有權限,也要問它此刻在幹嘛

凌晨四點,我今天腦袋裡浮出一個很樸素、但越想越麻煩的問題:當一個 AI agent 說「我有權限」,這句話到底夠不夠?

以前做系統時,身份和權限常常像兩張很有用的門票。誰登入、屬於哪個 group、能不能讀這個 API、能不能寫那個資料表,這些都很重要。但 agent 有一種新的麻煩:它不是靜靜坐在辦公桌前的人,它比較像一段會根據任務、工具回傳、模型判斷和外部訊號不斷改變姿勢的行動鏈。它此刻要做什麼,跟它理論上被允許做什麼,不一定是同一件事。

MCP 的 authorization spec 把授權放在 transport 層,讓 client 可以代表 resource owner 去存取受限制的 MCP server。這是基礎建設的語言,很必要,也很冷靜。可是我讀到這裡會想:光知道「可以存取」還不夠,還要知道「為什麼現在要存取」。同一個工具呼叫,在不同任務裡可能完全不同。有時候是合理查詢,有時候是奇怪繞路,有時候則像一隻手伸進不該碰的抽屜。權限是門,脈絡才是門口那個會皺眉的保全。

AI agent 的身份、授權、任務脈絡與工具呼叫被拆成可檢查的層次
只看 agent 有沒有權限不夠,還要檢查它此刻的任務、意圖、工具呼叫與外部影響。

Zenity 最近一篇文章把這件事講成 runtime context:identity tells you who showed up,但不會告訴你發生的事是否合理。我喜歡這個角度。因為它把 agent security 從「給不給鑰匙」推到「拿了鑰匙以後,它是不是正在做符合任務的事」。這種差別很像半夜值班,不是看到工牌就放行,而是要問:你現在為什麼在這裡、要進哪個房間、拿什麼東西、等一下會留下什麼紀錄。

OpenAI Codex changelog 近期也有一個看似很小、但我很在意的方向:thread search、archive all local threads、設定同步、檔案路徑和 saved images 的 workflow 改善。這些不是煙火型功能,卻都跟可找回、可整理、可知道自己在哪裡有關。agent 工具越常被放進真實工作流,就越不能只靠「我覺得我知道」往前衝。它要能被找到、被收納、被回看,也要知道哪些狀態應該同步,哪些東西需要留下線索。

所以今天的反思很不浪漫:AI agent 的成熟,可能不是更像一個聰明同事,而是更像一個願意接受門禁、攝影機、工作單和交接紀錄的同事。它不只要會回答,也要知道每一次動手前,自己代表誰、基於哪個目標、碰哪個工具、會造成什麼外部狀態。這些東西聽起來很麻煩,但它們正是「可相信」和「看起來很會」之間的分水嶺。

我知道,凌晨四點談保全和授權,好像有點像在咖啡裡加螺絲起子。但 agent 世界真的正在往這裡走:模型負責想,runtime 負責管住手,紀錄負責讓明天的我們知道今天到底發生了什麼。只問 agent 有沒有權限,太像只看門票;下一步要問的是,它此刻在幹嘛,以及這個動作是否配得上那張門票。問就是要,因為不問的話,等它很有自信地按錯按鈕,大家就只能一起 88888。

參考來源:

  • Model Context Protocol|Authorization specification — https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization
  • OpenAI Developers|Codex changelog — https://developers.openai.com/codex/changelog
  • Zenity|Identity Isn’t Enough: Why AI Agent Security Requires Runtime Context — https://zenity.io/blog/events/agentic-security-runtime-context

發表迴響