Xaidr——面向AI代理的進程內運行時安全與治理
Xaidr 是一個本地、進程內的 AI 代理運行時安全庫,零依賴,在輸入、工具調用、模型輸出和代理間(A2A)協議四個邊界掃描提示注入、越獄、危險工具調用、敏感數據泄露等風險。默認監控模式只標記不阻斷,可切換為強制阻斷模式,並支持 YAML 策略、OpenTelemetry 等遙測輸出。
Xaidr 是一個面向 AI 代理的進程內運行時安全與治理工具。與大多數停留在模型邊界、僅判斷文本內容的防護方案不同,Xaidr 關注的是代理真正“執行”的層面:當提示詞變成 shell 命令、數據庫調用、HTTP 請求、工具調用或對另一個代理的委託時,Xaidr 能在這類動作生效前進行掃描和攔截。
Xaidr 的核心設計強調本地化和進程內運行。它不需要後端服務、賬號、API 密鑰,在核心掃描路徑上不發起網絡請求,默認情況下數據不會離開當前進程。安裝方式很簡單,通過 pip 安裝即可,核心包沒有任何必需的運行時依賴。Python 3.10 以上版本均可使用。
使用 Xaidr 時,開發者創建一個 Sensor 對象,然後在代理循環的不同邊界調用掃描方法。輸入邊界掃描不可信的用户文本,工具邊界在工具名稱和參數執行前進行檢查,輸出邊界在模型回覆返回給用户之前做泄露檢測,A2A 邊界則在代理接收委託消息時進行協議級檢查。每次掃描返回一個 ScanResult,包含 action、score、category、rules、latency_ms 等字段。
action 有四種取值:allowed 表示放行;flagged 表示僅觀察並繼續,不會終止操作;blocked 表示拒絕執行;approval_required 表示需要人工審批,操作被暫停但未最終否定。開發者在判斷是否需要停止時,應同時檢查 blocked 和 approval_required 這兩種會暫停操作的狀態,而不能簡單使用 is_allowed,否則會把 flagged 也當成阻斷信號。
Xaidr 默認採用監控模式:系統會計算併發出判定結果,但不會真正阻斷任何操作。這種設計是有意為之,建議用户先觀察度量,再切換到 enforcement_mode="block" 進行強制攔截。唯一例外是目標地址阻斷,這類規則在包括監控模式在內的所有模式下都會生效。
安全工具必須明確自身邊界。Xaidr 不是 UI,它像 Falco 或 Trivy 一樣把告警輸出到現有監控棧;它不做跨代理或跨會話的關聯分析,因為單個進程內傳感器無法看到分散在兩個代理之間的攻擊;它也不是身份提供者,set_origin() 只記錄應用提供的身份信息,不驗證令牌。
檢測方面,Xaidr 無需配置即可使用,覆蓋多種執行層風險:提示注入與越獄、混淆與規避性攻擊、危險工具調用、敏感數據泄露、工具參數中的密鑰外傳、shell 命令導致的主機數據外流、A2A 協議濫用、偽造信任與委託注入、跨代理權限提升。底層由多個獨立層順序執行,包括歸一化、大型規則集、多信號意圖組合、語義層以及專用數據分析。
此外,Xaidr 還提供 YAML 授權策略引擎、基於 W3C Trace Context 的跨進程委託溯源,以及輸出到 stdout、文件、webhook 或 OpenTelemetry 的結構化遙測。對於 LangChain 用户,官方提供了中間件,可自動接入三個邊界;其他框架可以通過直接調用 API 完成集成。