沙箱
Sandbox
高级通用沙箱(Sandbox)是给程序或 AI Agent 划出受限运行范围的机制,限制它能访问的文件、网络和其他资源。它解决的是不可信代码或自动化操作可能影响宿主环境的问题,例如先在隔离环境中试跑生成的脚本。
你可能会说:「我想让 AI 先试跑它写的脚本,但别让它碰我的项目文件和线上数据。」
动手看看试跑 AI 生成的脚本
1
AI 刚生成一段处理图片的脚本。先把它放进沙箱试跑,而不是让它直接在宿主环境里执行。
要点沙箱是怎样限制程序活动范围的?
- 1
先划定能接触的资源
你可以把沙箱理解成一块有边界的工作区:程序只能接触开放给它的文件、网络连接和系统能力。边界具体有多严,要看所用的隔离方式和配置。
- 2
隔离运行不等于毫无风险
如果你把真实密钥放进沙箱,或允许它访问线上数据库,里面运行的代码仍可能使用这些资源。所以我们不只看代码跑在哪里,还要看给了它什么权限和数据。
- 3
临时产物要有带出规则
让 AI Agent 在沙箱里生成页面时,它可能还需要把修改后的文件交给你。我们可以只开放指定的输出目录,再检查差异;这样既能取回成果,也不会默认接受所有改动。
容易混淆的地方
沙箱限制的是程序运行时能接触什么;权限控制更宽泛,也包括判断某个用户能否查看或操作产品功能。预发布环境则主要用于上线前验证:它即使使用测试数据,也未必限制进程读取文件或访问网络。你可以在预发布环境里使用沙箱,但两者不能互相替代。
什么时候用
适合用
- 让 AI Agent 运行刚生成的脚本或命令时,先限制它能读写的目录和能访问的网络。
- 做在线代码练习工具时,让用户提交的程序在隔离环境中执行,再返回运行结果。
- 接入第三方插件时,把插件的文件和网络访问限制在实现功能所需的范围内。
不适合用
- 只是想控制后台员工能否看到客户订单时,用身份认证和权限控制;沙箱不负责判断用户身份。
- 只是想在上线前检查新版本的页面和接口时,用预发布环境;这本身不需要运行不可信代码。
- 只是担心误删自己写的项目文件时,先用 Git 提交和差异对比保留、检查改动;不必为此搭沙箱。
练一练选一个答案,看看解释
你做了一个网站,想让 AI Agent 执行它刚写的图片处理脚本,输入是用户上传的文件,项目中还存着线上服务的密钥。哪种安排最符合沙箱的用途?
让 AI 帮你做复制给 AI Agent 直接用
请把你生成的图片处理脚本放在沙箱中试跑:只读取我指定的测试图片,只向指定输出目录写文件,不注入线上密钥,也不开放额外网络访问。运行后告诉我实际使用了哪些资源,并列出产物。