loading

Loading

首页 📝AI资讯

GitHub Copilot 沙箱完整教程:Local Sandboxing 正式 GA,如何安全运行 AI Coding Agent?

分类:📝AI资讯
字数: (4325)
阅读: (8)
0
摘要:GitHub 于 2026 年 10 月 7 日宣布 Copilot Local Sandboxing 正式 GA。本文详细介绍如何在 Copilot CLI 中使用 /sandbox 启用本地沙箱,限制 AI Agent 的文件读写、网络访问与敏感凭据使用,并提供 Windows、macOS、Linux 开发环境的安全配置建议。

一、为什么 AI 编程工具越来越需要沙箱?

现在,AI 编程工具已经不再只是帮助开发者补全代码。

越来越多 Coding Agent 可以主动执行命令、安装依赖、修改项目文件、运行测试,甚至调用 GitHub CLI 完成部分开发工作。

例如,你可能会给 Copilot 这样一个任务:

“帮我检查这个 Node.js 项目,修复编译错误,并运行全部测试。”

为了完成任务,Agent 可能需要执行:

npm install
npm run build
npm test

正常情况下,这可以显著减少人工操作。

但问题也随之出现:

当 AI 拥有命令执行权限,它究竟应该能够访问电脑上的哪些资源?

如果运行环境没有合理的权限限制,错误命令可能影响项目以外的文件,恶意依赖可能读取敏感信息,某些脚本也可能产生非预期的网络请求。

这正是本地沙箱要解决的问题。

2026 年 10 月 7 日,GitHub 宣布 Copilot Local Sandboxing 正式进入 GA 阶段,支持 Copilot CLI、Copilot App,以及使用 Agent Host 的 VS Code 会话。

其目标是在保留 AI 自动执行能力的同时,增加明确的系统执行边界。

二、Copilot Local Sandboxing 是什么?

简单来说,Local Sandboxing 就是为 AI Agent 执行的命令建立独立的权限边界。

传统执行模式可以理解为:

AI Agent → 本地终端 → 系统资源。

启用沙箱以后,执行过程变成:

AI Agent → Sandbox Policy → 受限制的系统命令 → 被允许的资源。

沙箱会按照开发者或组织设置的策略,限制文件系统、网络和凭据访问。

例如,一个 Agent 只需要修改当前项目。

你就没有必要让它读取整个用户目录。

同样,如果某个任务只是编写本地单元测试,也未必需要任意访问互联网。

GitHub 官方明确说明,Local Sandboxing 可以帮助开发者限制这些行为,并且不需要额外支付沙箱功能费用。

三、Copilot 沙箱与 Docker 有什么区别?

很多开发者看到 Sandbox,第一反应可能是 Docker 容器。

但两者并不完全相同。

Docker 通常用于应用部署、环境封装、依赖隔离和容器化运行。

Copilot Local Sandboxing 则更关注:

本机 AI 工具执行时能够使用哪些系统能力。

它基于 Microsoft eXecution Container(MXC)技术,由 MXC 将通用沙箱策略映射到 Windows、macOS 和 Linux 的原生安全机制。

需要特别注意:

沙箱不等于虚拟机,也不代表其中的所有行为绝对安全。

它是一层限制执行权限的安全机制,而不是完整的安全保证。

四、启用 Copilot 沙箱前需要准备什么?

建议准备以下环境:

  • 已安装并可使用的 GitHub Copilot CLI;
  • 可用的 Copilot 访问资格;
  • 一个用于测试的 Git 项目;
  • 最新版支持环境;
  • 项目文件备份或可恢复的 Git 提交。

GitHub 官方文档说明,Linux 环境使用本地沙箱时需要满足相应的 Bubblewrap 与网络隔离工具要求。

不同操作系统的底层安全机制也存在差异,因此安装与权限问题应以官方文档为准。

首次体验时,建议不要直接在生产数据库、正式 API 服务或包含大量真实密钥的项目目录下测试。

五、Copilot CLI 沙箱开启教程

下面以已经进入 Copilot CLI 交互式会话为前提。

第一步:进入项目目录

例如:

cd my-project

启动 Copilot CLI:

copilot

如果系统找不到命令,需要先按照 GitHub 官方文档安装 Copilot CLI。

第二步:查看沙箱状态

在 Copilot CLI 交互界面中输入:

/sandbox status

此命令用于查看当前会话是否正在使用沙箱。

第三步:开启本地沙箱

/sandbox enable

开启以后,Copilot CLI 代你执行的大多数命令和工具会在系统沙箱中运行。

第四步:进入沙箱配置

输入:

/sandbox

或者:

/sandbox config

这将打开交互式配置界面。

目前主要包含四类设置:

配置分类 作用
General 开启或关闭沙箱
Credentials 管理凭据访问
Filesystem 管理文件读写权限
Network 管理网络访问范围

可以根据任务需求调整访问范围。

第五步:查看当前有效策略

输入:

/sandbox policy

这项命令能够展示最终生效的权限规则。

还可以在不真正执行命令的情况下检查特定命令可能获得的开发工具访问能力:

/sandbox policy npm install

需要强调的是,这属于策略检查,不等于提前证明命令绝对安全。

六、如何限制 Agent 读取和修改文件?

假设你的电脑有以下目录:

/home/user/
    projects/
        demo-api/
    documents/
    private/
    backups/

当前 Agent 只需要修改:

