Safety Guard 是一款防止破坏性操作的防护工具,适用于在生产系统上工作、智能体自主运行(全自动模式)、需要将编辑限制在特定目录、以及执行敏感操作(迁移、部署、数据变更)等场景。
主要能力
Safety Guard 提供三种保护模式:
模式一:Careful 模式。在执行前拦截破坏性命令并发出警告。监控的命令模式包括:rm -rf(尤其是针对 /、~ 或项目根目录)、git push --force、git reset --hard、git checkout .(丢弃所有更改)、DROP TABLE / DROP DATABASE、docker system prune、kubectl delete、chmod 777、sudo rm、npm publish(意外发布),以及任何带有 --no-verify 的命令。检测到这些命令时,它会显示该命令的作用、请求确认,并建议更安全的替代方案。
模式二:Freeze 模式。将文件编辑锁定到特定的目录树。使用命令 /safety-guard freeze src/components/ 后,任何对 src/components/ 之外的 Write/Edit 操作都会被阻止并给出说明。当你希望智能体专注于某一区域而不触碰无关代码时,此模式非常有用。
模式三:Guard 模式(Careful + Freeze 组合)。同时启用两种保护。为自主智能体提供最高安全性。使用命令 /safety-guard guard --dir src/api/ --allow-read-all 后,智能体可以读取任何内容,但只能写入 src/api/。破坏性命令在所有位置都会被阻止。
解锁
使用 /safety-guard off 可关闭防护。
实现方式
Safety Guard 使用 PreToolUse 钩子拦截 Bash、Write、Edit 和 MultiEdit 工具调用。在允许执行之前,它会根据当前激活的规则检查命令或路径。
集成
可为 codex -a never 会话默认启用;可与 ECC 2.0 中的可观测性风险评分配合使用;所有被阻止的操作都会记录到 ~/.claude/safety-guard.log。