想象一下,你让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,实测下来没遇到什么问题。官方文档里有一些针对各个AI代理的测试报告,有兴趣的可以去看看。
Agent Safehouse适合什么场景
我觉得这几类人特别适合:
- 同时维护多个项目的人 —— 不想AI帮你“跨项目重构”
- 在项目里放了很多凭证的人 ——
.env、.aws/、.ssh/ 这些真的不想被AI看到
- 经常让AI帮忙干危险操作的人 —— 删除文件、执行命令之类的
- 有洁癖的人 —— 就算是1%的概率,也不希望它发生
如果你只是偶尔让AI帮你写个小脚本,可能感觉不到它的价值。但如果你天天跟AI协作,这东西还挺有安全感的。
一点思考
其实安全问题说了这么多年,大家都知道要注意。但问题是——每次都要手动配置权限、设置规则,麻烦啊。
Safehouse的思路好就好在:它把安全做成了默认选项。你不需要记得去配置什么,你只需要记得——想不安全的时候,加上 command 前缀就行。
这才是好的安全设计:让安全成为默认,让不安全成为例外。
当然,话说回来,这工具也不是万能的。它目前只支持macOS,而且用的是macOS原生的 sandbox-exec 机制。如果你用的是Linux或者Windows,暂时还用不了。
不过对于macOS用户来说,确实是个值得一试的小工具。免费开源,下载就能用。对于如何在日常开发中安全地使用强大的AI代理,这是一个很不错的实践思路。
常见问题
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
这类专注于解决开发者实际痛点的小工具,正是技术社区活力的体现。如果你在云栈社区发现了其他有趣的开发利器或安全实践,也欢迎分享交流。