Bogumił Jankiewicz

AI 编码代理现在可以运行真实的 shell 命令。大多数“防护栏”都是在损害发生后才记录。gate.cat 在执行前 veto 命令本身——在 shell 看到它之前。

它能做什么

它会阻止不可逆的 shell 命令(rm -rfDROP TABLEterraform destroy、通过 scp/curl 泄露机密),它们执行前。检查是确定性的字符串+路径分析加上独立的 exec 分析器——veto 路径中没有模型调用,因此提示注入无法说服 gate 允许某些操作。默认拒绝:任何无法解析的内容都会被阻止,而非静默允许。

三种使用方式

  • Claude Code hook(最强——执行在 harness 中运行,超出模型控制流): pip install gate.cat,然后将 gatecat-hook 添加到 .claude/settings.json,matcher 为 Bash|Write|Edit
  • 受控 shell 适用于任何 CLI 代理(Codex、aider —— 任何遵循 $SHELL 的):使用 gatecat-shell
  • 本地代理 适用于任何使用 OpenAI API 的(Ollama、vLLM、LM Studio、OpenRouter):只需更改一个 base_url

实测而非宣称

下面的每个数字在仓库的 FACTS.md 中都有对应行,绑定到可复现的产物:

  • 1,085,159 条真实代理命令(5 个公开数据集)通过完整 6 阶段 gate 重放:经裁决后0 真实漏检
  • 可复现的绕过测试套件捕获了其声称的 178/178 危险模式——并打印出已知差距(运行时汇编)以及 129 例中 1 次良性误阻。我们公布漏检而非隐藏。
  • 71 个默认策略墙(73 个预设含可选),真实命令上的干预率约为 0.6%

诚实限制

该 gate 仅对其阻止的内容有确定性。未匹配的操作是未检查而非安全。它是已知危险模式前的墙,而非安全证明——请与你的沙箱一起使用,而非替代。

永久免费,Apache-2.0,核心零依赖。

我真诚希望得到的反馈是:公布我们自己的绕过地图和有文档的误阻,是否比单纯的干净数字更能建立信任?这是最难的设计抉择。