{"meta":{"title":"关于云和本地沙盒 GitHub Copilot","intro":"云和本地沙盒提供独立的执行环境，可在 Copilot 本地计算机或完全隔离的云环境中安全地与代码、工具、文件系统和网络资源进行交互。","product":"GitHub Copilot","breadcrumbs":[{"href":"/zh/copilot","title":"GitHub Copilot"},{"href":"/zh/copilot/concepts","title":"概念"},{"href":"/zh/copilot/concepts/about-cloud-and-local-sandboxes","title":"云端和本地沙盒"}],"documentType":"article"},"body":"# 关于云和本地沙盒 GitHub Copilot\n\n云和本地沙盒提供独立的执行环境，可在 Copilot 本地计算机或完全隔离的云环境中安全地与代码、工具、文件系统和网络资源进行交互。\n\n> \\[!NOTE]\n> 云和本地沙盒 GitHub Copilot 位于 公开预览 且可能会更改。\n\n## Introduction\n\nCopilot 云和本地沙盒是支持本地和云中安全沙盒体验 GitHub Copilot CLI的执行平台。 由于 Copilot 代表你执行更多操作（运行工具、执行命令和修改文件），沙盒提供安全采用代理工作流所需的隔离、可移植性和策略控制。\n\n沙盒当前适用于 Copilot CLI 会话。 还可以选择在启动新会话 GitHub Copilot app时使用云沙盒。 有关详细信息，请参阅“[在 GitHub Copilot 应用中使用代理会话](/zh/copilot/how-tos/github-copilot-app/agent-sessions#starting-a-session)”。\n\n使用沙盒，可以选择运行位置 Copilot ：\n\n* **本地沙盒**：安全地在自己的计算机上运行 Copilot 。 运行的命令 Copilot 对文件系统、网络和系统功能具有受限的访问权限。 无需额外付费即可使用本地沙盒。\n* **云沙盒**：远程运行整个 Copilot CLI 会话，在由其 GitHub托管的完全隔离的临时 Linux 环境中运行。 云沙盒是根据使用情况计费的。\n\n## 本地沙盒机制\n\n> \\[!NOTE]\n> 本地沙盒目前是一项实验性功能。 若要使用它，请从Copilot CLI命令行选项开始`‑‑experimental`，或在会话期间输入`/experimental on`。\n\n本地沙盒机制可让 Copilot 直接在您的设备上的沙盒环境中运行，且对文件系统、网络访问和系统功能的访问受到限制。\n\n默认情况下，本地沙盒处于关闭状态。 在启用之前，直接在计算机上运行的 shell 命令 Copilot 具有与用户帐户相同的访问权限：他们可以随时随地读取、写入和删除计算机可以访问的任何网络，并不受限制地使用凭据。 启用本地沙盒可将此访问权限限制为你控制的策略。\n\n### 本地沙盒的工作原理\n\n本地沙盒由 Microsoft eXecution Container （MXC）提供支持，这是一种跨平台技术，它提供每个操作系统上可用的隔离机制的通用接口。\nCopilot CLI 声明它想要强制执行的沙盒策略（哪些路径是可读的还是可写的，是允许的网络访问，等等），MXC 使用适用于操作系统的相应隔离后端应用该策略。\n\n隔离技术存在于一个范围中，从强隔离（例如完整虚拟机监控程序或容器）到较轻的隔离（例如 OS 级进程和文件系统包含）。 本地沙盒目前位于此范围较轻的末尾：它限制进程可以在网络上读取、写入和访问的内容，但它不会在单独的虚拟机或容器中运行命令。 如果要评估此级别的隔离是否符合安全要求，请参阅 [microsoft/mxc 存储库](https://github.com/microsoft/mxc) 以了解实现详细信息。\n\n有关详细信息，请参阅“[了解本地沙盒的文件系统策略 GitHub Copilot CLI](/zh/copilot/concepts/agents/copilot-cli/understanding-local-sandboxing)”。\n\n### 启用本地沙盒机制\n\n若要在 Copilot CLI 会话中启用本地沙盒环境，请运行：\n\n```shell copy\n/sandbox enable\n```\n\n启用本地沙盒后，代理代表你运行的命令和工具（shell 命令、文件搜索），默认情况下，MCP 和语言 （LSP） 服务器将启动 - 在操作系统级沙盒中运行，限制其对系统的访问。 每当将来使用 CLI（以编程方式和交互式使用）时，CLI 将继续使用本地沙盒，直到运行 `/sandbox disable` 以禁用它。 如果企业托管设置需要沙盒，则无法禁用它。\n\nCLI 的内置文件工具（属于 CLI 的第一方命令，而不是 shell 命令） `sed`在 CLI 中运行进程内。 由于 CLI 本身不是沙盒，因此操作系统沙盒永远不会看到这些工具执行的文件操作，并且无法约束它们。 相反，内置工具将编码为检查沙盒策略本身，并尽最大努力遵守配置的设置。\n\n有关详细信息，请参阅“[使用本地沙盒](/zh/copilot/how-tos/cloud-and-local-sandboxes/using-local-sandboxing)”。\n\n### 配置本地沙盒\n\n可以使用默认的本地沙盒行为，也可以修改可以访问的内容 Copilot 。 配置本地沙盒时，可以控制多个访问维度：\n\n* **文件系统**：授予对特定路径的只读或读/写访问权限，或拒绝路径。\n* **网络**：允许或阻止出站 Internet 访问和本地网络独立访问。\n* **凭据**：选择 Git 和 GitHub CLI （`gh`） 凭据是否在沙盒中可用。\n* **子进程**：选择本地 MCP 服务器和语言服务器是否也在沙盒中运行。 远程 MCP 服务器永远不会沙盒化。\n* **密钥链（macOS）**：选择是否可从沙盒内部访问系统密钥链。\n* **每个命令例外**：在需要更广泛的访问时，允许或阻止单个命令在沙盒外部运行。\n\n有关详细信息，请参阅“[配置本地沙盒设置](/zh/copilot/how-tos/cloud-and-local-sandboxes/configuring-local-sandbox-settings)”。\n\n### 跨平台支持\n\n本地沙盒适用于 macOS 和 Linux，以及Windows预览体验成员版本。 支持和隔离行为因平台而异，因为每个操作系统使用不同的隔离后端：\n\n* **macOS** 使用 Seatbelt 后端 （`sandbox-exec`）。\n* **Linux** 使用 bubblewrap 后端，该后端需要 `bwrap` 安装命令并在其 `PATH`上可用。 如果 `/sandbox` Linux 上不支持沙盒，请安装 bubblewrap。\n* **Windows**使用 ProcessContainer 后端。\n\n### 企业策略强制实施\n\n企业可以通过服务器托管、MDM 托管或基于文件的托管设置来要求本地沙盒并强制实施其配置。 请参阅“[配置企业管理设置](/zh/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/configure-enterprise-managed-settings)”。\n\n## 云端沙箱\n\n云沙盒让您能够在由 Copilot CLI 托管的完全隔离的临时 Linux 环境中运行 GitHub 会话。 每个云沙盒会话都独立于本地环境和其他会话。\n\n云沙盒基于Azure 容器应用沙盒构建，GitHub提供标识、策略和计费层。\n\n> \\[!NOTE]\n> 如果 Copilot 通过组织进行访问，则访问云沙盒取决于它在组织或企业设置中已启用，默认处于禁用状态。 有关详细信息，请参阅“[为组织或企业启用或禁用云沙盒](/zh/copilot/how-tos/cloud-and-local-sandboxes/enabling-or-disabling-cloud-sandboxes-for-your-organization)”。\n\n### 启动云沙盒会话\n\n若要启动云支持的会话，请运行以下命令：\n\n```shell copy\ncopilot ‑‑cloud ‑‑experimental\n```\n\n> \\[!NOTE]\n> 云沙盒目前是一项实验性功能。 若要使用它，必须启用 Copilot CLI试验性功能，例如，在启动 CLI 会话时使用 `‑‑experimental` 命令行选项，如上所示。\n\n`‑‑cloud`命令行选项在云沙盒中启动交互式Copilot CLI会话。 你可以提示 Copilot 执行任务、运行 shell 命令并迭代修改代码，就像在本地会话中一样。\nCopilot 运行的命令是在云环境中执行的，而不是在本地计算机上执行。\n\n在云沙盒中运行 `copilot ‑‑cloud` 启动单个 Copilot CLI 会话。 它不会影响将来 Copilot 的会话。 每次要在云沙盒中运行新会话时，都必须使用 `‑‑cloud` 此选项启动 CLI。\n\n> \\[!NOTE]\n> 云沙盒仅适用于交互式 Copilot CLI 会话。 无法在云沙盒中以编程方式运行 CLI，也就是说，不能将`‑‑cloud`选项与或`-p`选项组合在一起`-i`。\n\n### 跨设备继续会话\n\n由于云沙盒会话在由 GitHub 托管的基础结构中运行，因此无论会话最初是在哪台设备上启动的，都可以在任何设备上继续使用 Copilot 会话。 这使工作流更加灵活，无需复制文件或重新安装依赖项。\n\n### 卸载计算密集型工作流\n\n可以在云中并行运行多个 Copilot 任务，而无需使用本地资源。 这样既能让本地环境保持轻量和响应迅速，又能扩展由代理驱动的工作负载。\n\n### 统一治理\n\n云沙盒策略与Copilot cloud agent策略共享相同的配置，无需额外设置即可将现有安全控制扩展到在云沙盒中执行。\n\n### 会话生命周期\n\n云沙盒会话有三个主要状态：\n\n* **活动状态**：会话正在运行，你正通过 Copilot CLI 与其交互。\n* **已停止**：会话当前未运行，但其状态已保存。 恢复时，将还原文件、环境变量和正在进行的工作。\n* **已删除**：会话及其保存状态已删除，无法恢复。\n\n停止会话时，云沙盒会创建当前状态的快照，以便您稍后可以从中断处继续。 删除会话时，将同时删除正在运行的环境和快照。\n\n## 身份验证和访问\n\n沙盒使用现有的 Copilot CLI 身份验证。 如果可以登录并有权访问Copilot CLICopilot，则可以使用沙盒。 无需配置单独的云提供商、管理 API 密钥或设置基础结构。\n\n组织或企业所有者必须在组织或企业设置中启用 **云沙盒访问** 策略，然后成员才能使用云沙盒。\n\n有关为组织成员启用或禁用云沙盒的信息，请参阅 [为组织或企业启用或禁用云沙盒](/zh/copilot/how-tos/cloud-and-local-sandboxes/enabling-or-disabling-cloud-sandboxes-for-your-organization)。\n\n## Billing\n\n标准 GitHub Copilot 席位中包含本地沙盒机制，无需额外付费。\n\n云沙盒是根据使用情况计费的。\nGitHub 通过三项计量指标来衡量云沙盒使用情况：\n\n| Meter  | Description     | 单位    | 价格（USD）    |\n| ------ | --------------- | ----- | ---------- |\n| 计算     | 云沙盒会话的运行时间。     | 计算秒数  | $0.000024  |\n| Memory | 云沙盒会话运行期间分配的内存。 | GiB 秒 | $0.0000003 |\n| 存储     | 已停止会话的快照存储。     | GiB/月 | 0.005 美元   |\n\n有关如何测量和计费云沙盒使用情况的详细信息，请参阅 [云和本地沙盒的计费 GitHub Copilot](/zh/billing/concepts/product-billing/cloud-and-local-sandboxes)。\n\n## 延伸阅读\n\n* [关于 GitHub Copilot CLI](/zh/copilot/concepts/agents/copilot-cli/about-copilot-cli)\n* [使用本地沙盒](/zh/copilot/how-tos/cloud-and-local-sandboxes/using-local-sandboxing)\n* [配置本地沙盒设置](/zh/copilot/how-tos/cloud-and-local-sandboxes/configuring-local-sandbox-settings)"}