想象一下,你让 Agent Safehouse 里的 AI 帮你重构一个项目,结果它一不小心把你刚写好的另一个项目的代码给删了。或者更惨——你让它帮忙看个日志,它把你的 .env 文件里藏着的 API 密钥看得干干净净,然后转头就发给了另一个 AI。

这种情况,不是科幻,而是每天都在发生。AI 概率的本质决定了,哪怕只有 1% 的概率翻车,在长期使用中也是必然会发生的事件。

最近我发现了一个叫 Agent Safehouse 的工具,专门给 macOS 上的 AI 代理上锁。用了两周,感觉确实有点意思,今天来聊聊。

安全问题:AI 权限失控怎么办

相信很多人都有过这种经历:你跟 AI 说"只改这个文件里的代码,不要动其他东西",结果它给你来了个全套——改了 20 个文件,还删了 3 个它觉得"没用"的测试文件。

问题出在哪?AI 有权限啊。它运行在你的用户账号下,能访问你的整个 home 目录。你说"只改这个项目",但它看到的可是你的整个电脑。

Agent Safehouse 做的事情很简单:反过来——默认 deny,只有你明确授权的目录才能访问。

~/my-project/          READ/WRITE  # 当前项目,可劲造
~/shared-lib/          READ-ONLY   # 共享库,只能看
~/.ssh/                DENIED      # SSH 密钥,想都别想
~/.aws/                DENIED      # AWS 凭证,门都没有
~/other-repos/         DENIED      # 其他项目,看不见

这个思路挺有意思。它不是限制 AI 能做什么,而是从系统层面直接把门给锁上。

Agent Safehouse 实测效果

我试着用 Safehouse 运行 Claude Code,让它帮我读一下我另一个项目的 .env 文件。

$ safehouse cat ~/other-project/.env
# cat: /Users/rex/other-project/.env: Operation not permitted

好使。内核直接把这个请求给拦了,AI 连看都看不到。

再试试访问另一个 Git 仓库:

$ safehouse ls ~/other-project
# ls: /Users/rex/other-project: Operation not permitted

同样被挡得死死的。但当前工作目录完全正常:

$ safehouse ls .
# README.md  src/  package.json  ...

这就很舒服了。你让它在项目里折腾,它能折腾的地方就那么点,想祸害其他地方?门都没有。

Agent Safehouse 安装与配置

安装简单到令人发指——就一个 Shell 脚本:

# 1. 下载 safehouse
mkdir -p ~/.local/bin
curl -fsSL https://raw.githubusercontent.com/eugene1g/agent-safehouse/main/dist/safehouse.sh \
  -o ~/.local/bin/safehouse
chmod +x ~/.local/bin/safehouse

# 2. 在项目目录里运行 AI
cd ~/projects/my-app
safehouse claude --dangerously-skip-permissions

官方还提供了一个更懒的用法——在你的 .zshrc 里加几个函数:

# 从此以后,输入 claude 就自动进沙箱
claude()   { safehouse claude --dangerously-skip-permissions "$@"; }
codex()    { safehouse codex --dangerously-bypass-approvals-and-sandbox "$@"; }

# 想不用沙箱?加 command 前缀
command claude  # 裸奔版本

这样你平时用 AI 都是安全的,只有特意加 command 才会绕过去。相当于给日常操作加了默认安全锁。

支持哪些 AI 代理?

官方说测试了主流的代理工具,基本都能正常工作:

  • Claude Code / Claude CLI
  • Codex
  • OpenCode
  • Gemini CLI
  • Aider
  • Goose
  • Cursor Agent
  • Cline
  • 等等

我自己主要用 Claude Code 和 Codex,实测下来没遇到什么问题。官方文档里有一些针对各个代理的测试报告,有兴趣的可以去看看。

Agent Safehouse 适合什么场景

我觉得这几类人特别适合:

  1. 同时维护多个项目的人 —— 不想 AI 帮你"跨项目重构"
  2. 在项目里放了很多凭证的人 —— .env.aws/.ssh/ 这些真的不想被 AI 看到
  3. 经常让 AI 帮忙干危险操作的人 —— 删除文件、执行命令之类的
  4. 有洁癖的人 —— 就算是 1% 的概率,也不希望它发生

如果你只是偶尔让 AI 帮你写个小脚本,可能感觉不到它的价值。但如果你天天跟 AI 协作,这东西还挺有安全感的。

一点思考

其实安全问题说了这么多年,大家都知道要注意。但问题是——每次都要手动配置权限、设置规则,麻烦啊。

Safehouse 的思路好就好在:它把安全做成了默认选项。你不需要记得去配置什么,你只需要记得——想不安全的时候,加上 command 前缀就行。

这才是好的安全设计:让安全成为默认,让不安全成为例外。

当然,话说回来,这工具也不是万能的。它目前只支持 macOS,而且用的是 macOS 原生的 sandbox-exec 机制。如果你用的是 Linux 或者 Windows,暂时还用不了。

不过对于 macOS 用户来说,确实是个值得一试的小工具。免费开源,下载就能用。

常见问题

Q: Agent Safehouse 支持 Linux 或 Windows 吗? A: 目前只支持 macOS,因为它用的是 macOS 原生的 sandbox-exec 机制。Linux 和 Windows 用户可以关注官方更新。

Q: 使用 Safehouse 会影响 AI 的能力吗? A: 基本不影响。AI 能在你授权的目录里正常工作,只是无法访问其他目录。体验上跟在目录里运行没差别。

Q: 免费吗? A: 免费开源,Apache 2.0 协议。可以随便用,也可以自己改。


官网:https://agent-safehouse.dev/ GitHub:https://github.com/eugene1g/agent-safehouse