过去,我读到过AI编程工具在执行任务时误删用户整个硬盘的案例。Antigravity这类智能体就曾出现过这样的事故。虽然发生频率不高,但数据一旦丢失就无法挽回。这大概是我们使用自主系统时不得不承担的风险之一。
我知道有防护措施。AI智能体会要求你审批命令,理论上这能防止灾难发生。但说实话,人总会有偷懒的时候,随手批准,连智能体要执行什么操作都懒得细看。就算逐条仔细读过,你永远不知道什么地方会出问题。
我对这类事故越来越警惕,于是开始把Claude Code放在沙盒环境里运行。现在,我让它随心所欲地操作,因为我知道它搞不坏沙盒之外的任何东西。这种做法反而提高了我的效率——再也不用逐条审批命令了,即便真出了岔子,损失也极其有限。
Claude Code本身就内置了沙盒,配置只需要一分钟。无需额外架设虚拟机或容器来做隔离,在Claude Code里运行 /sandbox 命令并选择自动允许模式就能启用。开启后,Claude可以不经许可执行大部分Bash命令,而操作系统会限制这些命令的访问范围。
默认情况下,沙盒内的命令只能写入当前项目目录和临时会话目录。恶意指令理论上无法删除电脑上其他位置的文件。网络访问同样受到限制,当命令试图连接新域名时,Claude Code会请求批准。这套沙盒在Mac上调用macOS Seatbelt机制,在Linux和WSL2上使用Bubblewrap,所有限制都落在操作系统层面,而非完全依赖Claude对命令的解读。
你还可以把配置收得更紧:禁用非沙盒回退,把allowUnsandboxedCommands设为false,就能阻止Claude在沙盒外重试被拦截的命令;failIfUnavailable设为true,则会在沙盒无法启动时直接叫停Claude Code。这套配置提供了一个恰到好处的中间地带——智能体可以在项目内自主作业,却拿不到计算机其余部分的无限访问权。
启用沙盒之后,我可以让Claude运行测试、安装项目依赖、在仓库内部移动文件、重新构建、重试命令,而不用时刻盯着它是否需要我批准。我仍然会谨慎选择它的启动目录,不会给它不必要的系统访问权限。但在这个边界之内,我终于不用再像保姆一样守着它了。沙盒彻底改变了我使用Claude Code的方式——让它自己干活,我只需要泡杯咖啡等结果就行。
热门跟贴