代理行動的速度,快過任何人來得及審查的速度。
監控是在事後回答問題。真正關鍵的決策發生在更早的那一刻 — 動作還來得及被拒絕的時候。
一個編碼代理決定把它正在處理的儲存庫,上傳到一個沒有任何人核准過的端點。由於該代理是透過 Agent Assembly 針對 Claude Code 的受管啟動方式啟動的,這條連線依團隊所設定的目的地清單被評估,並在代理伺服器撥號之前就遭到拒絕。
此說法的適用範圍。 這適用於你導流經過 Agent Assembly 的連線 — 目前是透過針對 Claude Code 的受管啟動方式 — 且主機上已安裝代理伺服器:Linux 上是已發行的執行檔,macOS 上則透過 cargo install aa-proxy。在 Windows 上沒有任何本機中介。它是針對你所設定的已核准目的地清單生效。你未曾導流的代理不會被檢查,而記錄會如實說明這一點。只有在代理伺服器的稽核路徑已設定的情況下,這次拒絕才會留下持久的本機記錄。
提示詞裡的一把金鑰
一個代理把一把有效的 API 金鑰貼進了送往模型供應商的請求裡。在 Agent Assembly 會檢查的供應商主機上,這把金鑰被辨識出來,並在請求被轉發之前移除。偵測能力受限於它已知的樣式集合,而預設行為是遮蔽後轉發,並非阻擋。
一次針對正式環境的工具呼叫
一個代理呼叫了一個會刪除正式環境資料表的工具。這次呼叫依你的政策被評估,並在代理伺服器轉發之前遭到拒絕。此範圍涵蓋以一般 HTTP POST 送出的 MCP 工具呼叫;你以 stdio(最常見的設定方式)、SSE 或 Streamable HTTP 執行的工具伺服器並不在這條路徑上。
一個不斷重試、不斷花錢的迴圈
一個陷入重試迴圈的代理,達到了其團隊所宣告的花費上限,下一次呼叫因政策決策而遭到拒絕。上限只有在政策宣告時才存在,而這次拒絕只有在該呼叫前方有元件等待該答案時,才會真的擋下它。
導流、決策、呈現。
三個步驟,依照它們實際發生的順序。要看懂它們不需要任何產品術語,而三者都不能略過 — 第一步正是讓另外兩步成為可能的前提。
一項決策可能是什麼 — 以及是哪個元件做出的
這不是同一個裁決的四個分支。每一項都有不同的決策者、不同的預設值與不同的觸及範圍,而把正確的保證歸給錯誤的元件,本身就是一種錯誤。特別是遮蔽,它是獨立的一個階段,在連線決策之後才套用。
在它執行之前就被拒絕
在你導流經過 Agent Assembly 的路徑上所建立的連線,會依你所設定的目的地清單進行檢查,並在代理伺服器撥號之前遭到拒絕。
這次拒絕出自代理伺服器自身的本機對外流量組態,而非控制平面的決策;目的地清單預設為空 — 這次拒絕之所以存在,是因為有維運者設定了它。有一項對外流量控制預設開啟且無法透過任何組態放寬:送往回送位址、私有位址、鏈路本機位址及相關位址空間的請求一律被拒絕,包含公開主機名稱解析到這些位址的情況。
在轉發之前就被移除
在 Agent Assembly 會檢查的模型供應商主機上,被辨識出來的憑證會在請求被轉發之前從中移除。
共三個內建主機,因為承載內容的檢查預設僅限於模型供應商主機。預設行為是遮蔽後轉發,而非拒絕。偵測涵蓋率受限於樣式集合,且該路徑上的模型回應不會被掃描。這並不能讓憑證不出現在代理自己的行程之中。
依你的政策被評估
MCP 工具呼叫可以由控制平面依你的政策進行檢查,並在代理伺服器轉發之前遭到拒絕。透過受包裝框架接縫進行的工具呼叫,會在工具本體執行之前被檢查。
MCP 這條路徑是本產品中唯一一個由控制平面決定、且發生在撥號之前的拒絕,而它預設關閉;以 stdio 執行的工具伺服器(最常見的設定方式)、SSE 與 WebSocket 都沒有攔截機制。SDK 依設計即為建議性質,是縱深防禦的一環而非權威閘門:不呼叫它的代理等於根本沒有發問,而 Node SDK 的預設模式完全不會產生任何拒絕。
在決策做出前先行阻擋
政策規則可以先擱置一個動作,而不是直接回答它。這種擱置是真實存在的,而且失效時封閉:檢查會被阻擋,逾時則會轉為拒絕。
這裡把它寫成一項尚未完成的能力,因為它確實如此。目前沒有任何已出貨的維運者介面能夠回應該擱置所等待的佇列,所以實際上它會先阻擋,然後在逾時後拒絕,全程沒有任何人參與。目前還不要把人工審核納入規劃 — 追蹤於 AAASM-5657。
五件你不必聽信我們、可以自己查證的事
看見一個動作被拒絕,以及它沒有造成的效果
一次被記錄下來的執行:一個代理工具呼叫在其函式主體執行前就被拒絕,而該主體會寫入的檔案,事後由一個未參與該決策的獨立行程確認並不存在。旁邊還有兩次對照執行 — 一次允許同一個呼叫,一次移除強制點 — 兩次都寫出了檔案。這是一個工具、一條路徑、一個版本上的結果,該頁也如此說明。
被拒絕動作的證明 →自行驗證稽核鏈
aasm audit verify-chain 隨開放原始碼版本一併提供。它證明的是現存項目之間的完整性 — 而不是這份日誌本身沒有缺漏。這條鏈可察覺竄改,但未經簽章:它是對 JSONL 輸出檔所做的無金鑰摘要鏈,所以一份被清空的日誌驗證起來也會是乾淨的,並以零狀態碼結束。
驗證能證明什麼、又不能證明什麼 →把本頁任何一句話追溯到它的界限
本頁每一句能力陳述,都是共用主張登錄表十六筆項目之一,皆為原句引用而非改寫。每一筆項目都載明它所達到的用語、隨之而行的界限,以及背後的證據列 — 包含登錄表記為未量測的那兩個主題。
主張登錄表 →讀一讀做出決策的那套執行環境
閘道、代理伺服器、CLI 與各 SDK 都以 Apache-2.0 授權公開於 GitHub,連同用來鎖定本頁所述各項行為的測試。哪些是開放原始碼、哪些不是,都明白寫出而非暗示。
開放核心的界線 →以及三件本頁目前還不會主張的事
- 每一項決策都會進到日誌裡。寫出是盡力而為的:鏈首會在送出之前就先推進,而被丟棄的項目與被刪除的項目無從分辨。在有嘗試寫出記錄的情況下,它是否持久地抵達,屬於未量測。SDK 這條路徑並不屬於這種情況,這個詞也涵蓋不到它:被拒絕的 SDK 呼叫根本不會寫出任何東西,這是量測到的結果,而不是未知(AAASM-5665)。
- 已驗證的代理身分。代理會提出一組身分與持有證明,但代理平面依設計即接受未經驗證的呼叫者,作為啟動引導路徑。請把代理識別碼視為聲稱的,而非已確立的。
- 任何涵蓋率數字 — 百分比、受治理動作的計數,或橫跨一組機器的數值。沒有任何東西可以據以計算,而某個元件回報自己可用,並不能證明它真的看到了什麼。
開箱即開啟的有哪些,沒開啟的又有哪些
一項存在但預設關閉的能力,跟一項預設開啟的能力,是兩種不同的產品,所以這裡列出你動手設定之前的預設狀態。請雙向閱讀 — 底下有兩列比評估者通常預期的還要強。
| 開箱狀態 | 預設 |
|---|---|
| 在沒有政策的情況下啟動工作階段 | 拒絕。當無法解析出有效政策時,aasm run 不會啟動工具;政策可以解析但未宣告任何規則時,它同樣不會啟動。沒有政策不等於獲得許可。 |
| 送往私有位址的對外流量 | 一律拒絕。這道防護會在撥號之前重新檢查每一個解析出來的位址,所以解析到私有位址空間的公開主機名稱同樣會被拒絕。沒有任何組態或環境變數可以放寬它。 |
| 你自己的允許與拒絕清單 | 空的。由你逐一針對目的地設定。 |
| 承載內容檢查 | 範圍很窄。預設檢查三個內建的模型供應商主機。其他任何主機都會在不檢查承載內容的情況下建立通道:連線本身已被觀測,承載內容則沒有。 |
| 被辨識出來的憑證 | 遮蔽後轉發。偵測到憑證即行阻擋屬於選擇性啟用。模型回應不會被掃描。 |
| SDK 強制執行 | 預設模式下關閉。只有在具檢查能力的模式下,政策拒絕才會擋下被包裝的工具;在未啟用該模式時要求強制執行,會在初始化時明確報錯,而不是無聲地放行。 |
| 未命中任何規則的動作 | 允許。政策之內預設放行,但「是否具備政策」這件事預設拒絕 — 兩半都要講,否則這組說法會誤導人。 |
| 花費上限 | 除非政策宣告,否則沒有上限;未宣告的預算等於沒有上限。已宣告的上限是否真的在決策路徑中被檢查,屬於未量測,而損毀的預算儲存區會無聲地把上限重設。 |
| 作業系統層級的控制 | 未部署即為關閉,而且它不是決策點。在 Linux 上,核心探針會回報 TLS 明文、行程執行與檔案活動;這類訊號都不參與任何允許或拒絕的決策,而檔案 I/O 探針僅支援 x86_64。macOS 沒有對應的轉接器 — 但它同時也是唯一一個真的能觸及主機層強制執行等級的平台,途徑是一次選擇性啟用、經授權的設定寫入。Windows 兩者皆無。 |
| 稽核 | 開啟,盡力而為。雜湊鏈接的 JSONL,可在開放原始碼版本中驗證。寫出並無保證,所以這份日誌記錄的是成功寫入的內容,而不是實際發生過的全部內容。 |
平台。 交付上述多數能力的代理伺服器,在 Linux 上是已發行的執行檔;在 macOS 上則是 cargo install aa-proxy。在 Windows 上沒有任何形式的本機中介。UDP、QUIC 與 HTTP/3 不在支援的傳輸協定範圍內。
成熟度。 開放原始碼的執行環境尚未達到 1.0,是以預先發行系列的形式釋出。託管服務屬於已規劃 — 已決定,但尚未建置 — 所以本站沒有任何內容構成對推出日期、地區、服務等級協議或法規遵循狀態的承諾。
從你的工作真正要做出的那個決定開始
五種讀者,五個不同的起始頁面。底下每一條路線的終點都是一個決定,而不是更多的閱讀。
平台與 SRE
要先學會的一件事是:導流是逐一代理、逐次啟動的 — 沒有人導流的代理就在這一切之外。接著才是:裝哪個產物、在哪個平台上、從哪個通路取得。
終點:在一台主機上完成一次受治理的啟動
安裝並導流一個代理 →工程開發
用 Python、Node 或 Go 加上政策檢查點 — 並在清楚知道預設為建議性質、且未經轉接的框架不在包裝範圍內的前提下,選擇 SDK 模式。
終點:能實際執行並得到決策的程式碼
SDK 與框架範例 →產品、QA 與品質保證
拿一則已公開的主張,找到支撐它的東西。情境頁面記錄了每一項判定、它依據什麼,以及哪些用語在佐證程序實際執行之前先行保留。
終點:一筆被引用的證據列,或一個被記錄下來的缺口
各項主張與其判定 →上面那四條角色路線 — 資安、平台、工程開發與產品 — 各自都有一份更完整的簡報:今天出了什麼問題、有哪些是已支援的、每個答案能走多遠、它不涵蓋什麼,以及接下來該讀什麼。 閱讀評估者簡報 →
以託管服務的方式使用它是第五條路徑,而它目前尚未推出 — 控制平面處於早期存取階段,僅開放給設計夥伴。 申請 Cloud 早期存取 →
Start self-hosting the way you already work
The open-source runtime self-hosts a limited-function stack for local evaluation and development — full functionality runs in the managed cloud. Pick your install path; each command is real, with no placeholder URLs, and pre-launch tabs are labeled honestly.
macOS and Linux. The script is served from agent-assembly.com/install.sh — review it before piping to sh if you prefer.
curl -fsSL https://agent-assembly.com/install.sh | shOnce the CLI is on your path
Four common next moves after install — pick whichever matches how you learn. Each link fires a named event so we can tell which surface converts, without tracking identity.