跳转至

Safety Guard — 防止破坏性操作

使用时机

  • 在生产系统上工作时
  • Agent 自主运行时(全自动模式)
  • 需要限制对特定目录的编辑时
  • 执行敏感操作时(迁移、部署、数据变更)

工作原理

有 3 种保护模式:

模式 1: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 を含む全コマンド

检测到后:显示命令内容,请求确认,并提示更安全的替代方案。

模式 2:Freeze 模式

锁定对特定目录树的文件编辑:

/safety-guard freeze src/components/

对 src/components/ 外部的 Write/Edit 操作将附带说明并被阻止。当希望让 Agent 专注于特定区域,避免触碰无关代码时,此模式非常有用。

模式 3:Guard 模式(Careful + Freeze 的组合)

两种保护同时启用。这是为自主 Agent 提供的最高安全模式。

/safety-guard guard --dir src/api/ --allow-read-all

Agent 可以读取所有内容,但只能写入 src/api/。破坏性命令在任何位置都会被阻止。

解除锁定

/safety-guard off

实现

使用 PreToolUse 钩子检测 Bash、Write、Edit、MultiEdit 工具调用。在执行前,根据当前生效的规则检查命令/路径。

集成

  • 在 codex -a never 会话中默认启用
  • 与 ECC 2.0 的可观测性风险评分结合使用
  • 将所有被阻止的操作记录到 ~/.claude/safety-guard.log

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC