manuelschipper/nah

a guard that blocks catastrophic agent actions

解決的問題

nah 防止 AI 編碼代理執行災難性操作——例如刪除整個檔案系統、竊取密鑰或清除 Git 歷史記錄——透過在執行前攔截工具呼叫來實現。它作為安全防護層,阻止可證明危險的命令,同時將非危險呼叫交由代理的現有執行時權限處理。

工作原理

nah 以靜態 Rust 二進位檔形式撰寫,不使用 LLM 做決策,而是確定性地運作。它將工具呼叫解析為「類型化效果」(例如檔案讀取、網路請求、程序行為),並與防護規則庫進行比對。

如果某條防護規則檢測到明確違規,將返回 阻斷 判定,告知代理該操作被拒絕的原因。若無規則被觸發,則返回 委派 判定,允許代理自身的沙箱或審批流程處理請求。使用者還可使用任意語言建構自訂擴充,新增專案特定的安全規則。

適用對象

使用 AI 編碼代理(如 Claude Code、Cursor 或 Devin)的開發者,希望獲得自動化的保護層,防止意外或惡意的破壞性命令執行。

亮點

  • 確定性安全:使用 Rust 二進位檔而非 LLM 判定,確保微秒級回應時間與一致結果。
  • 豐富的防護規則庫:內建 46 個防護規則,涵蓋執行劫持、密鑰竊取、檔案系統破壞和基礎設施拆除等場景。
  • 廣泛整合:支援多種代理執行時,包括 Claude Code、Cursor 和 Copilot。
  • fontenc-自我保護:阻止代理試圖停用 nah 或修改其設定。
  • 可自訂:支援透過 TUI 或 CLI 切換特定防護規則,並可建立自訂防護程式。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案