Claude Code删完整个人文件夹,Cursor清空整个工作区,Antigravity直接格式化D盘——过去三个月,开发者社区里"AI把我电脑毁了"的帖子多了47%。最扎心的一条来自Reddit:15年家庭照片,"不在回收站,是通过终端删的"。
问题很怪:给AI完全权限等于裸奔,但每次都搭Docker又太麻烦。这个中间地带,斯坦福一群人看不下去了。
删库跑路,现在有了AI版
2024年底开始,AI编程工具爆发式增长。Cursor、Claude Code、Windsurf这些工具默认就想要你的终端权限——它们要装依赖、改配置、跑构建脚本。用户图省事点"允许",相当于把家门钥匙交了出去。
后果来得很快。有人让Claude Code帮忙清理项目,回家目录被递归删除;有人用Cursor跑自动化脚本,醒来发现git仓库只剩.git文件夹;最狠的是Antigravity用户,整个D盘被"优化"掉100GB,"decided to delete 100GB from my computer"——AI的决策过程就这么直白地写在日志里。
传统解决方案是容器或虚拟机。但Docker要写Dockerfile,VM要配镜像,bwrap(Linux命名空间沙盒工具)要记40个参数。对于"帮我改个bug"这种5分钟的事,准备环境就要20分钟。大多数人选择YOLO——You Only Live Once,赌一把。
斯坦福Secure Computer Systems研究组和Future of Digital Currency Initiative的人算过一笔账:如果隔离工具比裸跑还麻烦,没人会用。他们要做的是"比YOLO更容易的隔离"。
jai:把"后悔药"做成默认配置
jai的设计像给终端命令加前缀。输入jai claude或jai codex,或者直接jai进沙盒shell。没有镜像要拉,没有配置文件要写,一行命令生效。
核心机制是三层隔离:当前工作目录保持完整读写权限——AI要改代码总得让它改;家目录用写时复制(copy-on-write)覆盖,AI以为自己在改~/.bashrc,实际改的是 overlay 层的副本,原文件纹丝不动;/tmp和/var/tmp私有,其他路径只读。最坏情况下,AI能毁掉的只有当前文件夹和它的幻觉副本。
这跟容器完全不同。Docker追求可复现的镜像环境,适合CI/CD;jai是给"已经装在本机的工具"加保险壳。开发者用惯了本地的Node、Python、各种CLI,jai不碰这些,只是把它们关在笼子里跑。
项目文档里有个细节很诚实:jai不是安全机制。没有mount隔离,没有PID命名空间,没有凭证分离。Linux官方文档把它的底层技术(chroot)明确定性为"不用于沙盒"。jai的定位是" casual sandbox"—— casual,休闲级的,减少爆炸半径,但不承诺挡住专业攻击者。
换句话说,它是防手滑,不防恶意。
为什么偏偏是现在
AI代理(AI Agent)的工作方式变了早期的Copilot是补全代码,现在的Claude Code能自己规划任务、调用工具、执行多步骤操作。权限边界越来越模糊:它要读配置文件找API密钥,要写入项目目录,偶尔还要装系统包。每一次"允许"都是一次信任投票,而用户根本看不清票投给了什么。
jai的应对思路是"默认隔离"。不是问用户"要不要 sandbox",而是直接把 sandbox 做成最省事的选项。项目README里有一句话很产品经理:"If containment isn't easier than YOLO mode, nobody will bother."
这个判断来自15年家庭照片的真实代价。开发者在Hacker News讨论区承认,自己曾觉得"就改一行配置,不会有事"——直到Claude Code把那条配置理解成了"删除所有配置文件"。
jai目前有两个模式。Casual模式保护完整性,不保护机密性——AI还是能看到你的SSH密钥,只是改不了;Strict模式把家目录完全隐藏,AI连看都看不到,但部分工具会因此找不到配置。用户按场景选,没有完美方案,只有更小的后悔概率。
项目开源,GitHub仓库里能看到完整的实现:几百行Rust,依赖Linux的mount namespace和overlayfs。技术并不新鲜,新鲜的是产品决策——把"安全"从一道选择题变成默认勾选。
AI工具厂商也在行动。Cursor最近更新了权限模型,Claude Code加了更多确认提示。但这些是事后补丁,jai想解决的是结构性问题:当AI的能力超过用户的理解速度,界面设计必须假设用户会犯错。
斯坦福团队把jai定义为"填充缝隙"的工具。不是取代容器,而是覆盖那个"懒得配Docker"的日常场景。数据显示,这个场景覆盖了绝大多数AI编程的用例:快速问答、单次本地任务、运行网上抄来的安装脚本。
最后有个细节。jai的GitHub仓库里,安全模型文档的末尾写着:"When you need strong multi-tenant isolation or defense against a determined adversary, use a proper container or virtual machine." 翻译过来:真有人想搞你,这玩意儿挡不住。该上硬隔离的时候,别偷懒。
但大多数人面对的不是 determined adversary,是 determined AI——Determined to help, even if it deletes your photos。这种情况下,一行命令的后悔药,可能比20分钟的Docker配置更诚实。你的15年照片,值这一行前缀吗?
热门跟贴