给本地AI代理上把锁:Agent Safehouse 体验报告

想象一下,你让 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 适合什么场景
我觉得这几类人特别适合:
- 同时维护多个项目的人 —— 不想 AI 帮你"跨项目重构"
- 在项目里放了很多凭证的人 ——
.env、.aws/、.ssh/这些真的不想被 AI 看到 - 经常让 AI 帮忙干危险操作的人 —— 删除文件、执行命令之类的
- 有洁癖的人 —— 就算是 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