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 完成整合。