運作機制:本地攔截與多層檢查
SafeAgents作為一個小型本地代理,介於編碼代理(harness)與其後端的模型伺服器之間。使用者只需將代理的base URL指向SafeAgents而非直接連向模型伺服器。所有檢查均在本地機器執行,除非使用者選擇將可選的判斷模型指向遠端伺服器,否則提示詞、程式碼與工具呼叫不會被傳送到其他地方。
每個工具呼叫會經過最多三層檢查。前兩層為僅需請求資料的本地檢查:確認該工具是否由代理宣告過,以及呼叫目標主機是否出現在對話歷史中(模型自行生成的URL會被標記)。第三層使用atif-scan掃描器,執行約110種確定性檢測器,無需調用其他模型或網路請求。
atif-scan能偵測沙箱側通道、代理與網路繞過、命名空間逃逸及獎勵作弊(reward hacking)等情況。例如curl存取雲端元資料端點、使用--noproxy參數上傳~/.netrc檔案,或讀取/proc/1/environ等行為都會被標記。
可選判斷模型與決策邏輯
對於較輕微的發現,SafeAgents提供可選的判斷模型步驟。該模型可以是任何OpenAI相容伺服器,包括透過llama.cpp在本機運行的小型模型,確保此步驟也能保持本地化。判斷模型僅接收使用者請求、工具呼叫及檢測結果,不接觸代理的推理過程或工具輸出。
判斷模型以JSON格式回應allow或block。其權限受限於只能增加阻擋項,不能移除前兩層檢查已標記的項目。這確保了基礎安全規則不會被後續步驟覆蓋。
偵測強化學習與評估中的作弊行為
相同的檢測器可用於捕捉策略模型在強化學習或評估過程中,為了獲取獎勵而非解決任務所進行的工具呼叫。常見作弊行為包括寫入自己的獎勵檔案、修改驗證器的測試程式碼,或修補pytest以讓所有測試通過。
由於SafeAgents僅作為OpenAI相容伺服器前的代理,它可以置於用於rollouts或評估執行的推理伺服器之前。在--log-only模式下,它會記錄這些嘗試而不改變執行軌跡,從而量化模型試圖作弊的頻率。在阻擋模式下,被標記的呼叫會被替換為通知且不會執行。
技術規格與相容性測試
SafeAgents支援OpenAI Chat Completions與Anthropic Messages API,處理串流或非串流請求。文字內容即時轉發,但工具呼叫會暫存直到參數完整。在M系列Mac上,本地檢查每個呼叫約耗時10至20毫秒。判斷模型僅針對已產生發現的呼叫進行調用。
開發者建議從--log-only模式開始使用,該模式檢查所有呼叫但不改變任何行為。使用者可透過--allow-host參數添加信任的主機。專案倉庫提供了12種代理框架的設置指南,其中六種(pi, Claude Code, OpenCode, Qwen Code, OpenHands, DeepSeek Harness)已在CI中進行端到端測試,驗證被標記呼叫不執行、正常呼叫通過的行為。
授權與未來發展
SafeAgents採用Apache 2.0授權,程式碼可在GitHub上取得。專案團隊計畫下一步開發一個小型微調決策模型以處理惡意工具呼叫,並建立公開基準測試。目前歡迎使用者回報有趣的捕捉案例或誤報(false positives)。




