跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

启用本地沙箱

开启 experimental 与本地隔离,检查实际状态并理解单会话覆盖和绕过。

Copilot CLI 的本地沙箱目前为 experimental / public preview,默认关闭。它使用操作系统进程隔离限制智能体执行的命令,不是单独的虚拟机或容器。CLI 与 Copilot app 的本地沙箱配置相互独立,在一个入口启用不会自动改变另一个入口。

启用流程

先启用实验功能:

copilot --experimental

也可在已有会话输入 /experimental on。随后在会话中执行:

/sandbox enable
/sandbox status
/sandbox policy

第一条开启沙箱,第二条核对本会话是否实际启用,第三条查看当前目录最终的可读、可写、拒绝路径与网络策略。不要只看配置文件中的 enabled 值就判断隔离已生效。

启用选择保存为个人 settings.json 中的 sandbox.enabled,适用于后续交互和非交互会话。已经打开的其他会话不会立刻切换,需要在相应会话执行 /sandbox enable,或关闭后恢复。

单次运行

已经启用 experimental 时,可用 --sandbox 仅给本次运行开启沙箱;例如:

copilot --experimental --sandbox -p "PROMPT"

--no-sandbox 用于仅关闭本次运行的沙箱,但不能覆盖企业要求开启的管理策略。正常非托管情况下,交互 /sandbox disable 会改变当前和后续新会话的保存偏好。

默认不是断网环境

沙箱默认允许当前工作目录与临时目录写入,工具和部分系统位置读取;默认允许外网,并把 Git / gh 认证提供给沙箱内进程。本地网络默认值存在来源差异:CLI 使用与配置专题写允许,应用路径下新版配置专题的 CLI 部分写默认关闭,应查看当前 /sandbox policy 确认。因此 Git 推送、创建 PR 等联网操作仍可能成功,仍需配合工具权限。

默认边界和自动授权见文件系统策略,关闭网络、凭据与绕过的方法见沙箱设置。

请求在沙箱外运行

默认允许请求 bypass。某个命令需要更大访问范围时,CLI 会展示该命令,用户可批准这次运行、保留沙箱限制,或在策略允许时为本会话关闭沙箱。

若管理员设置 sandbox.allowBypass=false,不能批准单次逃逸,也不能关闭本会话沙箱。若管理策略强制启用但仍允许 bypass,当前使用教程允许从批准提示或 /sandbox disable 对当前会话退出隔离,不改变保存的管理策略。本批重新读取的沙箱概览也明确这一当前会话例外;是否允许仍以有效管理策略为准。

平台不支持时

普通 CLI 会话在主机不支持沙箱时可能显示通知、为本会话停用沙箱,然后让命令无沙箱运行,保存的 sandbox.enabled 仍保持不变。企业强制沙箱时则阻止命令执行。平台前提与代理限制见平台支持。

这也是每次排查都应先查看 /sandbox status 的原因。状态行默认显示 sandbox enabled;若隐藏了,可在 /statusline 中重新启用 sandbox 项。

桌面应用采用不同的会话开关和不支持平台时的处理,见应用本地沙箱。