careful

其他 社区 @garrytan v0.1.0
信任分
87/100
兼容 Agent
1
速查档案 只列事实:领域、Agent、信任分、作者、原文章节。装与不装请看下方作者解读。
领域
通用
兼容 Agent
Claude Code
信任分
87 / 100 · 社区维护
作者 / 版本 / 许可
@garrytan · v0.1.0 · 未声明 license
安装命令数
1 条

需要注意: 未限定 allowed-tools,默认拥有全部工具权限。;检出高风险片段:rm_rf_root

想读作者英文原文? ↓ 滚到正文区切换 · 在 GitHub 查看 ↗

解读由编辑根据原文凝练而成,命令、链接、术语均与作者原文一致;想看完整论述请切到右侧

设计思路

careful 是一个「session 级安全模式开关」——开启后,bash 命令在执行前会被一个 hook 扫一遍,命中危险模式就让 LLM 停下来问你一句再决定。它不是杀菌剂、不是审计工具,是给 agent 加一层最后的防呆刹车,避免 rm -rf /var/data 这种 typo 一气呵成。作者把保护清单和安全例外都列得极清楚,没有暗箱。

受保护的命令模式(直接抄作者原文)

模式 例子 风险
rm -rf / rm -r / rm --recursive rm -rf /var/data 递归删除
DROP TABLE / DROP DATABASE DROP TABLE users; 数据丢失
TRUNCATE TRUNCATE orders; 数据丢失
git push --force / -f git push -f origin main 历史覆写
git reset --hard git reset --hard HEAD~3 未提交工作丢失
git checkout . / git restore . git checkout . 未提交工作丢失
kubectl delete kubectl delete pod 生产环境影响
docker rm -f / docker system prune docker system prune -a 容器 / 镜像丢失

安全例外

这些清理类命令是允许直接通过的:rm -rf node_modules / .next / dist / __pycache__ / .cache / build / .turbo / coverage。日常清缓存不会被打断。

工作机制

hook 从 Bash 工具的 tool input JSON 里读到要执行的命令字符串,按上述模式匹配;命中就返回 permissionDecision: "ask",附带警告语;用户可以选择继续或取消。hook 是 session 范围,新开会话或结束当前 session 会自动失效,不需要主动卸载。

适合谁

  • 让 LLM 自动跑命令时希望多一道防呆的人
  • 给新来的同事 / 实习生跑 agent,担心他们直接同意危险操作
  • 在生产代码库工作,怕一时手滑

何时不该用

  • 一次性的 sandbox / 容器内——本来就隔离了,再加 hook 反而打断节奏
  • 你需要做的就是大量删除——guardrails 会一直打断

配套

unfreeze(解冻分支)、finishing-a-development-branch 配合,发布前的危险操作链路全程被守护。