Trajeckt:面向AI智慧體的防火牆,支援審計功能
Trajeckt 是一個執行時執行閘道器,透過預會話密封承諾(sealed commitment)來阻止AI智慧體的多步利用,在約1.6毫秒內確定性攔截資料洩露等跨操作攻擊。它支援密封圖強制執行和啟發式安全底線兩種模式,可部署於MCP(模型上下文協議)環境。
Trajeckt 是一個專為AI智慧體設計的執行時執行閘道器,其核心思路是在智慧體執行任何工具呼叫之前,強制其載入並密封一個經過操作員批准的編譯圖(CompiledGraph,簡稱Gτ)。這個圖以密碼學方式簽名,明確規定了智慧體可以呼叫哪些工具、以何種順序呼叫、以及資料最終可以流向哪些接收端。一旦密封,此圖即成為整個會話的權威依據。每次工具呼叫都會基於該圖的當前可達前沿進行驗證,包括型別V強制(正確順序)、型別II強制(呼叫者/來源約束)以及汙點傳播檢查。任何不在圖中的操作都會被嚴格拒絕,而未安裝圖的會話在首次工具呼叫前就會被阻止。
相比傳統按需授權系統(每次呼叫獨立檢查),Trajeckt 的設計專注於捕獲跨操作的資料流出攻擊。例如,允許讀取資料庫和傳送郵件這兩個單獨操作,但連續執行會觸發資料外洩。Trajeckt 透過跟蹤資料流,拒絕將受汙染資料送達禁止接收端的呼叫,無論中間經過多少“合法”步驟。
Trajeckt 提供兩種執行模式:密封承諾強制執行(主力模式)和啟發式安全底線(當操作員顯式 opt-out 密封承諾時使用)。在啟發式模式下,系統透過粗粒度的行為模式檢測已知惡意序列(如敏感讀取+外發寫入)。此模式僅為備用手段,不適用於檢測盲點內的違規。
快速啟動方面,使用者可透過 Docker 一鍵執行,執行 docker-compose up --build 即可啟動閘道器並連同模擬MCP上游。零配置模式下,閘道器自動從 tools/list 握手密封圖(auto_commitment=true),並要求每次工具呼叫前圖已就緒(require_commitment=true)。從命令列也可透過 trajectoryd up --upstream <mcp伺服器地址> 啟動。
對於需要精細化控制的安全團隊,支援手動授權密封:操作員可使用 traj commit 工具基於MCP工具清單和任務描述生成並密封自定義策略,再透過 Python 或命令列安裝到閘道器。示例策略檔案(configs/trajectory-policy.yaml.example)提供了簽名金鑰、預算等配置。
Trajeckt 還提供完整的健康檢查介面 /healthz,返回狀態、簽名金鑰來源、自動承諾狀態以及密封能力標誌。若 commitment_capable 為 false,表示 traj 二進位制不可用,自動承諾將失敗,但不影響閘道器啟動。
該專案已在 GitHub 開源,採用 Rust 編寫,附帶 Python SDK(trajeckt-langgraph)以便與 LangGraph 等智慧體框架整合。開發者透過 from trajeckt.install import installed_session 和 from trajeckt_langgraph import make_http_wrapper 即可在代理中無縫接入強制閘道器。