projects/demo-api/

合理的权限策略应该优先允许它访问这个项目工作目录,而不是所有文件。

GitHub 官方说明,沙箱默认允许命令在当前工作目录及临时目录中进行相应的写入操作。

在 Git 项目中,Git 元数据也会根据规则获得对应访问能力。

你可以通过 Filesystem 配置选项追加只读路径、读写路径和拒绝访问路径。

推荐原则是:

允许项目必需目录,拒绝无关敏感目录。

例如,私人文档、生产数据库备份、云服务凭据目录通常不应为了方便而被整体开放。

七、如何限制网络权限?

假设 Copilot 需要执行:

npm install

这一操作通常需要访问软件包仓库。

但是,并不代表你应当允许 Agent 连接任意网络地址。

可以根据开发任务选择允许的网络目标。

例如:

  • 软件包下载服务;
  • GitHub 仓库;
  • 项目必需的文档域名;
  • 本地测试服务。

而不需要访问的内部管理服务、生产数据库、云控制台和其他敏感网络目标应尽量保持限制。

对于安全要求较高的项目,可以先在不需要网络的情况下完成代码修改,然后由开发者确认后再开放特定网络访问。

八、如何保护 API Key、Git 凭据和环境变量?

这也是 Copilot 沙箱最值得重视的部分。

开发者电脑上可能存在:

ANTHROPIC_API_KEY
OPENAI_API_KEY
GITHUB_TOKEN
DATABASE_URL

如果工具拥有过大的环境变量和文件读取权限,密钥可能面临泄露风险。

GitHub 的沙箱配置支持对选定环境变量进行凭据遮罩,让沙箱内的工具在认证场景下不必直接接触真实密钥值。

Git 与 GitHub CLI 认证也有对应的凭据访问控制。

但需要注意:

凭据遮罩并不等于可以放心将任何生产密钥交给 Agent。

还应遵循最小权限、短期有效、可撤销、测试环境优先等安全原则。

切忌把真实密钥直接粘贴在普通聊天提示词中。

九、怎样判断沙箱真的生效?

开启沙箱后,不应只看界面提示。

建议执行一套可重复的安全验证。

首先运行:

/sandbox status

确认当前会话状态。

然后查看:

/sandbox policy

确认当前文件系统和网络权限与预期一致。

接下来可以准备一个没有真实敏感数据的测试项目,分别验证:

  1. 是否能读取允许的文件;
  2. 是否能修改允许的项目文件;
  3. 是否无法写入不允许的测试目录;
  4. 是否会限制不被允许的网络访问;
  5. 是否正常执行项目构建与测试。

测试过程应使用临时目录和模拟数据,不要拿真实生产数据测试拒绝访问能力。

十、如何在团队中强制启用沙箱?

GitHub 允许企业管理员通过托管策略限制沙箱配置。

例如,可以要求团队在运行 Coding Agent 时始终开启隔离机制。

也可以禁止普通用户自行放宽某些权限边界。

在配置界面中,受组织托管的设置会标记为 managed。

这对于使用大量 AI Coding Agent 的企业尤其重要。

如果每个开发者都能随意关闭防护措施,组织级安全要求就很难统一执行。

需要注意,部分受管理策略可能允许显式的会话级绕过;是否允许取决于最终生效的企业策略,不能将所有组织设置视为绝对不可绕过。

十一、Copilot 本地沙箱常见问题

开启沙箱后,Copilot 还能运行 npm、Python 和测试命令吗?

可以在权限允许的情况下运行。是否成功还取决于项目所需的网络、文件和系统访问权限。

沙箱能防止所有误删文件吗?

不能。如果某个文件位于允许写入的目录中,错误命令仍可能修改或删除它。因此仍然需要 Git、备份和人工审查。

我在 Copilot App 中修改设置,CLI 会同步吗?

不会自动同步。官方说明两者的本地沙箱设置分别管理。

所有 GitHub Copilot 模型都需要分别设置沙箱吗?

沙箱约束的是工具执行过程,与所选模型属于不同的控制层。无需把它理解成某个特定模型专属的能力。

Copilot 沙箱与云端沙箱相同吗?

不是。Local Sandboxing 主要限制本机执行环境;云端沙箱运行在独立的云环境中,两者有不同的部署与安全边界。

十二、总结:AI Coding Agent 必须从功能优先走向权限可控

随着 AI 编程工具不断发展,未来开发者会越来越习惯于将完整任务交给 Agent 执行。

但自动化能力越强,权限管理就越重要。

Copilot Local Sandboxing 的意义,是把文件系统、网络和敏感凭据访问纳入明确的执行策略中。

对于个人开发者,它可以减少非预期命令的影响范围。

对于企业团队,它可以帮助建立统一的 Agent 安全使用规范。

不过,沙箱不能代替代码审查、版本控制、备份和最小权限管理。

比较合理的 AI Coding 安全架构应该是:

沙箱隔离 + 凭据保护 + 代码审查 + 自动化测试 + 人工确认。

这才是让 AI Agent 更安全地参与真实软件开发的方向。


版权信息: 本文由界智通(jieagi)团队编写,图片、文本保留所有权利。未经授权,不得转载或用于商业用途。

转载请注明出处: 界智通

本文的链接地址: https://www.jieagi.com/aizixun/131.html

您可能对以下文章感兴趣
评论列表:
empty

暂无评论

技术博客底部