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 即可在代理中無縫接入強制網關。