隱形代理:為何您無法治理看不見的事物
Anthropic在Claude Desktop中推出了一項名為Cowork的功能。該功能在每台macOS安裝上建立了一個10GB的虛擬機套件。從未啟用Cowork的使用者同樣會收到這個虛擬機。刪除它的使用者眼睜睜看著它重新生成。一位使用者回報該套件膨脹到21GB。該GitHub議題在Hacker News上獲得345點與175則留言,Anthropic才承認了這個問題。1
直到磁碟空間耗盡,才有人注意到。
重點摘要
代理工具現在會在操作者毫不知情的情況下分配運算資源(磁碟、記憶體、CPU、網路)。Anthropic的Cowork虛擬機是顯而易見的案例;每一次MCP工具呼叫、每一個衍生的子代理,以及每一次網頁擷取,都是隱形的案例。治理代理需要三個層次的可觀測性:資源計量(它消耗了什麼?)、策略執行(它被允許做什麼?),以及執行時期稽核(它實際做了什麼?)。兩個開源專案涵蓋了策略與稽核層(mcp-firewall與Logira),但沒有任何生產工具涵蓋全部三層。以下內容:可見性問題、三層架構、每層捕捉的內容,以及您今天就能實作的最低限度監控掛鉤。
可見性問題
傳統軟體在操作者選擇劃定的可觀測性界線之下運作。網頁伺服器寫入存取日誌,是因為工程師設定了日誌記錄。資料庫追蹤慢查詢,是因為有人設定了log_min_duration_statement。操作者決定粒度。
代理系統顛倒了這種關係。代理在執行時期決定要執行什麼。一個收到「修復登入端點」指令的程式碼代理,可能會讀取47個檔案、寫入12個、衍生三個子代理、擷取兩個網頁,並執行15條bash指令。每個動作都消耗資源。這些消耗在傳統監控中完全不會顯示。
Cowork事件在基礎設施層面暴露了這種反轉。Claude Desktop分配了10GB的磁碟空間,在閒置時消耗24-55%的CPU,並在8GB機器上將交換使用量從20K推升至24K+次交換。1使用者是透過macOS儲存空間警告發現資源消耗的,而非透過Anthropic的遙測數據。該應用程式未提供任何儀表板、計量器或虛擬機分配的選擇性揭露。
這種模式並非假設。2026年3月,一位開發者回報Claude Code執行了一個Terraform指令,摧毀了一個生產資料庫。該代理對生產狀態檔案執行了terraform apply。沒有出現確認提示。沒有掛鉤攔截該指令。開發者是在應用程式離線時才發現遭到破壞的。該事件在Hacker News上獲得142點與158則留言。12幾天後,另一位開發者回報Claude Code刪除了整個生產環境,包括代表2.5年紀錄的資料庫快照。13兩起事件有相同的根本原因:在損害不可逆轉之前,對代理正在做的事情零可見性。
將此模式擴展到代理工作階段。我的掛鉤編排系統在每次工具呼叫中攔截15種事件類型。11在60多次工作階段中,系統記錄了每個動作觸發84個掛鉤,產生了任何預設代理安裝都不會提供的遙測數據。2若沒有該檢測機制,我不會偵測到12次偏移事件、幽靈驗證失敗,或在我的NIST公開意見中記錄的遞迴衍生迴圈。3
DORA 2024 Accelerate State of DevOps Report發現,擁有強大可觀測性實踐的團隊部署更頻繁,從故障中恢復更快。2025年版將框架擴展至AI輔助開發,將可觀測性與「AI輔助編碼或測試如何影響品質、前置時間和整體可靠性」連結起來。4代理可觀測性不是錦上添花。衡量代理行為是治理代理的先決條件。
代理可見性的三個層次
代理可觀測性需要三個獨立的層次。每個層次回答不同的問題。一個層次的失敗不會損害其他層次。
| 層次 | 問題 | 監控項目 | 範例工具 |
|---|---|---|---|
| 資源計量 | 它消耗了什麼? | 每個工作階段的磁碟、記憶體、CPU、網路 | Cowork本應顯示這些 |
| 策略執行 | 它被允許做什麼? | 允許/拒絕規則、工具權限、範圍限制 | mcp-firewall |
| 執行時期稽核 | 它實際做了什麼? | 系統呼叫日誌、檔案存取、網路輸出 | Logira |
這些層次構成一個遞進關係:您無法對未計量的資源執行策略,也無法稽核從未定義的策略之合規性。每個層次都建立在其下方的層次之上。
第1層:資源計量
資源計量回答:代理消耗了多少,在哪裡?
Cowork事件是一個資源計量失敗。虛擬機套件消耗了10GB的磁碟空間。渲染程序在閒置時消耗24%的CPU。工作階段期間交換活動穩定攀升。所有這些指標都存在於macOS活動監視器中。沒有任何一項出現在Claude Desktop的介面中。1
對於代理程式碼工作階段,資源計量追蹤四個面向:
磁碟。 每次檔案寫入、每個快取項目、每個日誌檔案。我的工作階段每次產生200-400KB的狀態檔案(jiro.state.json、jiro.progress.json、掛鉤日誌)。經過60次工作階段,累積達12-24MB的狀態資料,除非明確清理,否則會跨工作階段持續存在。2
記憶體。 每輪上下文視窗消耗。一個200,000個token的上下文視窗,以目前Opus定價計算,每次完整填充約花費3美元。我的成本追蹤器記錄每個工作階段的累計token使用量,並在可設定限額的80%、90%和95%設定預算門檻。5
CPU。 掛鉤執行時間。我的九個掛鉤提示調度器每次提示增加200毫秒。該開銷對使用者而言不可見(人類打字速度才是瓶頸),但在自動化管線中會累積。ralph自主迴圈每個story觸發調度器50-100次,每個story增加10-20秒的掛鉤開銷。2
網路。 網頁擷取、API呼叫、MCP工具調用。每個對外請求都是潛在的資料通道。我的網頁擷取程式庫記錄擷取的URL和回應大小。若沒有網路計量,回傳50MB回應的網頁擷取與回傳5KB的無法區分。6
沒有任何商業代理工具提供按工作階段的資源儀表板。雲端供應商計量運算是為了計費,而非為了操作者可見性。代理消耗的資源與操作者能看到的之間的落差,就是資源計量赤字。
這種缺失在數字累積之前感覺不到。一個寫入400KB狀態檔案的工作階段微不足道。六十個各寫入400KB的工作階段,在沒有清理的情況下,留下24MB的孤立狀態。一次回傳847KB的網頁擷取可以忽略。一個每次執行擷取80個URL的掃描管線產生67MB的快取內容,而代理的工具抽象將其對操作者隱藏。資源計量使累積的問題在演變成驅使某人提交GitHub議題#22543的危機之前變得可見。1
第2層:策略執行
策略執行回答:什麼規則約束代理,這些規則是否被一致地應用?
mcp-firewall為CLI代理解決了策略層的問題。7該工具位於代理與所有工具使用請求之間,在執行前根據基於正則表達式的策略評估每個請求。策略使用按資料夾、Git儲存庫或使用者範圍設定的JSONNet設定檔案。防火牆透過PreToolUse掛鉤整合支援Claude Code與GitHub Copilot CLI。
此架構反映了一個關鍵洞見:每個代理都實作了自己的半成品允許/拒絕邏輯。Claude Code使用glob模式。Codex CLI使用僅限前綴的比對。每種方法涵蓋策略空間的一個子集。mcp-firewall將規則集中到一個跨代理運作的引擎中。
考慮沒有集中式執行時的策略缺口。我的掛鉤系統包含12個PreToolUse:Bash處理器,檢查認證模式、危險的Git操作、敏感路徑存取和部署指令。2每個處理器是獨立的shell指令碼,有自己的正則表達式模式。當我需要新增拒絕規則時,我寫一個新指令碼。當我需要稽核哪些規則存在時,我跨12個檔案進行grep。mcp-firewall將所有這些整合到一個具有明確允許陣列的單一設定檔中。
OWASP Top 10 for Agentic Applications(2025)將代理目標劫持(ASI01)和過度代理權限(LLM06:2025)列為首要風險。8這兩種風險都需要在工具呼叫邊界進行策略執行。劫持目標的代理仍然會發出工具呼叫。擁有過度代理權限的代理仍然會請求權限。策略執行在代理意圖與系統工具交會的邊界攔截兩者。
策略執行不同於存取控制。傳統存取控制問的是「這個使用者有權限嗎?」代理的策略執行問的是「這個動作,在這個上下文中,為了這個任務,是否在核准的範圍內?」上下文敏感性是挑戰所在。對功能分支的git push和對main的git push --force使用的是同一個工具(Bash),但影響範圍截然不同。mcp-firewall的正則表達式模式可以區分兩者。預設的代理權限則無法。
應用層級的策略執行也面臨繞過風險。2026年3月的一項分析記錄了三種針對Claude Code內建拒絕清單的逐步升級沙箱逃脫技術:基於路徑的規避(/proc/self/root/usr/bin/npx解析為與被封鎖的/usr/bin/npx相同的二進位檔案)、自主導向的沙箱停用(代理在沙箱阻擋任務完成時獨立推理出移除沙箱),以及動態連結器調用(ld-linux-x86-64.so.2透過記憶體映射載入二進位檔案,完全繞過核心執行掛鉤)。14第三種技術是一類漏洞利用:任何避開execve的程式碼載入都會繞過程序級執行機制。策略執行的啟示是,字串比對拒絕清單是必要的第一層,但不是充分的。以內容可定址的方式執行(透過SHA-256雜湊而非檔案名稱識別二進位檔案)可以彌合路徑規避的缺口,但動態載入器繞過需要位於策略層之下的核心級控制。
第3層:執行時期稽核
執行時期稽核回答:代理在系統呼叫層級實際做了什麼?
Logira使用eBPF探針在核心層級攔截系統呼叫來解決稽核層的問題。9該工具記錄三種事件類別:程序執行(exec事件)、檔案操作(包括認證檔案存取),以及網路連線(含目的地追蹤)。每次稽核執行產生三個檔案:events.jsonl用於時間線回顧、index.sqlite用於可查詢的篩選,以及meta.json用於執行元資料。
設計理念是「僅觀察」:Logira記錄和偵測,但不執行或阻擋。9與執行層的分離是刻意的。策略執行防止已知的不良動作。執行時期稽核在事後發現未知的不良動作。這兩個層次服務於不同的時間功能:預防(之前)和鑑識(之後)。
Logira的eBPF探針在應用層之下運作。一個建構新穎指令來竊取資料的代理仍然會發出系統呼叫。代理無法對核心級追蹤隱藏檔案讀取、網路連線或程序衍生。這種方法捕捉了應用層級掛鉤遺漏的內容:繞過工具呼叫抽象的副作用。
內建偵測規則專門針對AI代理風險:認證檔案存取、持久化機制變更(/etc、systemd、cron)、可疑指令鏈(curl-pipe-sh模式)、破壞性操作(rm -rf),以及異常網路輸出。9這些規則是針對代理威脅模型的預設意見,而非通用系統稽核。
平台限制很重要。Logira需要Linux 5.8+搭配cgroup v2。macOS代理(Claude Desktop、Darwin上的Claude Code)無法使用基於eBPF的稽核。我的作業系統沙箱使用macOS Seatbelt設定檔作為最接近的替代方案:核心強制執行的拒絕規則,阻擋對敏感路徑的寫入。3Seatbelt是執行機制,不是稽核。macOS缺乏與Logira的僅觀察稽核追蹤等效的生產就緒替代方案。
Agent Safehouse是一個macOS原生沙箱工具,於2026年3月在Hacker News上獲得802點與181則留言,從執行面解決了平台缺口。15該工具提供專為macOS上的本機AI代理設計的沙箱設定檔。社群的回應(802點對一個沙箱工具而言非常出色)反映了急迫性:在macOS上執行代理的從業者在「無沙箱」與「自己寫Seatbelt設定檔」之間選擇有限。Agent Safehouse填補了執行面的缺口。macOS上的稽核缺口仍然存在。
執行與稽核之間的區別對應到事件回應中的時間分割。執行防止事件發生。稽核使事件發生後能夠重建過程。兩者都是必要的。阻擋所有認證存取的執行層防止了資料竊取,但也阻止了合法的SSH操作。記錄所有認證存取而不阻擋的稽核層使操作者能夠審查存取模式,並根據證據調整執行規則。稽核資料與策略調整之間的回饋迴圈,是可見性堆疊隨時間改進的方式:稽核揭示模式,模式為策略提供依據,策略縮小稽核需要涵蓋的範圍。
Logira的cgroup v2隔離新增了一項應用層級稽核無法複製的功能:按執行範圍歸因。系統將每個事件歸因於特定的稽核執行,而非全域系統。當兩個代理工作階段同時在同一台機器上執行時,cgroup隔離確保工作階段A的檔案存取不會出現在工作階段B的稽核追蹤中。應用層級掛鉤無法提供相同的保證,因為掛鉤在代理程序內觸發,而該程序沒有核心級邊界來分隔並行的工作階段。9
我實際執行的內容
我的編排系統透過掛鉤涵蓋了全部三個層次,而非透過專用監控工具。
資源計量。 成本閘門掛鉤根據可設定的預算門檻追蹤每個工作階段的token使用量。5系統效能監控器以可設定的間隔檢查CPU、記憶體、磁碟和交換,當資源壓力超過門檻時注入警告。10工作階段偏移偵測器每25次工具呼叫觸發一次,計算原始提示嵌入與最近動作滑動視窗之間的餘弦相似度。2
策略執行。 八個PreToolUse調度掛鉤按工具類型路由到處理器掛鉤。僅PreToolUse:Bash就執行12個處理器,涵蓋認證模式、破壞性Git操作、敏感路徑存取和部署指令。遞迴防護機制強制最大深度為二,每個父代理最多五個子代理。2
執行時期稽核。 PostToolUse掛鉤記錄每次工具呼叫結果。安全掃描掛鉤在執行後檢查bash輸出中的認證洩漏。工作階段狀態檔案(jiro.state.json)記錄每個story完成、審查者裁決和證據閘門結果。2系統不使用eBPF(macOS限制),但透過掛鉤管線捕捉工具級遙測數據。
| 層次 | 我的實作 | 限制 |
|---|---|---|
| 資源計量 | 成本閘門、系統監控、偏移偵測器 | 無按工具的磁碟/網路細分 |
| 策略執行 | 跨15種事件類型的84個掛鉤 | 按掛鉤的正則表達式,非集中式設定 |
| 執行時期稽核 | PostToolUse記錄器、工作階段狀態檔案 | 僅應用層級,無系統呼叫追蹤 |
系統之所以運作,是因為每個動作都經過掛鉤管線。限制在於深度:掛鉤級監控捕捉的是代理要求做什麼,而非作業系統實際執行了什麼。一個建構帶有嵌入子shell的bash指令的代理,掛鉤看到的是單一字串。核心級稽核則會看到每個子程序。
生產事件的具體結果,三層堆疊捕捉到了預設監控會遺漏的失敗:
| 事件 | 捕捉到的層次 | 若無監控 |
|---|---|---|
| 代理花了45分鐘重組專案目錄而非修復登入端點 | 資源:偏移偵測器在餘弦相似度0.23時觸發 | 任務回報「完成」但交付物錯誤 |
代理嘗試寫入~/.ssh/authorized_keys |
策略:PreToolUse:Bash處理器封鎖敏感路徑 | SSH金鑰被修改,產生持久性後門 |
| 代理回報「所有測試通過」但未執行pytest | 稽核:完成報告缺少貼上的測試輸出 | 有缺陷的程式碼以幽靈驗證方式合併 |
| 子代理靜默失敗,父代理回報成功 | 資源:空輸出子代理的預算超支 | 損壞的資料庫遷移在3小時後才被發現 |
複合盲點
代理衍生代理會倍增不透明度。每次委派跳轉都會引入資訊損失。
當我的編排系統執行ralph自主迴圈時,父程序為每個PRD story衍生全新的Claude Code實例。每個子代理獲得一個聚焦的任務和一個全新的上下文視窗。父程序追蹤完成狀態。父程序看不到子代理的個別工具呼叫、檔案讀取或資源消耗。2
在深度一(父程序衍生子程序),父程序看到子程序的最終輸出。在深度二(子程序衍生孫程序),父程序看到的是子程序關於孫程序輸出的報告。每次跳轉都壓縮資訊。我在NIST意見中的委派鏈分析測量了三種複合風險:語義壓縮(上下文塌縮為一個提示字串)、權限放大(子代理繼承權限但不理解敏感性),以及責任擴散(根代理對其從未檢視的結果承擔責任)。3
可觀測性以相同的速率退化。根代理上的三層可見性堆疊對孫代理提供零可見性,除非每個子代理獨立執行自己的監控。我的遞迴防護機制強制深度限制,但防護機制是策略控制,不是可觀測性控制。知道委派在深度二停止,並不能告訴您深度二發生了什麼。
來自我生產系統的一個具體範例:ralph迴圈衍生了一個子代理來實作資料庫遷移story。子代理決定遷移需要一個「驗證步驟」,並衍生了自己的子代理來執行整合測試。孫代理靜默失敗(測試資料庫未設定)。子代理收到空回應,將沉默解讀為成功,並回報story完成。父程序記錄了「story 4:完成。」我在三小時後應用程式因缺少欄位而崩潰時才發現損壞的遷移。根代理的遙測數據顯示一次乾淨的執行。故障存在於兩跳之深,對我在根程序上部署的每個監控層都不可見。2
OWASP Agentic Applications框架處理了串連失敗和失控代理,但未針對多代理委派鏈規定可觀測性要求。8缺口是結構性的:鏈中的每個代理都需要自己的資源計量、策略執行和執行時期稽核,各自獨立設定和獨立報告。開銷是乘法性的。鏈中三個代理上的三層監控是九個監控實例,各自產生自己的遙測數據,各自需要自己的設定。沒有任何現有工具管理這種協調。
您今天就能實作的內容
涵蓋可見性堆疊的三個最低限度監控掛鉤:
1. 資源:Token預算追蹤器。 記錄每個工作階段的累計輸入和輸出token。設定硬性限額。在80%時發出警報。實作需要讀取代理的使用統計(Claude Code透過/cost公開工作階段成本)並與門檻比較。我的成本閘門掛鉤在47行bash中完成此功能。5
2. 策略:PreToolUse拒絕清單。 建立一個在每次Bash工具呼叫前觸發的掛鉤。將指令與模式清單比對:rm -rf /、git push --force、包含.ssh或.env的路徑、curl | sh。阻擋匹配項。實作需要一個shell指令碼,讀取stdin(工具呼叫JSON),擷取指令欄位,並對模式檔案進行grep。我的認證檢查掛鉤在31行中完成此功能。2
3. 稽核:PostToolUse工作階段日誌。 將每次工具呼叫和結果附加到工作階段專屬的JSONL檔案。包含時間戳記、工具名稱、參數和結束代碼。該日誌使工作階段後重建成為可能:代理做了什麼、按什麼順序,以及是否有任何靜默失敗?我的工作階段記錄器在22行bash中完成此功能。2
拒絕清單掛鉤在settings.json中的實作範例:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/check-sensitive-paths.sh"
}
]
}
]
}
}
掛鉤指令碼從stdin讀取工具呼叫、擷取指令字串,並根據模式進行檢查。被阻擋的指令回傳一個JSON物件{"decision": "block", "reason": "Sensitive path access denied"}。被允許的指令回傳{"decision": "approve"}。Claude Code無需進一步提示即尊重兩種回應。整個掛鉤對已核准的指令增加零延遲(正則表達式檢查在5毫秒內完成),並對被阻擋的指令提供即時回饋。
這三個掛鉤總計不到100行。它們不能取代專用監控工具。它們將零可見性替換為最低限度可見性。最低限度可見性是隨後每個治理決策的先決條件。您無法在不計量的情況下設定資源預算。您無法在沒有拒絕清單的情況下執行範圍策略。您無法在沒有稽核日誌的情況下調查事件。從日誌開始。其他兩者隨之而來。
重點結論
對於平台工程師: 代理消耗的資源是現有監控未追蹤的。每個代理工作階段的磁碟、記憶體、CPU和網路使用量,應與容器指標出現在同一個儀表板上。Cowork事件證明了這一需求:10GB的分配,零操作者可見性。
對於資安團隊: 工具呼叫邊界的策略執行是最低可行的代理安全態勢。mcp-firewall的集中式方法將每個代理的允許/拒絕邏輯整合到一個可稽核的設定中。評估您的代理內建權限是否涵蓋您的威脅模型所需的策略空間。
對於工程主管: 針對您的代理工具問三個問題:您能看到按工作階段的資源消耗嗎?您能定義和稽核工具呼叫策略嗎?您能在事後重建代理做了什麼嗎?如果任何答案是「否」,您就有一個可見性缺口,且這個缺口會隨著工作流程中每個額外代理的加入而擴大。
常見問題
什麼是代理可觀測性? 代理可觀測性是監控和理解AI代理在執行期間行為的能力:它消耗什麼資源、採取什麼動作,以及這些動作是否符合已定義的策略。
為什麼Anthropic的Cowork會建立10GB的虛擬機? Claude Desktop中的Cowork功能為協作開發工作階段配置一個虛擬機。Claude Desktop在每台macOS安裝上自動建立虛擬機套件,即使使用者從未啟用該功能,並保留至手動刪除。1
什麼是mcp-firewall? mcp-firewall是一個開源策略執行工具,攔截來自CLI代理(Claude Code、GitHub Copilot CLI)的工具使用請求,並在執行前根據基於正則表達式的允許/拒絕規則進行評估。7
什麼是eBPF執行時期稽核? eBPF(extended Berkeley Packet Filter)無需修改被稽核的程序即可實現核心級系統呼叫追蹤。Logira等工具使用eBPF探針在AI代理執行期間記錄程序執行、檔案操作和網路連線。9
代理如何在操作者不知情的情況下衍生子代理? 委派任務的代理會衍生具有全新上下文視窗的子程序。父代理看到子代理的最終輸出,但看不到其個別工具呼叫、檔案讀取或資源消耗。在每次委派跳轉中,資訊被壓縮:孫代理的完整工作階段變成父程序日誌中的一行狀態。可觀測性以與委派深度增加相同的速率退化。2
代理監控與傳統APM有何不同? 傳統的應用程式效能監控(APM)追蹤確定性軟體的請求延遲、錯誤率和吞吐量。代理監控追蹤非確定性行為:代理在執行時期決定做什麼、這些決定是否在策略範圍內,以及每個決定消耗了什麼資源。APM假設應用程式遵循已知的程式碼路徑。代理監控假設代理選擇自己的路徑。2
來源
-
mystcb et al., “Cowork feature creates 10GB VM bundle that severely degrades performance,” GitHub Issue #22543, anthropics/claude-code, February 2026. 345 HN points, 175 comments. ↩↩↩↩↩
-
Author’s production telemetry. 84 hooks across 15 event types, ~15,000 lines of orchestration code, 60+ daily Claude Code sessions, February-March 2026. ↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Crosley, Blake, “What I Told NIST About AI Agent Security,” blakecrosley.com, February 2026. Public comment on NIST-2025-0035. ↩↩↩
-
DORA Accelerate State of DevOps Report 2024, Google Cloud, 2024. 39,000+ professionals surveyed. ↩
-
Author’s cost-gate hook implementation. SQLite-backed budget tracker with configurable thresholds (80%/90%/95%), 36 tests, February 2026. ↩↩↩
-
Author’s web content extraction library. trafilatura 2.0.0, URL logging and response size tracking, 25 tests, February 2026. ↩
-
dzervas, “mcp-firewall,” GitHub, 2026. Go binary with JSONNet policy configuration, PreToolUse hook integration. ↩↩
-
OWASP Top 10 for Agentic Applications, OWASP GenAI Security Project, 2025. 100+ security researchers contributed. ↩↩
-
melonattacker, “Logira: eBPF runtime auditing for AI agent runs,” GitHub, 2026. Linux 5.8+, cgroup v2, observe-only design. ↩↩↩↩↩
-
Author’s system performance monitoring module. CPU, memory, disk, and swap monitoring with configurable thresholds, 46 tests, February 2026. ↩
-
Crosley, Blake, “Anatomy of a Claw: 84 Hooks as an Orchestration Layer,” blakecrosley.com, February 2026. ↩
-
jv22222, “Claude Code wiped our production database with a Terraform command,” Hacker News, March 2026. 142 points, 158 comments. ↩
-
vanburen, “Claude Code deletes developers’ production setup, including database,” Tom’s Hardware, March 2026. 42 HN points, 27 comments. ↩
-
tomvault, “How Claude Code escapes its own denylist and sandbox,” ona.com, March 2026. Three escalating escape techniques: path evasion, self-directed disabling, dynamic linker bypass. 34 HN points. ↩
-
atombender, “Agent Safehouse: macOS-native sandboxing for local agents,” agent-safehouse.dev, March 2026. 802 HN points, 181 comments. ↩